Adsense广告加载慢如何优化?
- 发表于
- SEO
加入Adsense广告后,站点整体加载都变慢了,数据显示的慢,图片显示的更慢甚至加载失败,如何解决?今天体验盒子教你两个方法彻底解决Adsense广告加载慢的问题。
优化Adsense广告代码减少请求
先看一个Adsense生成的默认代码
1 2 3 4 5 6 7 8 9 10 |
<script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script> <ins class="adsbygoogle" style="display:block" data-ad-client="ca-pub-id" data-ad-slot="id" data-ad-format="auto" data-full-width-responsive="true"></ins> <script> (adsbygoogle = window.adsbygoogle || []).push({}); </script> |
我们来分解一下,首先通过async
异步请求加载adsbygoogle.js
核心文件,待加载完成后再push到ins
内,显示广告内容。
如何优化这段代码?通过我们的做法是直接复制生成的这段代码,放在相应位置就结束了。但如果我们一个页面有多个广告位,那就会出现多次引用请求adsbygoogle.js
文件,这样就会造成网络延迟。那么如果一个页面多个广告是否需要多次引用呢?
Q:如果我的网页上有多个广告单元,我是否要为每个广告单元添加
<script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
?A:不,不需要,
上面是Google官方给出的QA,不需要多次引用加载adsbygoogle.js
可以一次性加载。
好的,那么优化方法确定了,在head内一次加载adsbygoogle.js就行(体验盒子使用的是head一次加载),不需要多次加载。也可以用JS监听加载
1 2 3 4 5 6 7 8 |
window.onload = function() { setTimeout(function() { let script = document.createElement("script"); script.setAttribute("async", ""); script.src = "//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"; document.body.appendChild(script); }, 2e3); } |
懒加载优化Adsense广告代码
懒加载一般我们是应用在图片场景,意思是只有在某些特定内容出现在可视区域中时,才开始加载的一种技术,如下所示:
如何用在Adsense广告代码上呢?一个WG友人针对此问题写了一个小插件,分为JS版和JQuery版本,在这里。下载对应的版本,进行初始化JS:
1 2 3 4 5 |
// 原生JS var instance = new adsenseLoader( '.adsense' ); // jQuery $( '.adsense' ).adsenseLoader(); |
html,需要修改,提取出你的ins代码相应部分
1 2 3 4 |
<div class="adsense"> <ins data-ad-client="ca-pub-id" data-ad-slot="id"></ins> <p class="adsense__loading"><span>Loading……</span></p> </div> |
css,这里建议你根据自己的布局进行调整
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
.adsense{ display: block; } .adsense:before { display: none !important; } .adsense ins { width: 100%; height: 100%; display: block; } @media screen and ( max-width: 1024px ) { .adsense { width: 728px; height: 90px; } .adsense:before { content: '1024'; } } @media screen and ( max-width: 800px ) { .adsense { width: 468px; height: 60px; } .adsense:before { content: '800'; } } |
完成后的效果是这样的
原文连接:Adsense广告加载慢如何优化?
所有媒体,可在保留署名、
原文连接
的情况下转载,若非则不得使用我方内容。