让你的网站防广告屏蔽

前言

相信小伙伴们对广告是又爱又恨,一方面不想接受广告的荼毒,另一方面也想接点广告赚点流量收益。由此而来衍生出了两个技术,屏蔽广告与防屏蔽广告。

2020-04-14T09:05:00.png

屏蔽广告

2020-04-14T09:07:07.png

防屏蔽

原理

我们要想做到网站广告不被人屏蔽,首先就要理解屏蔽广告的原理。

1.初阶屏蔽

含ad,推广等字样的js或者class类就直接拦截或者不显示

2.高阶屏蔽

我也不会,但是高阶屏蔽肯定是可以屏蔽低阶广告的。

那么根据这个原理,我们可以发现。只要我们写一个很low很low的广告,然后监听它是否成功加载,如果没有,则跳转页面或者不显示内容。

实现

1. 制造广告

先写一个一眼就能看出来是广告的js文件,例如把js文件名命名

为"adview_pic_cpc_cpm_cpa_guanggao_gg_ads_300x250.js"。广告二字赤裸裸的写着,广告的韵味呼之欲出。

2. 定义变量

在js里面定义一个变量,比如:


var adskilltest=true;

3. 监听广告变量

页面文件中读取该变量

不管怎么样,只要被拦截,那就肯定是undefined。让个极其肤浅的广告命名,来检测是否有屏蔽广告,这叫引蛇出洞!

2020-04-14T09:20:46.png

大功告成!

4. 后续操作

既然被拦截,就要做出点反应。有了反应之后呢,还需要保存当时浏览的页面连接。我的解决方法是写一个noads.html负责显示被拦截后的内容以及保存跳转前的链接。


<!DOCTYPE html>

<html>

<head>

<meta charset="UTF-8">

<title>温馨提示</title>

</head>

<body>

<p>网站内容被识别为广告,已被屏蔽。请禁用广告屏蔽后点击下面链接哦!</p>

<a href="#" id="a">我已关闭广告屏蔽功能</a>

</body>

<script>

	function getQueryVariable(variable)

{

       var query = window.location.search.substring(1);

       var vars = query.split("&");

       for (var i=0;i<vars.length;i++) {

               var pair = vars[i].split("=");

               if(pair[0] == variable){return pair[1];}

       }

       return(false);

}

document.getElementById("a").href = getQueryVariable('route');

</script>

</html>

tips: 该方法不是最优,但是可行!

版权声明: 本文首发于 指尖魔法屋-让你的网站防广告屏蔽(https://blog.thinkmoon.cn/post/816_%E8%AE%A9%E4%BD%A0%E7%9A%84%E7%BD%91%E7%AB%99%E9%98%B2%E5%B9%BF%E5%91%8A%E5%B1%8F%E8%94%BD/) 转载或引用必须申明原指尖魔法屋来源及源地址!