web-dev-qa-db-ja.com

一部のサイトはAdBlock Plusをどのように検出しますか?

たとえば、これはAdBlock plusが検出された場合に機能を無効にし、機能します。これを回避する方法はありますか?

23
Celeritas

サイトの所有者がAdBlock Plusを検出するのに役立つ多くのスクリプトとプロジェクトがありますが、howが機能することに興味があると思います。

アイデアは簡単です。 Webサイトはads.js(またはAdBlock Plusが「魅力的」と判断するその他の名前)と呼ばれるJavaScriptファイルをロードします。

var amIHere = document.createElement("div");
amIHere.setAttribute("id", "amIHere");
document.body.appendChild(amIHere); 

AdBlock Plusを使用している場合、このスクリプトの実行がブロックされ、divは作成されません。次に、divの存在の簡単なチェックを含む通常の名前のJavaScriptファイルを使用します

if (document.getElementById('amIHere')){
   alert("You're Alright");
}else{
   alert("You're using AdBlock Plus");
}

その他の方法は、IDがadsのdivをロードするか、AdBlock Plusが広告として検出して非表示にしようとするクラスtext-adsを持つdivをロードし、JavaScriptを使用してdivが非表示かどうかをチェックします。

これはAdBlock Plusユーザーの大部分を検出するのに役立ちますが、この問題の性質(すべてがクライアント側で発生する)のため、理論的には、ユーザーはすべてのチェックと検出器を回避できます。

「パワーユーザー」として、使用する必要のあるWebサイトから、Adblock Plusを無効にする必要があると通知された場合、それを無効にして、終了後に有効にします。それを回避するために時間とリソースを費やしたくないのです。したがって、ユーザーの大多数が気にしないと想定できます。彼らはwill彼らにそれを無効にすることを強制していることに腹を立てますが、彼らはあなたのウェブサイトを離れるか、または単にAdBlock Plusを無効にします。

33
Adi