WordPressで特定の記事のみAdsenseを非表示にする方法(ポリシー違反通知が届きました……)

タイトルの通り、Googleから「Adsenseのポリシー違反記事があるよ」というメールが届きました……

原文は以下のもの。

お客様 本日は Google サイト運営者様向けポリシー レポートをお送りいたします。お客様のウェブサイトの特定のページで見つかったポリシー違反に関連する最近のアクティビティをご確認ください。違反措置の適用状況は随時変更される可能性があります。現在適用されている違反については、AdSense ポリシーセンターの [ページ単位の違反措置] をご覧ください。

いざこういう警告の通知が届くと結構ヒヤヒヤしちゃいますね。心臓に悪い。

とにかく「ポリシーページで確認して修正してね」ということだったので、早速確認。

すると以下の記事が引っかかっていることが判明。

ついこの前更新した記事ですね。たばこ関連の記事にAdsenseを表示するのはだめということなので早速調べたところ、プラグインで特定の記事のみAdsenseを非表示にできる!と書いてある記事が多々出てくる!

しかし僕の場合[function.php]やら[single.php]に直接Adsenseコードを記述しているので、プラグインでは対処ができないとのこと……悲しい……

ただ、せっかく調べたのでプラグインでの対処方法と[function.php][single.php]を編集する対処方法の両方をまとめて置きたいと思います!


ポリシー違反確認方法

まずはどの記事がポリシー違反か確認。

Adsenseにサインインして、設定からポリシーセンターをクリック。

[違反措置が適応されたサイト] 項目より当該ページをクリックすると違反内容が表示されるので、その警告を解除する必要があるわけですね。

早い話違反ページ自体を削除してしまえばいいということですが、でもやっぱり自分で現地に赴き時間を使って書いた記事を削除はしたくないので、僕はこのポリシー違反に該当しているページのみAdsenseを非表示にすることにしました。

プラグインで特定の記事のみAdsenseを非表示にすることができる!と書いてあるページが多々出てきましたので

Adsenseをウィジェットで表示している場合

Widget Logicというプラグインで特定のページの広告を非表示にすることができるらしい!ので、早速インストールしてみる。

インストール方法

WordPressのプラグイン新規追加画面から“Widget Logic”を検索するか、このページからダウンロードして使うことができます。 インストール後に[有効化]するのをお忘れなく!

設定方法

Widget Logicを有効化すると、WordPressの[外観]→[ウィジェット]画面でウィジェットそれぞれの条件分岐を設定することができるようになります。方法は以下の通り。

ウィジェット画面にて使用しているウィジェットを展開すると、ウィジェットの設定項目の下に “ウィジェットのロジック”というボックスが出現します。

今回は広告ウィジェットを特定の記事に表示しないように設定したいので、当該広告ウィジェットの “ウィジェットのロジック” ボックスに以下のコードを書きます。

‘記事ID’ 部分には非表示にしたい記事のIDを入力します。

記事IDの調べ方ですが、WordPressの[投稿一覧]ページで対象の記事上にマウスカーソルを合わせるとブラウザーの左下(多分大体そう)に画像のようなURLが表示されます。このURLの “post=” のあとの数字が記事IDです。

なのでこの場合は以下の用に記述すれば大丈夫です。

シングルコーテーションはそのままで、間に記事IDを入力します。

Adsenseを広告ウィジェットのみで表示している場合は以上の手順のみで対処完了ですね!楽!

Adsenseをfunction.phpに記述している場合

さて続いて、僕のように[function.php][single.php]に直接記述している場合の対処方法です。

直接Adsenseを記述している場合は、上述したプラグインを使用することができません。なので、function.phpを直接編集します。

※function.phpの編集をミスするとブログ(WP管理画面含め)が真っ白になります。編集作業を行う前に必ず “編集前の状態のfunction.phpの内容” をバックアップしておきましょう。

記事IDを確認する

まずはプラグインの場合と同様に記事のIDを確認します。上に書いたので方法は省略。

function.phpを編集する

記事IDを確認したらfunction.phpの内容を編集していきます。

[外観]から[テーマの編集]をクリック。

テーマファイル一覧から[テーマのための関数(function.php)]を選択して、ばーっと表示されるコードから以下のコードを探します。

発見したら、以下のように書き換えます。

変更箇所は is の前の ! と記事ID部分。シングルコーテーションは消さず、間に記事IDを入力します。

! が否定の意味なので、「’記事ID’ のsingle(個別投稿)以外にコードを反映させる」、つまり「当該記事ID以外の記事にAdsenseを表示する」ということになります。

これで特定のページのみAdsenseを非表示にできました!

ちなみにAdsenseを非表示にしたいページが複数ある場合は、以下のコードのように記事IDを連ねて記述します。

コードを編集するって最初はめちゃくちゃ難しい感じがしますが、やっていることは簡単なので安心してくださいね。

あと、目が痛くなる色で重ねてお伝えしますが、function.phpの編集を失敗するとブログ全体が真っ白になってしまうので、必ず編集前のfunction.phpの内容をバックアップしてから作業を行ってくださいね。

おまけ – Adsenseをsingle.phpに記述している場合

これはあまりいないかもしれないけれど、僕は[single.php]にもAdsenseコードを記述していたので、重ねて対処が必要でした。 [single.php]を編集する場合は、記述してあるAdsenseコードの前後に以下のようにコードを追記します。

これで、single.phpにAdsenseコードを記述している場合でも、指定したページのみAdsenseが非表示になります。

まとめ

ポリシー違反の通知メールが届いた時はかなりドキッとしましたが、とりあえずはご紹介している方法で当該ページのAdsenseを非表示にしました……あとは “ページ単位の違反措置” ページから当該記事がいなくなるのを待ってみます!

Simplicity2テーマを利用していた時期以外は、ずっと今と同じ方法でAdsenseを表示してきたので直接function.phpやsingle.phpにAdsenseコードを記述していますが、基本的にはウィジェットを利用して表示させたほうが管理は楽ですよねー。

今後テーマを変更機会があれば、ウィジェット利用も検討してみようかな。コード編集するのめんどうだもんね!笑 ということで、ポリシー違反の通知が来た話とその対処法のご紹介でした!

非表示の状態が気になる方は以下の記事を見てみてね!では!