互联网
首页 > 互联网> > JS判断网页广告被屏蔽解,广告终结者、AdGuard插件判断并提示

JS判断网页广告被屏蔽解,广告终结者、AdGuard插件判断并提示

作者:互联网

做网站,尤其是IT类型的网站,没有额外的收入,只有一点广告费收入,但是这种网站的大部分用户群体就是程序员,也就是我们这种程序员大部分会安装“广告终结者”、“AdGuard”等广告拦截插件。


我一般不会安装这些东西,我现在来测试这些安装了这些软件。确实挺厉害的。全拦截了。

JavaScript 引入文件检测广告插件

AdGuard 是根据文件名来判断的,网上有方案,比如说我们自己创建一个文件名为一些常用广告的文件名。

我们创建一个文件名为“adview_pic_cpc_cpm_cpa_guanggao_gg_ads_300x250.adsbygoogle.js”的  JS  文件,文件内容,我们定义一个全局变量。

window.ads = 'sojson.v4';

然后在这个JS下面加入以下代码:

  1. <script src="//cdn.www.sojson.com/ad/adview_pic_cpc_cpm_cpa_guanggao_gg_ads_300x250.adsbygoogle.js"></script>
  2. <script>
  3. if(typeof(ads) == 'undefined'){
  4. setInterval(function () {
  5. alert('如果本站的广告您要屏蔽的话。抱歉,咱们相互选择吧。\n\n请对本站屏蔽广告插件关掉。\n\n本站的广告如果有对您使用本站工具有影响,请告知我。\n\n如果没有,还请多多照顾,点点感兴趣的广告。\n\n解决办法:关闭屏蔽,刷新网页就解决了。');
  6. },3e3);
  7. }
  8. </script>

如果用户安装了“AdGuard”插件,那么会提示下面的内容,并且3秒显示一次。


但是我再安装了比较火“广告终结者”发现此方案无效。我观察了一下,“广告终结者”是通过域名来判断的。

JS针对性性判断广告是否被拦截

我针对性观察了下,广告屏蔽和不屏蔽的区别,来看看下面的张图。上面是被屏蔽,下面是无屏蔽有广告的  HTML  代码。


是不是就有思路了?

这个是  google  广告,加载都是用<ins>标签,class="adsbygoogle",我们就简单的判断下ins标签的内容为空,为了判断减少误判,我们判断所有的都为“”,就已经屏蔽了。

  1. var as = document.querySelectorAll('.adsbygoogle'),al=as.length;
  2. as.forEach(function(a,b){
  3. if(a.innerHTML==''){
  4. al-=1;
  5. if(al===0){
  6. setInterval(function () {
  7. alert('如果本站的广告您要屏蔽的话。抱歉,咱们相互选择吧。\n\n请对本站屏蔽广告插件关掉。\n\n本站的广告如果有对您使用本站工具有影响,请告知我。\n\n如果没有,还请多多照顾,点点感兴趣的广告。\n\n解决办法:关闭屏蔽,刷新网页就解决了。');
  8. },3e3);
  9. }
  10. }
  11. });

完全有效,缺点就是要针对性。

标签:js,广告终结者,插件,AdGuard,判断,
来源: https://www.sojson.com/blog/307.html