
2021年3月24日にAdsense広告が停止されてしまいました。恐らく何度も広告をクリックされた事が原因かと思われます。
Adsense広告が停止された時の様子はこちら

もし復帰したとしても、同じように何度も広告をクリックされてしまうとまた停止されてしまいます。
少しでも防衛できるようにプラグインの導入とショートコードの対応をしてみました。
プラグインの導入
AdSense Invalid Click Protector
ちまたで話題の「AdSense Invalid Click Protector」。
広告を一定時間内に○回以上クリックすると広告表示を停止する機能を持ったプラグインだそうです。
インストール
早速インストールします。
WordPressの管理ページ左側にある「プラグイン」から「新規追加」を選択。

画面右上の検索フィールドに「AdSense Invalid Click Protector」を記入します。「AICP」でもOK。

プラグイン一覧に以下の画像が表示されていると思います。「今すぐインストール」を押してインストール。完了後に「有効化」を押して有効にします。

設定
WordPressの管理画面左側にAdSense Invalid Click Protectorの項目が追加されています。
これのGeneral Settingsを選択して確認します。

それぞれの意味はこんな感じ。
Set the Ad Click Limit :広告のクリック回数上限
Click Counter Cooke Expiration Time (default: 3 hours):3時間以内
Set the Visitor Ban Duration (default: 7 days):7日間非表示にする
3時間以内に3回以上クリックしたら、その人には7日間広告を非表示にする処置するよ!と言う事になります。

設定については、とりあえずデフォルトのままにしています。
それ以降の項目についてはプロ版購入後のライセンスキー入力だったり、特定の国に対して広告非表示にするかの項目なので、これもデフォルトのままにしておきます。
プラグインの導入はここまで。
次からが本番です。
ショートコードの作成
ショートコードが必要
どうやら、広告貼表示用ショートコードを作成して、それをトップページや記事に張り付けして広告表示をしていく必要があるようです。
(重要)テキストエディタの準備
この後、phpファイルへコードの追加等を行いますが、形式をUnicode(UTF-8)に変換できるテキストエディタを準備しておいた方が良いです。
全てのプログラムとまでは言いませんが、コード関係はUnicodeでないとエラーが出る物があり、そのまま作業を続けると知らないうちにファイルを壊してしまう事があります。
Windowsだと「秀丸」や「さくらエディタ」などが良いかと思います。
macの方はよくわからないです。。。
関数作成
以下のコードをコピペして、「/*ここにAdsenseコードを貼り付け。*/」の部分にAdsenseで取得した広告コードを貼り付けます。
コピーできます。
/*アドセンス狩り対策プラグインのショートコード*/
function ad01Func() {
if( aicp_can_see_ads() ) {
$adCode = '
<div class="aicp">
/*ここにAdsenseコードを貼り付け。*/
</div>';
return $adCode;
} else {
return '<div class="error">広告の表示がブロックされています。</div>';
}
}
add_shortcode('ad01', 'ad01Func');
functions.phpへ関数の記述
プラグインの紹介(今回使わない)
functions.phpにコードを書き込むにあたり、プラグインの導入で対応できるようですが、私はできるだけプラグインを入れたくないので今回はfunctions.phpに直接書き込みします。
functions.phpにコード追加するプラグインの例

(重要)functions.phpのファイルバックアップ
ここからは初心者にとって非常に難易度の高く感じる内容です・・・
functions.phpを触る前にサーバーからファイルをダウンロードする等してバックアップをとります。
私のサーバーはConoha WINGなので、サーバーにログインして「サイト管理」→「ファイルマネージャー」から以下の場所へ行ってファイルのダウンロードをしました。
子テーマを使っているなら、「テーマ_child」のfunctions.phpをバックアップです。
functions.phpを表示する
functions.phpに関数を書き込みます。
外観→テーマエディターを選択。

画面右側にある「編集するテーマを選択」で使っているテーマを選択します。
私はSWELLで子テーマを使っているので、「SWELL_CHILD」を選択し「functions.php」を選択します。

functions.phpに関数の貼り付け
先ほど作った関数を張り付けます。
「<?php」の下で良いと思います。テーマによって関数記述の場所指定があったらそれに従って追加します。
関数を追加したら「ファイルの更新」を押します。
ここで何かしらのエラーが出てファイルが巻き戻される場合、コードの貼り付けが間違っていないか、「”」や「’」が全角になっていないか、全角スペースが入っていないか等の確認。あと、テキストエディタでUnicode(UTF-8)にコードの内容を変えずに適用をしてから貼り付けてみると解決する事があります。(必ずバックアップ後に作業する事)
functions.phpにコードを追加したイメージが以下。赤枠部分が追加した関数になります。

ショートコード
ショートコード名
functions.phpが更新できたら作成したショートコードを広告表示したい場所へ記入していきます。
今回作成した関数で「add_shortcode(‘ad01’, ‘ad01Func’);」にある「ad01」がショートコード名になるので、各所へ記述する際は[ad01](記述時は半角[]にする)となります。
Adsense広告コードが複数ある場合
Adsemse広告コードが複数ある場合は、functions.phpに必要な数の関数を作成する必要があります。
その場合、同じ関数名で作る事ができない為、以下ようにの赤文字部分を変えた関数を別途作っていきます。
関数ができたら、先ほどの[ad01]用関数の下にでも貼り付けしてください。
ここで作ったショートコードは[ad02](記述時は半角[]にする)となります。
/*アドセンス狩り対策プラグインのショートコード*/
function ad02Func() {
if( aicp_can_see_ads() ) {
$adCode = '
<div class="aicp">
/*ここに別のAdsenseコードを貼り付け。*/
</div>';
return $adCode;
} else {
return '<div class="error">広告の表示がブロックされています。</div>';
}
}
add_shortcode('ad02', 'ad02Func');
ショートコードの貼り付け
Adsense広告を表示したい箇所に作成したショートコードを張り付けて広告表示をします。
対処法はあるみたいですが、複雑になる為対応は見送ります。
ちょっと面倒ですが、必要な個所にショートコードを張り付けて行く事で対応しようと思います。
ブロックされた数の確認
WordPresのダッシュボードにブロックユーザーの数が表示されます。ブロックされている人が発生したらカウントされます。ここを監視して状況把握するのが良いかと思います。

注意点
AdSense Invalid Click Protectorはスマホなどのモバイル機器で効果を発揮しないと言われています。
タッチスクリーンのサポートに関する重要な注意事項:このハードウェアはクリック入力としてマウスではなくタッチスクリーンを使用するため、このプラグインはスマートフォンやタブレットなどのモバイルデバイスでは機能しません。この設計により、境界監視のトリックが無効になります。
※AdSense Invalid Click Protectorの説明サイト日本語訳です
まとめ
functions.phpへの書き込みは危険が伴いますが、ちゃんとバックアップを取る事と、サーバーのファイル操作が分かっていれば復旧は難しくありません。また、この機会にテキストエディタの使い方等も覚えておくと良いと思います。
今回、プラグイン「AdSense Invalid Click Protector」を導入しましたが、これを入れたからと言って万全ではありません。簡易対応と考えた方が良さそうです。
今回のAdsense広告停止がAdsense狩りによる物なのかは解明できません。何度も広告クリックされた形跡はありますが、それが故意なのかそうでないのかはやった人にしかわかりません。
ブログでAdsense広告を出す以上、出す側が対処するしかないのが現状。
もし故意なのであれば止めてほしいですが、仕組み上出来てしまうので自己防衛するしかありません。
今回の対応で本当に防衛でるのかAdsense広告が復旧しないと結果が出せませんが、少しでも防衛策として参考になればと考えています。
他に対策が無いか引き続き探してみます。

コメント