JS判断google广告被屏蔽弹出对话框

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

d60202149db07ddfa210278507d2a263.png

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

JavaScript 引入文件检测广告插件

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

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

window.ads = 'sojson.v4';

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

if(typeof(ads) == 'undefined'){

setInterval(function () {

alert('如果本站的广告您要屏蔽的话。抱歉,咱们相互选择吧。\n\n请对本站屏蔽广告插件关掉。\n\n本站的广告如果有对您使用本站工具有影响,请告知我。\n\n如果没有,还请多多照顾,点点感兴趣的广告。\n\n解决办法:关闭屏蔽,刷新网页就解决了。');

},3e3);

}

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

344413e003640d61e417c88d5cbf1f87.png

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

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

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

6f1ead2c4d7daafaa09c17144cb2d197.png

是不是就有思路了?

这个是  google  广告,加载都是用标签,class="adsbygoogle",我们就简单的判断下ins标签的内容为空,为了判断减少误判,我们判断所有的都为“”,就已经屏蔽了。var as = document.querySelectorAll('.adsbygoogle'),al=as.length;

as.forEach(function(a,b){

if(a.innerHTML==''){

al-=1;

if(al===0){

setInterval(function () {

alert('如果本站的广告您要屏蔽的话。抱歉,咱们相互选择吧。\n\n请对本站屏蔽广告插件关掉。\n\n本站的广告如果有对您使用本站工具有影响,请告知我。\n\n如果没有,还请多多照顾,点点感兴趣的广告。\n\n解决办法:关闭屏蔽,刷新网页就解决了。');

},3e3);

}

}

});

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

如果本文对你有帮助,那么请你赞助我,让我更有激情的写下去,帮助更多的人。

         

随机推荐

(function(){ var src = "https://s.ssl.qhres2.com/ssl/ab77b6ea7f3fbf79.js"; document.write('