Browser 如何判断web客户端是否正在阻止广告?

Browser 如何判断web客户端是否正在阻止广告?,browser,analytics,Browser,Analytics,记录访问我的网站并将其浏览器设置为阻止广告的访问者数量的最佳方法是什么?我想您可以将广告打印与网站上的页面浏览量(您可以从分析软件获得)进行比较。因为像AdBlock这样的程序实际上从未请求广告,您必须查看服务器日志,以查看同一用户是否访问了网页,但没有访问广告。这是假设广告在同一台服务器上 如果你的广告是在一个单独的服务器上,那么我建议这是不可能做到的 阻止用户阻止广告的最佳方法是让服务器生成的内联文本广告出现在html中。将用户id添加到广告请求中: <img src="./ads/v

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

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

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

如果你的广告是在一个单独的服务器上,那么我建议这是不可能做到的


阻止用户阻止广告的最佳方法是让服务器生成的内联文本广告出现在html中。

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

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


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

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

下一件事是看看他们是否在阻止flash,一部小电影应该可以做到这一点

如果您查看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);
      }
    }
  }
}
setTimeout(“detect_abp()”,10000);
var isFF=(navigator.userAgent.indexOf(“Firefox”)>-1)?对:错,
hasABP=false;
函数检测_abp(){
如果(isFF){
if(Components.interfaces.nsIAdblockPlus!=未定义){
hasABP=true;
}否则{
var AbpImage=document.createElement(“img”);
AbpImage.id=“abp_检测器”;
AbpImage.src=“/textlink-ads.jpg”;
AbpImage.style.width=“0”;
AbpImage.style.height=“0”;
AbpImage.style.top=“-1000px”;
AbpImage.style.left=“-1000px”;
文件.正文.附件(AbpImage);
hasABP=(document.getElementById(“abp_检测器”).style.display=“无”);
var e=document.getElementsByTagName(“iframe”);
对于(变量i=0;i