自社ホームページなどに広告を掲載し、クリックで収入の出る Google AdSense や 忍者AdMax などを利用している場合、誤って自分でクリックすると、規約違反で収入が得られなくなる場合もあります。
誤クリックするつもりはないのですが、何度もホームページを見ていると、ページロード中の誤操作やマウスの反応が悪くなったり、というのが重なって、気遣っていても100%防ぐのは無理があります。
条件分岐で非表示にする手もありますが、それだと広告がどういう種類が出ているか、ちゃんと表示されているか確認できないため却下しました。そこで、自分の広告は技術的に「クリックできなく」してしまいましょう。
まずHTML側です。重要なポイントは、広告コードのすぐ下に.ad-filter
というdiv
を作成すること、これで広告の上にレイヤーを重ねてクリックさせなくします。width
とheight
は広告と同じサイズにします。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
<div class="ad-section"> <!-- Google 広告コード --> <script type="text/javascript"><!-- google_ad_client = "ca-pub-99999999999999"; /* 200x200 */ google_ad_slot = "999999999"; google_ad_width = 200; google_ad_height = 200; //--> </script> <script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script> <div class="ad-filter" style="width:200px; height:200px;"> </div> </div> |
最後にPHP側です。下記は WordPress でのif ( is_user_logged_in()
を使い、管理者とそうでない場合で処理を変えています。重要な.ad-filter
というDIVが、ログインしていない場合は非表示、ログインしている場合はposition: absolute;
で、広告の上に乗っからせることによりクリックさせなくします。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
<style> <?php if ( is_user_logged_in() ) : ?> .ad-section { position: relative; } .ad-filter { display: block; position: absolute; top: 0; left: 0; background-color: #eee; opacity: 0.4; } <?php else: ?> .ad-filter { display: none; } <?php endif; ?> </style> |
なかなかお手軽ですし、広告のサイズが変わっても.ad-filter
のサイズを同じにするだけので、広告導入と同時に実装するのが吉でしょう。
[追記:2015年2月9日]
Google Chrome拡張「Google Publisher Toolbar」も良さそうですが、広告オーバーレイの表示までに若干の間があるのが少々残念なところでもあります。