【WordPress】【Adsense】LION BLOGテーマでのAdsense狩り対策を行う

【WordPress】【Adsense】LION BLOGテーマでのAdsense狩り対策を行う

どうもfkdm(@fkdm88)です。

本ブログではAdsense広告を導入して、雀の涙ではありますが広告収入を得ています。

Advertisement

先日、突然Googleさんから「お客様のAdmobアカウントで広告配信が制限されました」というメールを受信しました。原因は「不正に広告収益を上げる目的と思われる無効なトラフィック」であるとされ、自身によるクリックはもちろんのこと、不正にクリックされるような運用をしてくれるな。不正を防止する対策を講じなさい。とのこと・・・😢

このメール、4/27に来てたのですが実は2回目で、2/20にもメールが来ていました。このときは自分でクリックしちゃったのかなー気を付けよう。くらいに思っていたのですが何やらおかしいので調べることにしました。

自身によるクリック

テーマ設定や投稿後の体裁確認などでブログ表示させることはあっても、広告クリックしたことはいままでありませんでした。。 ※表示するだけでも収益に影響するのかはわかりません・・ここも勉強しなきゃ

不正なクリック

こんな弱小ブログに攻撃する人なんていないだろう・・と思いながらAdsenseのクリック数チャートを確認していたら・・😱

adsense_cap

ありました。1回目のメールと2回目のメールそれぞれの3週間ほど前になるでしょうか。不自然なクリックが・・間違って押したと言えるレベルではない。

Google先生に聞いてみると同様のケースはたくさんあるようで、Googleアナリティクスを使用した特定の仕方など記載がありました。これら悪意あるユーザによるAdsense狩りと呼ばれる被害なのだそうです。。

調べて見つけた「Adsense Invalid Click Protector」プラグイン

詳細は割愛しますが、広告を押したIPアドレスを記録して、

  • 指定期間内に
  • 指定回数広告がクリックされたら
  • 指定期間BANする

プラグインなのだそう。導入方法は以下Snippetsを用意しておき、広告掲載の際はad01を呼び出すこと。

function ad01Func() {
  if( aicp_can_see_ads() ) {
    $adCode = ‘
<div class=”aicp”>
<!– ここにアドセンスコードを貼り付ける –>
</div>’;
    return $adCode;
  } else {
    return ‘<div class=”error”>スポンサードリンク</div>’;
  }
}
add_shortcode(‘ad01‘, ‘ad01Func’);

PHPは勉強していないですがClangライクで読み取りやすいですね。aicp_can_see_ads()がミソなのでしょう。

plantuml

早速導入してみることにしました、、が

当ブログでテーマ設定しているLIONBLOGは広告設定が簡単にできるのがウリ。しかしながら広告設定欄はHTMLタグしかサポートされていないようで上記PHPコードを追加することができませんでした。

LIONBLOGテーマ設定
Advertisement

ここで本題。LIONBLOGの広告設定のしやすさを失わないようAdsense Invalid Click Protectorの恩恵にあずかる方法です。

どうすればよいか?

先ほどミソを書きました。いつもの広告掲載の前段にaicp_can_see_ads()のチェックをいれればよいわけです。

TOPページ、各記事のソースを表示してAdsenseのHTMLタグで検索してみると、以下divクラスの中にあることがわかりました。

  • adHeader
  • archiveList-infeed
  • adPost
  • rectangle__item-left
  • rectangle__item-right

このタグで制御している実装をLIONBLOGテーマのPHPファイル群から検索。広告掲載をする直前でaicp_can_see_ads()の判定を追加します。 差分をアップしましたので参考にしてください😄

diff --git a/archive.php b/archive.php
index 85fe218..96505b3 100644
--- a/archive.php
+++ b/archive.php
@@ -41,7 +41,13 @@
                    }
                    ?>
                    <?php if($count == $number): ?>
-                         <div class="archiveList archiveList-infeed"><?php echo get_option('fit_ad_infeed'); ?></div>
+                         <div class="archiveList archiveList-infeed">
+                         <?php if( aicp_can_see_ads() ) : ?>
+                           <?php echo get_option('fit_ad_infeed'); ?>
+                         <?php else : ?>
+                            <div class=”error”>広告の表示がブロックされています</div>
+                         <?php endif; ?>
+                         </div>
                    <?php endif; ?>
                    <?php $count = $count + 1; ?>

diff --git a/functions.php b/functions.php
index 5adc5a0..1638045 100644
--- a/functions.php
+++ b/functions.php
@@ -4780,7 +4780,11 @@ function shortcode_adsense() {
                $myAmp = true;
        }
        if (!$myAmp){
-               return '<div class="adPost">'.get_option('fit_ad_post').'<span class="adPost__title">Advertisement</span></div>';
+               if( aicp_can_see_ads() ) {
+                       return '<div class="adPost">'.get_option('fit_ad_post').'<span class="adPost__title">Advertisement</span></div>';
+               } else {
+                       return '<div class="adPost"><div class=”error”>広告の表示がブロックされています</div>';
+               }
        }else{
                return '';
        }
diff --git a/header.php b/header.php
index e7ba9bd..270eb7f 100644
--- a/header.php
+++ b/header.php
@@ -85,7 +85,11 @@ if(get_option('fit_anp_check') == 'value2' && is_single() && @$_GET['amp'] === '

            <?php if (!$myAmp && get_option('fit_ad_header') ) : ?>
           <div class="adHeader<?php if (get_option('fit_ad_headerCheck') ) : ?> u-none-sp<?php endif; ?>">
-               <?php echo get_option('fit_ad_header'); echo "\n"; ?>
+               <?php if( aicp_can_see_ads() ) : ?>
+                  <?php echo get_option('fit_ad_header'); echo "\n"; ?>
+               <?php else : ?>
+                  <div class=”error”>広告の表示がブロックされています</div>
+               <?php endif; ?>
           </div>
            <?php endif; ?>

diff --git a/single.php b/single.php
index 7ac8f26..7016429 100644
--- a/single.php
+++ b/single.php
@@ -276,10 +276,18 @@ get_header(); ?>
       <!-- ダブルレクタングル広告 -->
          <aside class="rectangle">
            <div class="rectangle__item rectangle__item-left">
-          <?php echo get_option('fit_ad_doubleLeft'); ?>
+               <?php if( aicp_can_see_ads() ) : ?>
+                  <?php echo get_option('fit_ad_doubleLeft'); ?>
+               <?php else : ?>
+                  <div class=”error”>広告の表示がブロックされています</div>
+               <?php endif; ?>
            </div>
            <div class="rectangle__item rectangle__item-right">
-          <?php echo get_option('fit_ad_doubleRight'); ?>
+               <?php if( aicp_can_see_ads() ) : ?>
+                  <?php echo get_option('fit_ad_doubleRight'); ?>
+               <?php else : ?>
+                  <div class=”error”>広告の表示がブロックされています</div>
+               <?php endif; ?>
            </div>
         <h2 class="rectangle__title">Advertisement</h2>
          </aside>

phpファイルの修正になりますのでマージミスには注意しましょう。正しくマージされていればAdsense狩り対策ができるはず。私はこれで様子を見てみることにします・・・

それでは!

Advertisement