404ページでのAdSense広告表示は規約違反
指定されたURLがそのサイト内に存在しない場合に表示するのが404ページ。つまり、エラー表示です。こういうページにAdSense広告を表示すると規約違反になります。
手続き完了ページ、離脱ページ、ログインページ、エラーページでの広告掲載
コンテンツを含まないページ(手続き完了ページ、離脱ページ、ログインページ、エラーページなど)に広告を掲載することは許可されません。このようなページは、訪問者がドメインから離脱する可能性がある際や、購入やダウンロードなど、サイト上で特定のアクションを実行した後に表示されます。
この種のページに広告を掲載すると、広告が実際のコンテンツだと誤解されてしまう可能性があるため、掲載は避けてください。
AdSenseヘルプから引用
こういうページにわざわざAdSense広告タグを貼り付けることはないでしょうが、自動広告を使っていると勝手に表示されてしまいます。意図せずに、規約違反を犯してしまうことになってしまうのです。
そこで、WordPressの404ページに自動広告を表示させない方法を模索しました。
プラグインのインストール
自動広告のタグは<head>セクションに設置します。これに対応したプラグインはたくさんあります。「header and Footer」で検索するとこんな感じでたくさん見つかります。
自動広告を設置するだけななら、おそらくどれでも大丈夫だと思います。しかし、「404ページには表示させない」という制御ができるものとなると使えるプラグインは限られます。理由は後ほど説明します。私が試した中では「Head, Footer and Post Injections」というプラグインがそれです。
他にも、目的の制御が行えるプラグインがあるかもしれませんが、確認していません。「head, Footer and Post Injection」はインストール数も多く評判が良いもののようなので、これを使うことにします。
インストール手順は通常のプラグインと同じですので省略します。インストールしたら「有効化」してください。
自動広告のタグを設置
自動広告のタグを取得する
まず、AdSense自動広告のタグ取得については、こちらの記事を参照してください。
自動広告タグを設置する
「head, Footer and Post Injection」の設定画面を開きます。プラグインの名称は「head, Footer and Post Injection」ですが、設定メニューの中では「Header and Footer」になっています。ちょっと注意。
設定画面の「Header and Footer」タブの中の「<head> PAGE SECTION INJECTION」、さらにその中の「ON EVERY PAGE」の枠内にAdSense自動広告のタグを貼り付けます。文字で説明するとややこしいですが、このプラグインの管理画面を開いたときに一番最初に目に入る枠です。
自動広告の設置自体はこれでOKです。
404ページでの表示を抑制する
ここからが、ある意味本題。404ページでの表示を除外させます。
自動広告タグの前後にちょっとしたオマジナイを加えます。
一行目に
[code]<?php if (!is_404()) { ?>[/code]を、そして、最後に
[code]<?php } ?>[/code]を加えるわけです(この二行で自動広告のタグを囲むことになります)。
意味は、「404ページでなければこれ(自動広告)を表示する」というものです。言い換えれば「404ページには表示しない」です。こうした制御を書けるのが「head, Footer and Post Injection」なのです。他のプラグインでは上手く動きませんでした。
自動広告のタグ(と、追加の制御部)を書き終えたら保存します。画面の下の方に「Save」ボタンがあります。
これで完了です。試しに、こちらのリンクをクリックしてみてください。
404ページが表示されますが、ここにはAdSense広告は表示されないはずです。
念のため、ソースコードを表示させて<head>セクション内を確認しておくと安心でしょう。
404ページでウィジェットを表示させない方法
別記事にまとめてあります。こちらをご覧ください。