我希望使用广告拦截浏览器扩展(即 Firefox 的 Adblock Plus、Chrome 的 Adthwart)阻止任何用户访问我的所有内容。
我怎样才能做到这一点?有服务器端解决方案吗?客户端?
编辑 1 这个问题是关于广告拦截浏览器扩展的检测:
我担心检测后的行动。
编辑 2 在我之后问了一个重复的问题,所以我想我会在这里链接到它:
我希望使用广告拦截浏览器扩展(即 Firefox 的 Adblock Plus、Chrome 的 Adthwart)阻止任何用户访问我的所有内容。
我怎样才能做到这一点?有服务器端解决方案吗?客户端?
编辑 1 这个问题是关于广告拦截浏览器扩展的检测:
我担心检测后的行动。
编辑 2 在我之后问了一个重复的问题,所以我想我会在这里链接到它:
这就像试图阻止用户在站立而不是坐着时阅读您的内容。这很愚蠢,并且可能会将访问者赶出您的网站。上次我看到“你正在使用 adblock,这会伤害 web 开发 bla bla”时,我只是用元素隐藏助手阻止了该 div。我承认这很有趣。大多数网站现在几乎无法阅读,广告闪烁,内容苍白。大量的广告也是恶意的,伪装成他们所在网站的一部分,将用户带到了不好的地方。
这就是为什么你不应该。如果你仍然想,坏消息,你不能。只要我可以在控制台中编写 $('.ad').hide() ,没有人可以阻止我阻止某些东西。当广告 div 有一个非常通用的类、id 或它们没有任何类时,我有时会放弃,因此很难使用 adblock 元素隐藏助手来定位它们(当然,如果它们不在列表中,在这种情况下我甚至不知道它们的存在)。因此,您能做的最好的事情可能是为广告提供一类 .content 或您在网站其他部分也使用的东西。这并不多,但这是你能做的。仅仅因为你可以,并不意味着你应该。网络营销模式必须改变,而且一定会改变。
要检测用户是否阻止广告,您所要做的就是在广告 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
我知道这一点是不可能的。大多数添加阻止程序通过锁定正在“请求”的 URL 并直接阻止,或者查看内容/mime 类型并基于此阻止。
您可以通过寻找广告拦截器的迹象来做一些事情,但这充其量是困难的。
虽然我喜欢我的广告拦截器,但它是关于回答问题的。您可以检查通常会被广告拦截器阻止的 url 是否可以访问,并且只有在加载了相关图像/bla 时才继续。否则,你就是不这样做。