谷歌联盟广告显示空白的解决方案

更新日期: 2021-12-31阅读: 2.9k标签: 联盟

目前有许多网站都在使用Google Adsense(谷歌联盟广告)。但有时候,我们发现Google Adsense不能显示,只能显示空白。这是为什么呢?就此给大家分析下原因和解决方案。 


一、所有页面都显示空白

1、因为没有输入PIN码,致使谷歌暂停显示广告。

在佣金第一次达到谷歌的最低起付标准是,谷歌会 邮寄一封信件,内含个人PIN识别码,如果您在4个月之内没有正常输入PIN进行确认,那么就处于付款暂停状态,此时谷歌将停止广告显示,直到使用PIN码激活地址后的24小时之内,会自动开始正常显示。请注意,如果是因为这个原因,应当时全站的谷歌联盟广告全部不显示。

2、刚放置的新Adsense广告需要大概5到10分钟才能展示:

当你在网站或者博客上放上新的Google Adsense广告代码时,你会发现广告位出现空白。这是因为Google需要一段时间来分析你的网页内容,以便匹配合适的广告。这一点要比阿里妈妈做得好,因为阿里妈***广告基本上是风马牛不相及。当Google判断完你的网页内容后,Adsense广告就可以展示了,当然你需要刷新下自己的网页。

3、Google的系统故障:

有时候Adsense广告不能显示的原因是因为Google本身的系统故障。大家知道Google是世界上最伟大的互联网公司(指南针我是Google的忠实粉丝),它拥有充足的资金和最聪明的互联网人才,还有最先进的技术和服务器。但就是这样,也不能保证Google Adsense不会出现问题。因为Google的服务器都是放在国外(基本上是在美国和西欧),所以有时候会出现宕机现象。比较常见的是Gmail不能登录或者连接不上现象。对于Google自身故障的解决办法只能等Google自己来解决问题了。

4、自己网站或博客的原因:

有时候因为我们的网站或博客不支持JS代码,或者屏蔽了Google Adsense广告。这样就会出现空白不能显示的情况。对于这类问题,我们就需要对自己的网站或博客进行修改以便支持Google Adsense广告需要。此外,很多BSP提供的博客是不支持Google Adsense广告的,比如新浪博客、搜狐博客、百度空间、QQ空间等。那我们就不能在这些博客上放上自己的Adsense广告。

5、网站或者博客内容侵权或者敏感:

很多网站或博客的内容基本都是从网上抄袭复制过来的,或者网页内容设计政治、成人、性、色情、暴力等内容。这样,Google会在得到举报的情况下,对你的网站或博客域名进行封杀。这样你的Adsense广告就不能够显示了。我们的解决办法有:删除非法或敏感内容,向版权持有人和Google写信申诉,争取得到他们的宽大处理;实在不行,只能更改自己网站的域名(当然这样我们辛苦培育的流量就付之东流了,不过也比彻底抛弃要好一些)。

6、因为违法Google Adsense的政策帐号被封杀:

很多站长或 Blogger贪图一时的利益,大肆作弊,如欺诈性点击(包括无效点击或者鼓励点击)等行为,根本不把Google放在眼里。这种行为如果被Google 发现的话,帐号就会被K,当然你之前辛苦赚来的美元也会被Google没收。所以,指南针博客在此提醒各位站长和Blogger要以诚信为本,做好网站的 内容,相信<!>访客和Google会回报你的。

7、禁止国外IP访问

网站如果开启了禁止所有外国IP访问本站,那么谷歌广告的蜘蛛不能正常的抓取本网站,然后返回本站不能正常的访问,读取不到广告的内容,然后就导致广告一直是空白的了。


二、部分页面都显示空白

AdSense 广告单元会在发出广告请求后进行更新,以指明广告单元是已填充广告素材,还是处于广告空缺状态。您可以通过查看 AdSense 报告中的平均覆盖率,了解广告空缺的广告单元所占的百分比。 

当广告单元完成对广告的请求后,AdSense 会向 <ins> 元素添加一个名为 data-ad-status 的参数。注意:请勿将 data-ad-status 与 data-adsbygoogle-status 相混淆,后者由我们的广告代码用于广告处理目的。 根据系统是否返回广告,此参数将更新为以下项之一:

data-ad-status="filled" 系统向广告单元返回了一个广告,该广告正在展示。 
data-ad-status="unfilled" 系统未返回任何广告,广告单元为空。

当 AdSense 广告单元处于“广告空缺”状态时,我们会尝试隐藏该广告单元,或展示空白区域。我们仅会在广告单元不会导致网页自动重排的情况下隐藏它们,也就是说,我们仅会隐藏位于视口之外的广告单元。对于所有其他广告空缺的广告单元,我们会保留广告单元大小,并展示空白区域。

示例 1:使用 css 隐藏广告空缺的广告单元

您可以将以下 CSS 样式添加到网页中,以自动隐藏广告空缺的广告单元:

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

示例 2:仅在广告单元出现广告空缺时展示图片

如果广告单元未展示广告,您可以改为选择展示自家广告:

HTML
<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-1234567890"
data-ad-slot="1234567890">
<a href="/page"><img src="/backup.jpg" width="300px" height="250px"></a>
</ins>
<script>
(adsbygoogle = window.adsbygoogle || []).push({});
</script>
CSS
ins.adsbygoogle a {
display: none !important;
}
ins.adsbygoogle[data-ad-status="unfilled"] a {
display: block;
}

或者,如果您更愿意使用 JavaScript 来更新网页,那么可以使用 MutationObserver 检测 data-ad-status 参数发生的更改,并根据这些更改执行 JavaScript 代码。

限制 

data-ad-status 参数仅会添加到顶级窗口上的广告单元中。这意味着,对于通过跨网域窗口投放的广告单元,data-ad-status 参数不会添加到其中。 

此外,我们不建议您通过以下方式加载 AdSense 广告单元:最初处于隐藏状态,旨在在 data-ad-status 参数发生更改后显示出来。如果广告单元最初并未在网页上显示,那么我们可能不会针对其执行广告请求。(更多请参考:https://support.google.com/adsense/answer/10762946)


链接: https://www.fly63.com/article/detial/10995

内容以共享、参考、研究为目的,不存在任何商业目的。其版权属原作者所有,如有侵权或违规,请与小编联系!情况属实本人将予以删除!