使用AdBlockers为用户显示替代内容

Mad*_*iha 15 javascript jquery ads adblock

我正在制作一个广告资助的项目.真的是微妙和内容意识的东西,而不是生殖器扩大的蹩脚弹出窗口等.

由于该项目是由广告资助的,因此广告拦截器的人不会对项目有利,(因为他们显然不知道该特定网站上的广告并不那么糟糕).

如何为有广告拦截器的人显示替代内容?就像是

我们注意到您有一个有效的广告拦截器.Example.com是广告资助的,我们承诺我们的广告质量高且不引人注目.为了让我们保持正常运行,您可以提供的最佳帮助是将您的广告拦截器列入白名单.谢谢!

如何测试广告拦截器?

找到了一个例子!http://mangastream.com

Muh*_*man 18

广告拦截器基本上操纵一些带有一些ID的元素或像选择规则一样的jQuery,存储在他们的数据库中,在DOM准备好之后会做一段时间.

因此,您必须在DOM准备好后的某个时间(例如3秒)后检查您的广告元素是否被操作.您基本上可以检查display(因为AdBlockers隐藏它)CSS属性或广告元素的innerHTML.以下是一个例子:

工作演示: http ://jsfiddle.net/cxvNy/(使用AdBlock for Chrome测试,你需要激活它)

如果您的广告HTML是:

<div id="google_ads_frame1">aa</div>
Run Code Online (Sandbox Code Playgroud)

然后:

$(function(){
   setTimeout(function(){
      if($("#google_ads_frame1").css('display')=="none") //use your ad's id here I have used Google Adense
      {
          $('body').html("We noticed you have an active Ad Blocker. Example.com is ad funded, we promise our ads are of high quality and are unobtrusive. The best help you could provide to keep us running, is to whitelist us in your ad blocker. Thanks!");
      }
  },3000);
});
Run Code Online (Sandbox Code Playgroud)

希望上面的代码是自我解释:)


Mad*_*iha 6

最后,我使用了以下实现(类似于本网站的).使用以下代码:

function abp() {
    if ($('.ad').height() == 0) {
        $('.ad').css("height", "90px");
        $('.ad').css("background-image", "url(/static/images/msblock.png)");
    }
}
$(abp);
Run Code Online (Sandbox Code Playgroud)

在文件的最后.似乎像专业人士一样工作.感谢大家的优秀答案,为所有人提供支持!