AdSense Invalid Click Protector プラグインの導入
こんにちは。
今回はGoogle AdSense(アドセンス)の審査が通った後、狙われるといった話を聞きましたので、行った対策について書き残します。
この記事が、どこかのだれかのためになれば幸いです。
目次
アドセンス狩りとは
サイト内の広告をツールやマクロなどで不正クリックをすることで、
「無効な操作:自己クリック」によりアカウント停止に持ち込むやり方です。
なぜ、他人のアカウントを停止するのか?
・逆恨み
・競合するコンテンツを扱う人の蹴落とし
・愉快犯
などが考えられます。
自分は大丈夫と楽観的に考えず、
被害に合う前にできる対策は実施しておきましょう!
対策方法
アクセスを人の目で四六時中監視することは、現実的ではありません。
AdSenseヘルプの無効なクリックの連絡フォームで報告する方法もありますが、
こまめにログをチェックしていても、アカウントが停止する前に見つけ出すのはキツイと思われます。
自分ができる範囲と考えたのが、以下になります。
無効なクリックの連絡フォームでスムーズに報告するための前準備
アクセスが不正だと判断できるためのデータを収集する。
あわせて、管理画面のダッシュボードに不正アクセスユーザーと検知した数値を表示
これはプラグインの導入 + 広告コードの修正で実現できそうでした
さらに、全ユーザーに対して広告をブロックするのではなく
Cookeでユーザーを絞り、そのユーザーだけをブロック対象にするといった効果があるようです。至れり尽くせり
不正アクセスのターゲットにされたときの対応を用意
すべてのページにあるGoogle AdSense広告を一括で非表示する仕組みを作る
具体的なやり方については下に記載します。
無効なクリックの連絡フォームでスムーズに報告するための前準備

プラグインのインストール
※Wordpress環境が前提の対策になります。
プラグイン
→ 新規追加
→ キーワードに「AdSense Invalid Click Protector」を入力
→ 上の画像のプラグインをインストール
→ 有効化
有効化した後、メニューに「AdSense Invalid Click Protector」が増えます
ここでは制限するクリック数などをカスタマイズしてください
「AdSense Invalid Click Protector Settings」の内容については以下に記します。
項目 | 備考 | 初期値 |
Set the Ad Click Limit | 広告クリック数の制限 | 3 |
Click Counter Cooke Expiration Time | 同一のCookeによるクリック数をカウントする有効期限(時間) | 3 |
Set the Visitor Ban Duration | 広告クリック数の制限にかかった場合、何日間を非表示とするか | 7 |
自分のサイトにあった設定を行えば、導入完了です。
リピーターが発生しにくいサイトであれば、初期値のままで大丈夫でしょう

ダッシュボードにも上記が表示されます。
Total no. of Blocked Users ブロックユーザーの総数
Blocked Users in last 24 hrs 24時間以内にブロックされたユーザーの数
Blocked Users in last 6 hrs 6時間以内にブロックされたユーザーの数
ブロックされたユーザーが見つかった場合、
「Check All Banned User Details」で無効なクリックの連絡フォームに必要なIPアドレスなどを確認しましょう
不正アクセスのターゲットにされたときの対応を用意
もしも複数のユーザー(IPアドレス)から標的にされた場合、
広告のクリック防止のために、Google AdSense側で広告を削除する方法は取りたくないと思いました。
それにともなって、自分のサイトを見直し。これには苦労した・・・
手作業で、記事に埋め込んだ広告は、共通関数を使うように修正することにしました。
もしもの場合、関数を一箇所イジるだけで全ページに適用される想定
最初に関数の作成
他の人がやっているのを真似しました。
テーマの編集
外観
→ テーマエディター
→ テーマのための関数 (functions.php)
function ad01Func() {
if( aicp_can_see_ads() ) {
$adCode = '
<div class="aicp">
<script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
<!-- ユニット1 -->
<ins class="adsbygoogle"
style="display:block"
data-ad-client="ca-pub-XXXXXXXX"
data-ad-slot="XXXXXXXXXXX"
data-ad-format="auto"
data-full-width-responsive="true"></ins>
<script>
(adsbygoogle = window.adsbygoogle || []).push({});
</script>
</div>';
return $adCode;
} else {
return '<div class="error">スポンサードリンク</div>';
}
}
add_shortcode('ad01', 'ad01Func');
上の関数を追加。“<div class=”aicp”>〜</div>”の間は自分のGoogle AdSenseの広告から取得したコードに置き換えてください
上では関数の作成と、ショートコードを追加しています。
それによって、投稿のカスタムHTMLなどで、今まで貼っていた広告コードに変わってショートコードを貼ることで広告を出すことができるようになります。
広告コードを表示したい箇所への貼り付けイメージ

Google AdSenseの広告用のコードをショートコードに置き換える作業を、
過去に書いた記事すべてに適用しました
まとめ
今回、行った対策について注意点がいくつかあります。
(1) Google AdSenseの広告掲載の自動化で貼られた広告について
ページ内の広告掲載に適した場所を Google がもれなく検出し、自動的に広告を表示する
自動化の広告に対しては、残念ながら今回行った対策では適用されないようです。
自身が任意の場所に手動で貼った広告のみになっていますので、ご注意ください
(2) ウェブページの読み込み時間に少しながら影響を与えます
通常、コンテンツの表示には必要のない処理を行っているのでその分、ページを表示するのに時間がかかってしまいます。
影響がどの程度か、サイトによってまちまちだと思いますので気になる方は速度スコアをチェックしてみてください。
Googleが提供している速度スコアを出してくれるオンライン ツール
PageSpeed InsightsPageSpeed Insights は、ウェブページのコンテンツを解析し、ページの読み込み時間を短くするための方法を提案します。
また、不正アクセス以外にも規約違反によって、アカウント停止になることもありえます。
規約はたまに確認しなおすといいですね。