如何检测使用Adblock的用户并重定向Javascript

5
我一直在寻找关于如何检测广告拦截器的信息,但是我找到的所有方法都没有起作用。我该如何在我的网站上检测广告拦截器并将用户重定向?例如:
我有一个广告拦截器,并且访问www.lol.com时,应将我重定向到www.lol.com/adblock.php
编辑:
我没有广告,我正在开发一个在线游戏,但某些奇怪的原因导致使用广告拦截器的用户阻止了游戏。我只想检测用户是否使用广告拦截器,并告诉这些用户禁用它。

这取决于您如何制作广告。您使用哪个API? - Logan Murphy
我没有广告,我正在开发一个在线游戏,但是一些奇怪的原因导致使用Adblock的用户阻止了游戏。我只想检测是否使用Adblock并告诉这些用户禁用它。谢谢! - Williams A.
你用什么来开发这个游戏,是Flash吗? - Seth
正确的,这是一个Flash游戏。 - Williams A.
1
由于这里实际上没有广告,因此更好的选择似乎是联系Adblock并告知他们问题所在。他们应该能够将游戏加入白名单,或解释为什么它被阻止了。 - bshacklett
2个回答

4
如果 AdBlock 隐藏了您的广告,您可以检查广告容器的高度是否为零:
$(function() {
  if (!$("#yourAdContainer").height()) {
    window.location.href = "www.lol.com/adblock.php";
  }
});

更新:

如果您没有广告,可以在页面加载时创建一个带有固定高度的id不可见块,并检查其高度。以下是我的项目示例:

$(document.body).append('<div id="advblock" style="position: absolute; opacity: 1; top: 0; left: 0;">hh</div>');
setTimeout(function() {
  if (!$('#advblock').height()) {
    window.location.href = "www.lol.com/adblock.php";
  }
  $("#advblock").remove();
}, 1);

Fiddle


谢谢,但我没有广告,我正在开发一个在线游戏,但是一些奇怪的原因使用Adblock的用户会阻止游戏。我只想检测是否使用Adblock并告诉这些用户禁用它。谢谢! - Williams A.
我没有广告,这就是问题所在。 - Williams A.
它不起作用,为什么? - Williams A.
抱歉,但这并没有显示任何警报。它应该有特殊的配置吗? - Williams A.
这可能取决于Adblock Plus的订阅。我的订阅是https://easylist-downloads.adblockplus.org/ruadlist+easylist.txt。实际上,我从那个列表中取了`#advblock` id。你可能有另一个订阅,或者也许你有另一个Adblock? - ataman
显示剩余4条评论

1
检查您包含游戏的 div 是否具有“广告类”classid名称。
广告拦截过滤器很大,因此如果您使用具有adadvertising或可能暗示其为广告的名称的classid名称,则由于现有过滤器的存在,可能会被阻止。这已经发生在我身上了。尝试将它们重命名。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接