我希望在我的网站上检测到广告拦截软件,并要求用户通过重定向来停用广告拦截功能。我发现的唯一方法是使用Javascript。
还有其他检测方法吗?
如果没有,我该如何检测Javascript是否被禁用并将其重定向到某个页面?
答案 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'。