如何判断网页客户端是否屏蔽广告?

16

如何记录访问者数量的统计数据,特别是那些浏览器启用了广告屏蔽功能的访问者?

5个回答

11

由于像AdBlock这样的程序实际上从未请求广告,因此您需要查看服务器日志,以查看是否同一用户访问了网页但没有访问广告。这是假设广告位于同一服务器上。

如果您的广告位于单独的服务器上,则我认为这是不可能的。

防止用户屏蔽广告的最佳方法是使用服务器生成的嵌入式文本广告并在您的html中提供。


10

将用户ID添加到广告请求中:

<img src="./ads/viagra.jpg?{user.id}"/>

这样你就可以检查哪些广告被哪些用户看到了。


4
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);
      }
    }
  }
}

4
你需要考虑广告被阻止的不同方式。首先要查看是否运行了noscript,因此可以添加一个脚本来检查它。
接下来要看看他们是否阻止了flash,一个小电影应该就能做到这一点。
如果你查看adblock网站,有一些指示它如何进行阻止:
元素隐藏是如何工作的? 如果你进一步查看那个页面,你会发现传统的chrome探测方法不起作用,所以你需要尝试解析改变过的DOM。

3

我想你可以将广告印刷品与网站页面浏览量进行比较(您可以从分析软件中获取)。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接