9月底、10月初我根据同事的说法查找到Google官方文档中的说明,验证了一个页面中包含多个AdSense广告时,只需要包含一次JavaScript调用,然后对网站进行了全面的修改。
正好前几天有人在微信群里问到同样的问题,记录转发到这里:
————— 2018-10-27 —————
gg 15:37:一个页面中有两个GG广告是不是只放一个JS链接就行了
gg 16:14:老大些,一个页面中有两个GG广告是不是只放一个JS链接就行了
Shakeko 17:53:@gg 可以 https://support.google.com/adsense/answer/3221666?vid=0-3026580866-1530653320208&hl=zh-Hans
月月鸟 23:12:同一个页面上多个Adsense广告,只需加载一次adsbygoogle.js。
————— 2018-10-28 —————
James Qi 08:02:@月月鸟 @gg 同一个页面上多个Adsense广告,只需加载一次adsbygoogle.js。这个是对的,AdSense帮助中心有此说明,官方文档不会错
James Qi 08:04:https://support.google.com/adsense/answer/3221666?hl=zh-Hans
James Qi 08:05:
James Qi 08:06:以上是官方帮助中心的链接和截图☝
James Qi 08:09:我其实以前也一直在页面中投放多个广告单元,放置了多段adsbygoogle.js,直到我们一位同事说只需要放置一次,他说这是调用js的常识,我此前也不知道
James Qi 08:12:因为我们网站上都投放了自动广告,在head里面就放置了一次这段js调用,我后来就把body里面的广告位中所有调用同样js的代码全部删除了
James Qi 08:13:@天空海阔 我每改一个页面模板都是实测过,确保广告显示没有问题✌
James Qi 08:16:我们同事用chrome浏览器打开调试控制台,说去掉重复js调用后可以减少几次,每次原来都至少需要几十ms
James Qi 08:18:页面打开速度非常重要,特别对于流量还不错的网站,确实需要不断优化,争分夺秒✊
其实在百度联盟后台获取异步代码的时候就看到js只需要一次的说明:
<script type="text/javascript">
(function() {
var s = "_" + Math.random().toString(36).slice(2);
document.write('<div style="" id="' + s + '"></div>');
(window.slotbydup = window.slotbydup || []).push({
id: "u355xxxx",
container: s
});
})();
</script>
<!-- 多条广告如下脚本只需引入一次 -->
<script type="text/javascript" src="//cpro.baidustatic.com/cpro/ui/c.js" async="async" defer="defer" ></script>
现在我就只在head中保留了一次adsbygoogle.js:
<!-- adsense page level ads start -->
<script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
<script>
(adsbygoogle = window.adsbygoogle || []).push({
google_ad_client: "ca-pub-909487182760xxxx",
enable_page_level_ads: true
});
</script>
<!-- adsense page level ads end -->
</head>
body里面都去掉了这句,留下AdSense广告代码如下:
<script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
<!-- AdSense 2016 Link Responsive 1 -->
<ins class="adsbygoogle adsense_link_responsive_1"
style="display:block"
data-ad-client="ca-pub-909487182760xxxx"
data-ad-slot="417714xxxx"
data-ad-format="link"></ins>
<script>
(adsbygoogle = window.adsbygoogle || []).push({});
</script>
写这篇文章时又询问了一位同事,他说如果页面中重复多次这种JavaScript调用的话,也不会导致多次下载、不会影响带宽,主要是会让客户端浏览器稍微耗费一点资源,影响很微小。
无论如何,如果像我这样知道这个问题后,有去掉无用重复代码的洁癖的话,还是去改动一下吧😃
评论4
很是清爽的博客,而且用的drupal,的确与众不同
很是清爽的博客,而且用的drupal,的确与众不同。mark谢谢,国内用Drupal做博客的不太多,以后多交流🤝
谢谢,国内用Drupal做博客的不太多,以后多交流🤝
好像我也犯了这个错误,添加一个广告单元就添加一次JS
好像我也犯了这个错误,添加一个广告单元就添加一次JS,等会我就去删除多余的,谢谢告知。这是个常见的小问题,我的网站广告代码多年都存在这个问题
这是个常见的小问题,我的网站广告代码多年都存在这个问题,近期才更改,以前的影响也不算大。