AdSense 广告因广告空缺造成空白展示的自动隐藏插图

谷歌广告出现空白广告确实不美观,这主要是因为AdSense广告单元处于“广告空缺”状态,导致网页上出现了空白区域。幸运的是,谷歌AdSense代码具有强大的自定义功能,可以让我们很好地控制是否显示这个空白区域。今天我将与大家分享具体的方法。

AdSense 广告因广告空缺造成空白展示的自动隐藏

请注意:由于AdSense在国内没有服务器,因此出现此问题通常是网络故障而不是广告空缺。您可以考虑将*.gstatic.com、*.google.com等域名后缀添加到代理中以解决此问题。

隐藏广告空缺的广告单元

我们可以使用CSS或JavaScript来控制广告空缺的广告单元是否隐藏。例如,如果您想隐藏所有广告空缺的广告单元,可以在元素上应用以下CSS样式:display: none !important;

例如:

我们的谷歌广告代码如下:

<script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
<ins class="adsbygoogle"
style="display:block"
data-ad-client="ca-pub-1234567890123456"
data-ad-slot="1234567890"
data-ad-format="auto"
data-full-width-responsive="true"></ins>
<script>
(adsbygoogle = window.adsbygoogle || []).push({});
</script>

我们可以为广告代码中的classadsbygoogle的元素添加以下样式:

htmlCopy Code<style>
ins.adsbygoogle[data-ad-status="unfilled"] {
display: none !important;
}
</style>

其中的display: none !important;意思是让CSS类adsbygoogle判断data-ad-status的值,如果出现广告空缺,则隐藏广告单元的空白区域展示。这样就不会出现空白区域了!

一般情况下

通常我们在博客站点上投放的AdSense广告都使用adsbygoogle这个CSS类,因此我们只需要将上述CSS样式放在主题的自定义代码中即可。一般来说,将其放在顶部效果最佳(大多数WordPress、Typecho主题都支持这种自定义CSS代码的放置)。这是最方便的方法,也是我推荐的方法。

AdSense 广告因广告空缺造成空白展示的自动隐藏插图1

当然,还有更高级的方法。如果你想了解,请继续阅读以下内容:

在广告单元出现广告空缺时展示指定的图片

有时候,当AdSense广告无法显示时,我们不希望只是隐藏它。毕竟,每一个流量都值得我们珍惜。这时,我们可以展示一些自己指定的图片。唯一麻烦的是,我们需要修改AdSense广告代码,如下所示:

<script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
<ins class="adsbygoogle"
style="display:inline-block;width:300px;height:250px"
data-ad-client="ca-pub-1234567890123456"
data-ad-slot="1234567890">
<a href="/page"><img src="/backup.jpg" width="300px" height="250px"></a>
</ins>
<script>
(adsbygoogle = window.adsbygoogle || []).push({});
</script>

相对于默认的AdSense广告代码,上述代码多了一段用于指定广告空缺后自动展示的图片的代码<a href="/page"><img src="/backup.jpg" width="300px" height="250px"></a>。根据自己的需求,指定图片地址和其他参数。

<style>
ins.adsbygoogle a {
display: none !important;
}
ins.adsbygoogle[data-ad-status="unfilled"] a {
display: block;
}
</style>

最后,别忘了添加自定义CSS的<style>来生效!

总结

正如本文开头所提示的,这种方法仅适用于AdSense出现广告空缺的情况。如果AdSense广告由于网络问题无法显示,则无法使用此方法。在国内浏览器和网络环境下,这一点表现得尤为突出。因此,目前谷歌AdSense在国内站点上的投放并不适合。否则,广告展示率极低,收入也会很低。不过,据一些站长反馈,仍然有部分地区可以正常展示AdSense广告,但这只是一部分地区,并不具有普遍代表性。