2008-08-05 72 views

回答

11

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

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

阻止用户阻止广告的最好方法是让内嵌的文本广告由服务器生成并在html中播放。

3

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

10

添加的用户ID为广告请求:

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

这样你可以查看哪些广告在哪些用户看到。

4

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

接下来要看他们是否阻挡闪光灯,一部小电影应该这样做。

如果你看一下Adblock的网站,还有它是如何阻止一些提示:
How does element hiding work?

如果进一步往下看该页面,你会看到,传统的镀铬探测将无法正常工作,所以你需要尝试解析更改的DOM。

4

AdBlock论坛says这是用来检测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); 
     } 
    } 
    } 
} 
相关问题