检测adblock和javascript

时间:2011-01-30 00:27:01

标签: javascript adblock

我希望在我的网站上检测到广告拦截软件,并要求用户通过重定向来停用广告拦截功能。我发现的唯一方法是使用Javascript。

  1. 还有其他检测方法吗?

  2. 如果没有,我该如何检测Javascript是否被禁用并将其重定向到某个页面?

4 个答案:

答案 0 :(得分:35)

要检测用户是否阻止了广告,您只需在广告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

要在禁用javascript的情况下重定向所有用户,只需将此代码放在HTML的头部:

<noscript>
    <meta http-equiv="refresh" content="5;url=http://newsite.com/">
</noscript>

答案 1 :(得分:5)

如果禁用了javascript,您实际上无法“检测”。由于javascript是客户端功能,服务器无法检测到它,并且“检测”客户端的内容是通过javascript完成的。你看到了捕获22。

可用的是<noscript>标记,只有在关闭javascript时才会由浏览器呈现。这是在禁用javascript时向用户显示消息的标准机制。使用noscript和聪明的CSS,您可以强制要求用户启用javascript或关注您提供的重定向链接以使用您的网站。

无法自动重定向仅限 禁用javascript的用户。您可以使用javascript有选择地重定向用户,也可以根据服务器端条件(HTTP标头等)重定向人员。但你无法抓住那个中间人群。

对于检测广告拦截,这将因浏览器和广告拦截方法而异。没有一致的标记,但您可以通过javascript检查广告服务器的可用性,或检查您的广告内容是否已加载到网页上。

答案 2 :(得分:2)

我在这篇文章中引用了这个主题:

<强> http://w3guy.com/detecting-adblock/

<强> HTML

<div class="myTestAd">
    <!-- Adsense Ad code goes here -->
</div>

<强> JS:

if ($('.myTestAd').height() == 0) {
    // stuff to do if adBlock is active
} 

答案 3 :(得分:1)

我无法获得@ Beau的工作检查'window.google_render_ad',但检查'window.google_jobrunner'时确实有效。

自从发布原始答案以来,Adsense代码可能已更改,我在从Adsense下载的JS中找到了'google_jobrunner',但没有找到'google_render_ad'。