如何解决苹果IOS9广告拦截问题?

理由
举报 取消

2015年9月16日,苹果发布IOS9,并同时宣布允许第三方广告拦截插件或者APP在这个版本中使用,因此很多广告主、网站和APP开发者遇到了很多广告无法展示、网页无法展示等问题。

2017年12月22日 1 条回复 1016 次浏览

发起人:林森 初入职场

回复 ( 1 )

  1. 林森
    理由
    举报 取消

    广告拦截已经不是一个新的话题了,但我为什么想要讨论这个问题?

    大家知道9月份苹果发布IOS9操作系统,与此同时宣布允许第三方“content blocking”(内容拦截)类的插件或者APP在这个版本中使用,比如Crystal。

    由于最近很多朋友和客户都受此影响,遇到了广告被拦截、页面打不开的情况,所以想把这几天的思考和研究梳理一下,希望有帮助。

    问题主要表现在拦截网页广告、网页无法正常显示、最不幸的是还会导致我们分析工具代码无法加载和执行,无法监测用户数据意味着有用户访问我们网站的时候,我们根本不知道他们在网站上干了什么。

    【跑个题】获取用户数据是否侵犯隐私?

    这里穿插讲一点关于用户数据隐私的问题。

    有些用户会觉得,我为什么要把我的访问数据给你?这是我的隐私!

    首先说说我们获取哪些数据,比如页面浏览量、设备、操作系统、语言、点击等,实际上这些数据并不会侵犯用户的隐私。

    打个比方,你去一家商店,商店通过摄像头记录下你的走动轨迹、停留时长、挑选了哪些商品、你衣服的颜色等等,但是不会记录你的姓名、身份证号等等,我们监测的数据原理和摄像头一样,现在你还觉得侵犯隐私吗?

    大部分网站获取用户的访问数据主要是为了提升用户体验,优化网站影响用户体验的地方。在我之前的一篇文章《数据可视化分析产品及案例》中就详细讲述如何通过获取用户数据提升用户体验,关注“数字营销与数据分析”微信公众号,回复“可视化”查看文章。

    所以,没有这些基础访问数据,我们的优化大部分就只能是拍脑袋的决策了。

    广告拦截插件/APP如何拦截广告

    要避免广告被拦截、无法获取用户数据,我们要先了解广告拦截工具如何工作的。

    最近几天查看了一些国外的资料、以及和国外同行沟通后发现,大致总结有以下两个拦截规则(如果有读者知道更多的信息,希望不吝赐教):

    1、 带有敏感信息的页面元素

    广告拦截工具通常会通过浏览器的接口读取页面代码,并将带有明显广告信息的内容进行拦截后再将网页展示给用户。比如<a> links to ,<div> 和<span> 中带有“pub_300x250,”、“text-ad,”这样的关键因素。

    2、 带有敏感信息的URL

    根据拦截工具和浏览器的协议,如果用户打开的页面URL包含特殊的广告关键词被拦截工具识别到,浏览器将不会加载页面。比如来自域名(用于Google adsense)的文件或者文件名包含advert的。

    因此,如果在IOS9操作系统中,你使用safari,并且开启了Crystal(第三方广告拦截工具),那么来自域名或者文件名有“omniture.js” 或者“analytics.js”都会被拦截。

    如何解决被拦截的问题?

    接下来说一些我们最近几天讨论的一些解决方案。

    首先,检查代码。

    我们知道包含敏感信息的页面元素会被拦截,那我们要去修改代码中包含像<div id=”text-ad1″> 或者”offers.js.”,通过这个办法可以解决目前大部分遇到的问题,当然,如果拦截工具不断升级,这方面也要不停的做调整。

    其次,如果你的网站被拦截的不仅仅是广告,甚至连下拉框都被拦截了……拦截工具太过分了,这样的情况,我们也没讨论出什么好的办法。我建议直接联系拦截公司,说明情况。我们在海外的一些客户也遇到了类似的问题,通过联系拦截工具公司解决了这样的问题,所以你可以试一下。

    最后的一个方法是一个没有办法的办法了。

    如果你的网页被屏蔽了,你可以在你的页面最上方放一个banner(不是弹出的banner),用来告诉你的用户,由于他们使用拦截工具,导致无法展示他们想要的内容,所以要关闭广告拦截工具才能看到相应的内容,很显然,对于用户粘度不高的网站,大部分用户都会流失的。(下下策,都被逼到这份上了)

    如何让分析数据不被拦截?

    最后说说分析数据拦截问题,上文讲到主要是因为拦截工具识别到了监测工具的代码和文件来源的网址,所以被拦截。比如来自或者文件名有“omniture.js.”的。

    去年我自己做了个小工具,想要解决的问题就是要批量分析各个网站上的监测工具,所以了解其中的规则,没想到当时的研究在这里派上了用场。

    接下来说说解决方案,这个问题相对好解决,只要将代码中和服务器中的文件名进行修改,打个比方, 或者 这样是不会被拦截的,但是如果拦截工具更新了,比如ga.js和omni.js列为拦截列表,还是会被拦截的。所以更好的建议是取一个随机的名称,比如“mylove1024.js”,这样让拦截工具识别不出来。

    总结

    以上是大致总结目前的拦截工具拦截规则和几个简易的解决方案。

    其实业界特别是国外已经有很多人在研究了,感谢国双杨韬老师和王晓群老师的建议。我在这抛砖引玉,如果大家有更多的研究结果,希望大家不吝赐教,一起讨论研究。现在轮到你了,如果有什么想讨论的,加我微信305434975。

我来回答

Captcha 点击图片更换验证码