如今飞速发展的网络时代,网站业务也在飞速发展,其中或多或少就有许多流量主广告或者其他广告。部分内容会引起读者浏览的不适,或者使用去广告插件来去除广告浏览相关页面。不过截止今日,大大小小的个人博客基本上都是用爱发电,来自网站的收入少之又少。所以至此,我将这个反反广告插件屏蔽的方法分享给在夹缝中生存的个人站点,不喜勿喷。

屏蔽广告原理

目前大多数广告屏蔽插件都是通过对广告域的泛匹配,对所需要的加载的广告脚本进行拦截,从而实现对该网站广告的拦截,如下图所示:

巧妙解决网站广告被屏蔽的问题|反屏蔽广告插件方法插图1

例如我这里使用的一个浏览器插件「广告终结者」,这款插件能够自动拦截浏览页面的广告内容,并且有效率高达99%,如果您是追求干净简洁的页面,那么这款插件必定符合您。当然,广告拦截规则我们也可以通过一些措施来实现绕过,不过这得需要我们动动脑筋。

巧妙解决网站广告被屏蔽的问题|反屏蔽广告插件方法插图2

解决方案

一千个读者就有一千个哈姆雷特,不一样的程序猿就有不一样的编程思路。这里我就介绍两种比较有效的解决方案,如果还有需要补充说明的,可以在下方留言讨论。

这里呢,我们以最常见的谷歌广告为例:

方案一:转存谷歌广告JS

巧妙解决网站广告被屏蔽的问题|反屏蔽广告插件方法插图3

adsbygoogle.js这个关键词以及关键域已经被插件拦截,我们将这个js下载下来,并重新命名为f.js(任意名称)。

https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js

我们将下载下来的js文件上传至云托管处,并且保证能够访问它,在按照需求,修改js文件中的部分请求网址,例如在大约5940行处,我们可以修改其中请求的文件,同样我们将文件上传托管,保证能够访问。

  var tl = la([
      'https://pagead2.googlesyndication.com/pagead/managed/js/adsense/',
      '/slotcar_library',
      '.js',
    ]),
    ul = la([
      'https://googleads.g.doubleclick.net/pagead/html/',
      '/',
      '/zrt_lookup.html',
    ]),
    vl = la([
      'Your Domain',
      '/show_ads_impl',
      '.js',
    ]),
    wl = la([
      'https://pagead2.googlesyndication.com/pagead/managed/js/adsense/',
      '/show_ads_impl_with_ama',
      '.js',
    ]),
    xl = la([
      'https://pagead2.googlesyndication.com/pagead/managed/js/adsense/',
      '/show_ads_impl_instrumented',
      '.js',
    ])

修改完毕后,我们可以开启拦截插件看一下广告的展现效果,不过图片类型无法正常展示,所以推荐在选择广告类型时选择文本样式的。如果要显示广告图片,还需要继续修改相应的js文件

巧妙解决网站广告被屏蔽的问题|反屏蔽广告插件方法插图4

方案二:CDN反向代理广告域

这个方案相对于方案一在整体上较为简单,不过我们需要用到CDN,将源设置为广告域,例如下图这样配置CDN:

巧妙解决网站广告被屏蔽的问题|反屏蔽广告插件方法插图5

接着我们需要编写js脚本对全局的原广告域进行动态替换,将访问全部指向我们的新广告域,同样也可以实现绕过广告拦截的规则,实现展现广告,对广告正常点击,也会正常计费。

写在最后的话

友情提醒一句,用户也可以手动对页面上的广告进行屏蔽,所以没有百分之百展现的办法,毕竟都是人想出来的办法,也总有人会去想办法取解决。

如今,个人站长的生存空间日益艰难,就连流量展现也是少之又少,用爱发电的也是逐渐减少,很多已经走向了知识付费,不知道本站在未来会何去何从。