Was ist der beste Weg, Statistiken über die Anzahl der Besucher auf meiner Website zu erfassen, die ihren Browser so eingestellt haben, dass sie Werbung blockieren?Wie kann ich feststellen, ob ein Webclient Werbung blockiert?
Antwort
Da Programme wie AdBlock die Anzeige eigentlich nie anfordern, müssten Sie in den Serverprotokollen nachschauen, ob derselbe Benutzer auf eine Webseite zugegriffen hat, aber nicht auf eine Anzeige zugegriffen hat. Dies setzt voraus, dass sich die Anzeige auf demselben Server befindet.
Wenn Ihre Anzeigen auf einem separaten Server sind, würde ich vorschlagen, dass dies unmöglich ist.
Der beste Weg, um Benutzer davon abzuhalten, Werbung zu blockieren, ist, inline Textanzeigen zu haben, die vom Server erzeugt und in Ihrem html aufgetischt werden.
Ich nehme an, Sie könnten die Anzeigenausdrucke mit den Seitenaufrufen auf Ihrer Website vergleichen (die Sie von Ihrer Analysesoftware erhalten können).
die Benutzer-ID für die Anzeige auf die Anfrage hinzufügen:
<img src="./ads/viagra.jpg?{user.id}"/>
auf diese Weise können Sie überprüfen, welche Anzeigen von welchen Benutzern gesehen werden.
Sie müssen über die verschiedenen Möglichkeiten nachdenken, wie Anzeigen blockiert werden. Das erste, was Sie sich ansehen müssen, ist, ob sie noscript ausführen, also könnten Sie ein Skript hinzufügen, das danach sucht.
Die nächste Sache ist zu sehen, ob sie Flash blockieren, sollte ein kleiner Film das tun.
Wenn Sie an der adblock Standort zu suchen, gibt es einige Hinweise darauf, wie es ist blockiert:
How does element hiding work?
Wenn Sie unten die Seite weiter suchen, werden Sie, dass herkömmliche Chrom sehen nicht funktionieren Sondieren, so dass Sie müssen versuchen, das geänderte DOM zu parsen.
AdBlock Forum says Dies wird verwendet, um AdBlock zu erkennen. Nach einigen Feinabstimmungen könnten Sie damit Statistiken sammeln.
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);
}
}
}
}