16

记录访问我的网站并设置浏览器阻止广告的访问者数量的最佳方法是什么?

4

5 回答 5

11

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

如果您的广告在单独的服务器上,那么我建议您不可能这样做。

阻止用户阻止广告的最佳方法是使用由服务器生成并在您的 html 中投放的内嵌文本广告。

于 2008-08-05T15:34:18.583 回答
10

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

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

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

于 2008-08-05T15:37:34.520 回答
4

您需要考虑阻止广告的不同方式。首先要查看的是它们是否正在运行 noscript,因此您可以添加一个脚本来检查它。

接下来就是看他们是否挡住了flash,一个小电影就应该这么做。

如果您查看 adblock 站点,就会发现它是如何阻止的:
元素隐藏是如何工作的?

如果您进一步向下看该页面,您会发现传统的 chrome 探测将不起作用,因此您需要尝试解析更改后的 DOM。

于 2008-08-05T15:37:36.063 回答
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);
      }
    }
  }
}
于 2008-08-07T00:31:18.077 回答
3

我想您可以将广告打印与您网站上的页面浏览量(您可以从分析软件中获得)进行比较。

于 2008-08-05T15:32:21.660 回答