AMP Project是Google提出的一种移动页面加速方案,包含了对各个广告提供商的支持,但在国内一直看不到广告,原因是被墙挡住了。在国内访问带有广告的AMP页面如下截图所示:
截图左边中间是访问不到广告的时候给出一个空白方块和一个找不到内容的符号,截图右边是Chrome浏览器打开F12调试看到的报错,可以看出AMP页面中每个广告位是有一个ampproject.net的二级域名,PING域名发现指向是Google的缓存服务器IP,而这些IP被墙阻挡了,其实这些AMP广告内容没什么违规的,应该是被墙误伤了,但也没人来解决这个事情。🙁
本来AMP页面的流量来源一般都是Google搜索,用得了Google搜索的浏览者自然也可以看到AMP页面中的广告,而国内用不了Google搜索的用户,也不会发现AMP页面,所以应该影响不大。
❓ 问题的发现:
但我们最近发现百度搜索也给我们的AMP页面带来相当流量,我们的邮编库网站的手机版流量最近大为下降,先以为是权重下降或者流量自然下降,不过后来发现在手机版流量下降的同时,我们对应的AMP版本流量却大为上升(因为电脑版、手机版、MIP版都用的百度统计、AMP版本用的Google Analytics,所以没有及时发现这个变化),而且来源就是百度搜索,我们估计是因为我们的AMP版本访问速度快、页面提交多的原因。
这样国内用户访问我们的AMP版本页面时虽然可以正常看到页面内容,但广告就不能显示了,而且在广告位的地方出现一个大的空白和报错,也很影响用户体验,我们还是需要想办法解决。
1️⃣ 办法一:在AMP页面用amp-ad投放百度联盟广告
我很早就知道AMP页面本身提供对很多广告提供商的支持,去看了看amp-ad支持的列表,有Baidu的字样,使用也非常简单,嵌入代码:
<amp-ad width="300" height="250" type="baidu" data-cproid="{cproid}"> </amp-ad>
在百度联盟后台添加新的广告单元,获取对应的cproid,就可以把这样的代码放到AMP页面中,但可惜依然被墙拦住了,国内普通用户还是无法看到广告,我们测试翻墙是可以看到百度广告的,但显然这个办法无法解决国内用户的问题;
2️⃣ 方法二:在AMP页面用amp-iframe投放百度联盟广告
我们转测试做了一个html页面,放置百度联盟的广告代码,再在AMP页面中通过amp-iframe的方式来调用这个html页面,结果是可以正常显示出百度广告的,不过amp project官方的amp-iframe组件说明中有这段:
Usage of amp-iframe for advertising amp-iframe must not be used for the primary purpose of displaying advertising. It is OK to use amp-iframe for the purpose of displaying videos, where part of the videos are advertising. This AMP policy may be enforced by not rendering the respective iframes. Advertising use cases should use amp-ad instead. The reasons for this policy are that: amp-iframe enforces sandboxing and the sandbox is also applied to child iframes. This means landing pages may be broken, even if the ad itself appears to work. amp-iframe does not provide any mechanism to pass configuration to the iframe. amp-iframe has no fully iframe controlled resize mechanism. Viewability information may not be available to amp-iframe.
从上面看官方不推荐用amp-iframe来投放广告,所以我们也没用采用这个办法;
3️⃣ 方法三:在AMP页面直接放置百度联盟的JS代码
我们干脆大胆采取一种不规范的办法:在AMP页面中直接放置百度联盟的JS代码,这显然是不符合AMP规定的,也无法通过AMP验证,可我们觉得不能通过AMP验证也问题不大,大不了百度、Google等搜索引擎不收录和展示我们的AMP页面了,但很大概率上还是会展示我们对应的手机版或者MIP页面。
这种办法是可以解决AMP版本中百度广告(也可以直接用AdSense广告代码)显示的问题的,目前这个办法已经采用了大约三周时间,新增广告位的收入有明显增加,而AMP版本来自百度搜索的流量并没有很明显下降,说明起到了我们预想的作用。
另外,修改AMP页面中的广告代码后并没有看到广告展示量与流量一致,检查发现是百度对AMP缓存造成的,通过百度资源平台里面的AMP页面清除办法来批量清除了AMP页面的缓存,后面看到广告展示量有提升。
上面记录了三个办法,各有利弊,根据各人自己网站的情况取舍吧,最好还是以后取消墙或者墙解除这种对广告的误屏蔽,那是最好了,就是不知道什么时候能实现☹。或者各位还有什么好的办法,欢迎留言交流🤝
评论1
文章不错非常喜欢
文章不错非常喜欢