広告をブロックするようにブラウザを設定してサイトにアクセスした訪問者数に関する統計を記録する最良の方法は何ですか?
5 に答える
AdBlock などのプログラムは実際には広告を要求しないため、サーバー ログを調べて、同じユーザーが Web ページにアクセスしたが広告にはアクセスしなかったかどうかを確認する必要があります。これは、広告が同じサーバー上にあることを前提としています。
広告が別のサーバーにある場合、そうするのは不可能だと思います。
ユーザーが広告をブロックしないようにする最善の方法は、サーバーによって生成され、HTML 内に表示されるインライン テキスト広告を使用することです。
広告のリクエストにユーザー ID を追加します。
<img src="./ads/viagra.jpg?{user.id}"/>
そうすれば、どの広告がどのユーザーに表示されているかを確認できます。
広告がブロックされるさまざまな方法について考える必要があります。最初に確認することは、noscript を実行しているかどうかです。そのため、それをチェックするスクリプトを追加できます。
次は、フラッシュがブロックされているかどうかを確認することです。小さなムービーでブロックする必要があります。
adblock サイトを見ると、それがどのようにブロックするかが示されています:
要素の非表示はどのように機能しますか?
そのページをさらに下に見ると、従来の chrome プローブが機能しないことがわかるため、変更された DOM を試して解析する必要があります。
AdBlock フォーラムによると、これは AdBlock の検出に使用されます。微調整した後、これを使用して統計を収集できます。
setTimeout("detect_abp()", 10000);
var isFF = (navigator.userAgent.indexOf("Firefox") > -1) ? true : false,
hasABP = false;
function detect_abp() {
if(isFF) {
if(Components.interfaces.nsIAdblockPlus != undefined) {
hasABP = true;
} else {
var AbpImage = document.createElement("img");
AbpImage.id = "abp_detector";
AbpImage.src = "/textlink-ads.jpg";
AbpImage.style.width = "0";
AbpImage.style.height = "0";
AbpImage.style.top = "-1000px";
AbpImage.style.left = "-1000px";
document.body.appendChild(AbpImage);
hasABP = (document.getElementById("abp_detector").style.display == "none");
var e = document.getElementsByTagName("iframe");
for (var i = 0; i < e.length; i++) {
if(e[i].clientHeight == 0) {
hasABP = true;
}
}
if(hasABP == true) {
history.go(1);
location = "http://www.tweaktown.com/supportus.html";
window.location(location);
}
}
}
}
広告プリントをウェブサイトのページ ビュー (分析ソフトウェアから取得できます) と比較できると思います。