早上与彧繎博主聊天,了解到他博客中有一篇关于优化谷歌联盟js的文章。由于国内网络环境的原因,网页加载谷歌JS时可能会显得缓慢,这影响了用户体验。博主还分享了自己网站在谷歌JS加载速度方面的具体数据,发现最慢的加载时间达到了6.19秒。此外,还有一些图片资源加载较慢,可以暂时忽略。尽管网站打开速度尚可,但拖拉的加载速度确实令人不满,因此需要进行整顿。 针对谷歌广告的问题,虽然网站有百度联盟的广告,但速度并不快,而且广告内容过于局限,收益不高。相比之下,谷歌广告提供了更广泛的选择和更高的收益。如图所示,这是网站加载速度的对比,明显可以看出谷歌的速度更快。 为了解决这个问题,首先需要获取谷歌Google Adsense获取到的单元广告代码(非自动广告),复制如下:
<script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-15527649518&crossorigin=anonymous"></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>
这段代码实际上可以分为两段,第一段是JavaScript代码,第二段是<ins>标签代码。从谷歌的角度来看,其优化JS的方式有两种:一种是设置setTimeout()函数,通过这种方式可以在指定的毫秒数后调用函数;另一种是直接将广告代码嵌入到网页中。
通过调整JavaScript代码,我们可以优化页面加载速度。例如,使用setTimeout()函数来延迟加载广告,或者将广告代码直接嵌入到网页中。这样不仅可以提高广告的加载速度,还可以提高广告的展示效果。
这段代码的主要功能是实现广告的延迟加载。当页面加载完成后,会异步加载一个名为”adsbygoogle.js”的脚本文件。这个脚本文件是谷歌的Ads by Google服务的一部分,用于在用户浏览网页时展示广告。
首先,我们来看一下原始代码:
window.onload = function() {
setTimeout(function() {
let script = document.createElement("script");
script.setAttribute("data-ad-client", "ca-pub-你的id");
script.setAttribute("async", "");
script.src = "//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?";
document.body.appendChild(script);
}, 2000);
};
这段代码使用了setTimeout函数来实现延迟加载。setTimeout函数接收一个函数作为参数,该函数会在指定的延迟时间后执行。在这个例子中,延迟时间为2000毫秒(即2秒)。
然后,我们来看一下另一种实现方式,这是通过window.addEventListener来实现的。这种方式可以直接复制使用,放在网站的head标签中。修改后的代码如下:
window.addEventListener("load", function() {
window.addEventListener("scroll", function() {
let script = document.createElement("script");
script.setAttribute("data-ad-client", "ca-pub-你的id");
script.setAttribute("async", "");
script.src = "//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?";
document.body.appendChild(script);
});
});
这段代码同样使用了setTimeout函数来实现延迟加载。不同的是,这次我们使用了window.addEventListener来监听load和scroll事件。当页面加载完成或滚动到底部时,都会触发这两个事件。然后,我们创建了一个名为”adsbygoogle.js”的脚本文件,并将其添加到文档的body中。
为了符合Google官方的要求,建议将脚本放在页面的head部分,这样无论在哪个页面都能统一调用。同时,将<ins>和<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>
优化后的页面加载速度确实有所提升,而且我还发现了一个令人惊喜的变化:经过优化后,页面中JavaScript错误的数量从原来的10个减少到了3个。这真是一个意外的收获。其实网络上关于这方面的教程还是很多的,大同小异,基本都是通过异步加载实现的。如果你在使用过程中遇到问题,欢迎留言反馈,我们一起探讨解决方案。