检测广告拦截软件?
我最近访问了一个网站,注意到该页面有一个部分,说它注意到我正在使用AdBlocking软件,我可以关闭它以帮助支持这样的小网站。我只是想知道你会怎么做?最好是在客户端还是服务器端完成?
我最近访问了一个网站,注意到该页面有一个部分,说它注意到我正在使用AdBlocking软件,我可以关闭它以帮助支持这样的小网站。我只是想知道你会怎么做?最好是在客户端还是服务器端完成?
这是服务器端根本无法做到的事情 - 人们有理由敲你的门并说“看看我,我有AdblockPlus!在客户端时,adblock正在积极尝试影响页面内容,这是您可以看到发生的事情,并看到他们正在使用广告拦截器。
无论如何,我碰巧知道 newgrounds.com 也在这样做。(他们的新布局被adblock和用户搞砸了 - 作为回应,他们进行了一场最佳比赛“如果你不打算帮助我们完成我们的广告,那就去商店买东西”横幅。
快速浏览一下newgrounds的来源告诉我,他们正在用一些简单的javascript来做到这一点。文档中的第一个:
var user_is_leecher = true;
接下来有一个外部脚本标记:src=checkabp?thisistotrickabp=***adress of ad affilliate***
现在开玩笑说:他们只是信任adblock plus来过滤掉该脚本,因为其中的所有内容都是:user_is_leecher = false;
从那里,他们可以做任何事情。
这里提到的所有方法都依赖于广告拦截器来剥离代码。这不适用于某些广告拦截器(如Mac上的NetBarrier)。当广告拦截器流行起来时,您还必须不断更新代码。
要检测用户是否在阻止广告,您所要做的就是在广告javascript中找到一个函数并尝试对其进行测试。他们使用什么方法来阻止广告并不重要。以下是Google Adsense广告的外观:
if(typeof(window.google_render_ad)=="undefined")
{
//They're blocking ads, do something else.
}
下面概述了此方法:http://www.metamorphosite.com/detect-web-popup-blocker-software-adblock-spam