网站页面添加 Google AdSense 后页面加载慢?
Google AdSense我使用的方法
在下亲妹妹反馈,我网站有时候打开很慢。这个必须重视,看到 Google AdSense 是罪魁祸首后,我稍微优化了下。下面是广告模块的定义内容,View
是 Freemarker 方便 Macro 的引用。
页面上我就很方便得使用。
<@n_ad._300x250/>
<@n_ad._300x250/>
<@n_ad._300x250/>
<@n_ad.auto/>
废话不多说。 Google AdSense 推荐给我们的格式是:
<script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
<ins class="adsbygoogle"
style="display:block"
data-ad-client="ca-pub-5366069415012676"
data-ad-slot="4650889201"
data-ad-format="auto"></ins>
<script>
(adsbygoogle = window.adsbygoogle || []).push({});
</script>
相信开始做 Google AdSense 的朋友有一样的感受,就是是不是一个页面多个广告,每个广告要同样引用一个“adsbygoogle.js”
文件呢?
答案是不用的。
Google AdSense阻碍页面加载的解决办法
用了一个 jQuery 的一个ready
事件。
$('script#_ad').length == 0 ? (function (a,d) {
var s = d.createElement('script');
s.src = a;
s.id = '_ad';
s.setAttribute('async','');
var s0 = d.getElementsByTagName("script")[0];
s0.parentNode.insertBefore(s, s0);
})('//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js',document) : void 0;
效果不好?你甚至可以再用setTimeout
再包裹起来,延迟个几秒再加载。最佳延迟3秒。
//ad
setTimeout(function () {
$('script#_ad').length == 0 ? (function (a) {
var s = so.d.createElement('script');
s.src = a;
s.id = '_ad';
s.setAttribute('async','');
var s0 = so.d.getElementsByTagName("script")[0];
s0.parentNode.insertBefore(s, s0);
})('//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js') : void 0;
},3e3);
OK了,截止发稿前,还没上线,卡了一个大版本。
版权所属:SO JSON在线解析
原文地址:https://www.sojson.com/blog/314.html
转载时必须以链接形式注明原始出处及本声明。
本文主题:
如果本文对你有帮助,那么请你赞助我,让我更有激情的写下去,帮助更多的人。