AdBlockが広告表示の要素の中身を消してしまうことを利用して,AdBlock使用者にメッセージを表示してみたいと思います.
Google AdSenseでは,adsbygoogleクラスのinsタグの中に広告を挿入することでページ上への広告表示を行っています.
下の画像が実際の広告とそのhtmlソース(クリックで拡大).
AdBlockを使用すると,以下のようにinsタグの中身が消去されます.余談ですがこの画像をad.pngという名前で表示しようとしたらAdBlockに消されました(笑).
このことから,adsbygoogleクラスを持つ要素の中身が空文字かどうかを判定するだけでユーザーがAdBlockを使用しているか否かを容易に判別できることがわかります.javascriptでの判定は以下の簡単な条件文で実現が可能です.ページの読み込み前だと誤判定する場合があるので,window.onloadメソッドでページ読み込み後に実行するようにします.
単純に警告を表示したいなら alert(“ほげほげ”);とでも書けばよいし,AdBlockなんてけしからんみたいなお説教ページにでも飛ばしたいのならlocation.href=”example.com”;のように書けばいいと思います.自分はAdBlockを強く否定しているわけではないので,このサイトの場合は以下のように広告スペースにしょうもないメッセージを表示するようにしています.
ちなみに当たり前ですがGoogle Adsenseが張られていないページではこの方法では判定できません.また,AdBlockの非表示の方法が変更されれば判定が不可能になる可能性があります.

コメントを残す