アドセンスのアカウント停止にならないために、AICP(AdSense Invalid Click Protector)

2020年1月27日

今回は、WordPressのプラグイン、AICP(AdSense Invalid Click Protector)について紹介したいと思います。

無効なクリックとインプレッション

アドセンスを利用していて、自己防衛が必要となる部分は第三者による無効なクリックとインプレッションです。

自己クリックやコンテンツ不足などは自分で何とかできますが、第三者による無効なクリックやインプレッションはコントロールするのが困難です。

しかし、アドセンス側はそのようなことを斟酌してくれません。
ユーザーがおかしな動きをしていないか監視して、必要があればレポートせいと。

というわけで、規定回数を超えたら広告を非表示にしてくれるプラグイン、AICPの登場です。

AdSense Invalid Click Protector

プラグインの追加から。
最近更新がないのと、最新のバージョンで未検証に一抹の不安を覚えますが、背に腹はかえられません。インストールして有効化します。

まず最初に、このプラグインの使い方を説明しているビデオを一度見ておくことをお勧めします。
フォーラムを覗いてみても、「動かない」って言っている人たちに、プラグイン作者はまずこのビデオを見ろと言っています。

AdSense Invalid Click Protector(AICP)

設定項目

Setting自体は難しいことはありません。

デフォルトでは、Click Limitが3回、Cookie Expiration Timeが3時間、Ban Durationが7日間となっています。3時間で3回以上クリックすると7日間広告を非表示にすっぞと。

この制限を緩くするときは、Click LimitではなくCookie Expirationを短くするといいと思います。
なぜなら、無効なクリックが何回だとアカウント停止になるのかわからないからです。
特に一度30日間の停止になったことがある場合は、次はないでしょう。
Click Limit10回くらいまでなら・・・ダメ、慢心。

ショートコードで表示させる

add_shortcode( 'your_shortcode_name', 'your_shortcode_function_name' );
function your_shortcode_function_name() {
    if( aicp_can_see_ads() ) { // This part will show ads to your non-banned visitors
        $adCode = '<div class="aicp"><!-- Don\'t forget to add this div with aicp class -->
        <script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
        <!-- AdSense Responsive Ad Code -->
        <ins class="adsbygoogle"
             style="display:block"
             data-ad-client="ca-pub-1234567890"
             data-ad-slot="0987654321"
             data-ad-format="auto"></ins>
        <script>
        (adsbygoogle = window.adsbygoogle || []).push({});
        </script>
        </div><!-- end of the aicp div -->';
        return $adCode;
    } else { // Anything within this part will be shown to your banned visitors or to the blocked country visitors
        return '<div class="error">You have been blocked from seeing ads.</div>';
    }
}

プラグインの説明ページにも載っているショートコードの例です。
導入でつまずく最大の原因がこのアドセンスのショートコード化ではないでしょうか。

AICPはインストールして有効化しただけでは完了しません。
functions.phpにショートコードとして記述して、投稿ページやウィジェットにショートコードとして貼り付けることで効果を発揮します。

公式では、

1. if( aicp_can_see_ad() ) { returnするアドセンスのコードをここに }
2. <div class=”aicp”>アドセンスのコードをここに</div>

この二つが重要だと言っています。
また、htmlで単純にアドセンスのコードを<div class=”aicp”></div>で囲っても駄目だとプラグイン作者は答えています。

変更する箇所

では、この雛型を使って実際にショートコード化をやってみます。ここでは、add_shortcode()を一番下にもってきています。

手順としては、テキストエディタで編集して、functions.phpにコピペです。コピペの前には必ずfunctions.phpのバックアップをとりましょう。

まずはピンクの部分。ショートコードのファンクション名を書きます。わかりやすければ何でもOKです。ここでは、aicp01としてみます。

続いてショートコード名。
これは、実際にショートコードとして記事内やウィジェットに記述するときの名前です。
わかりやすくmokujiueとしました。もちろん、adsense01とかでもいいですよ。

この三箇所、特にピンクの箇所が同じになっているか確認してください。

続いて、この部分にアドセンスのコードを貼り付けます。目印は最初の<script>から二つ目の</script>までですかね。
基本、これでショートコード化に必要な編集は完了です。

アドセンスの広告は複数作成しているのが普通です。ショートコードは、表示させたいアドセンスの数だけfunctions.phpに記述する必要があります。

二つ目以降のショートコードは、雛形をコピペして、ファンクション名をaicp02と数字を増やしていくとわかりやすいと思います。ショートコード名は自分が区別できるように配置場所の名前でもいいですし、adsense02のようにファンクション名と同じく数字にするのもよしです。

カスタマイズ

ショートコード化ができて、余裕があればカスタマイズです。
else {}の部分は省略が可能です。この部分は、ブロックしたユーザーにその旨を表示します。この部分を削除すると、ブロックしたユーザーには何も表示されません。

非表示になった広告の跡地に、このメッセージが表示されます。日本語もOK。
ですが、ブロックしたユーザーにわざわざ「あなたをブロックしました」なんて言う必要はないかなと思い、私はこのelse {}の部分を削除しています。

アドセンスの見た目の調整に関しては、<div>の中でできます。margin大事。
クラスの追加は、”aicp center”のようにaicpの後に半角スペースで区切ります。

表示の分岐はここで。404や検索結果ページでは非表示にする場合。

ショートコードで貼る

functions.phpでショートコード化したら、後は投稿ページやウィジェットでショートコードを記述します。

ショートコードでアドセンスを貼っても、AICPが上手く作動しているかはブロックが確認されるまでわからないのが怖いところ。絶対に自分で試しちゃだめですよ。

上からトータルのブロック数、24時間以内のブロック数、6時間以内のブロック数になります。
デフォルトは1週間のBan Durationなので、トータルの数は1週間を過ぎるとその分減ります。

ログも消えちゃうので、別途ブロックしたユーザーのTimestampやIP Addressは控えておくといいでしょう。

導入後の感想

率直に言って、ブロックした人のクリック数と、アドセンスのページで確認できるクリック数のギャップにびっくりって感じです。こんなにクリックされてるのに、反映されているのはたったこれだけ?差分は無効なクリックとみなされてるの?です。

制限が厳しくて善良なるユーザーまでブロックされているのか、本当に悪意のクリックが多いのかは見極めなければなりません。

これを機に、誤クリックされやすい配置になっていないかなんかも検証していきたいですね。
以上、参考にしてみてください。