WordPressのカスタマイズ方法やプラグインレビューを中心に、パソコン/動物/植物のことなどを紹介するホームページです

Google Adsenseで「広告クローラのエラーが生じており、収益の損失が発生する可能性があります。 」と表示されるときの対処

公開日:2020(令和2)年6月21日/最終更新日:

Web-Tool トラブルシューティング



Google Adsenseの管理画面上に、「広告クローラのエラーが生じており、収益の損失が発生する可能性があります。」と表示されてびっくりしたことありませんか??

リンクを辿って該当するページを調べると、それは下書き保存してプレビューした時の投稿。なーーんだ、公開してないからしゃーないね、というのが結論なんですけど、できればそうしたエラーは回避しておきたいもの(特にペナルティ等になることはなさそうと言えばなさそうなので気にすることはないかも・・・と歯切れが悪くなるのがGoogleサービスの怖いところ・・)ですね。

そこでエラーが出ないようにするため、WordPressで投稿プレビュー時にGoogle Adsenseの広告を表示(出力)させない方法を紹介します。実に簡単なことで実現できますので、Google様のサービスでエラーと言われるのはちょっと・・という方は即実践してくださいね。

まずAdsenseの広告コードは

<script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js">

というスクリプトを呼び出すコードと、それぞれの広告タイプのコードに分かれています。つまり上記のスクリプトが呼び出されないようにすれば、広告は表示されないのです。そこで、このコードにのみ「公開されているコンテンツに対しては有効にする」という条件分岐を追加して、下書きのときには広告が動作しないようにするのです。

やり方は簡単、以下のようにコードを置き換えるだけです。

<?php if( get_post_status( $post->ID ) == 'publish'): ?>
<script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js">
<?php endif; ?>

前後の記述は条件分岐と言って、「投稿が公開されていたら間の内容を出力(処理)する」というもの。当然投稿作成中に表示したプレビューは「下書き」で公開されていませんから、広告が表示されることはなくなるというわけです。

Google Adsenseの広告はページ中で1箇所ではなく複数箇所に設置していることが多いと思いますので、上のコードすべてに条件分岐を追加することになるのですが、このコードはページ中に1箇所あればすべての広告がきちんと動作しますから、この際どこかの広告、またはヘッダーやフッターの中に1回だけ記述してあとは削除しておくとよいでしょう(逆にすべての広告にある上記コードのうち1箇所でも条件分岐が設定されていないとすべての広告が動作してしまいますのでご注意ください)。

ちなみに今回のように公開状態での条件分岐の方法はほかにもあって、例えば「予約投稿のとき」「下書きのとき」「非公開のとき」などによって記述が変わります。興味のある方は

ワードプレスの記事のステータスでの条件分岐方法(公開・下書き・非公開など)

(parudouさんのサイト内ページ)に詳しく書かれていますので参照ください。