使用 data-ad-status 参数隐藏广告空缺的广告单元

1,769次阅读

共计 1880 个字符,预计需要花费 5 分钟才能阅读完成。

提醒:本文最后更新于 2023-03-21 00:56,文中所关联的信息可能已发生改变,请知悉!

使用 data-ad-status 参数隐藏广告空缺的广告单元

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

当广告单元完成对广告的请求后,AdSense 会向  <ins>  元素添加一个名为  data-ad-status  的参数。注意:请勿将  data-ad-status  与  data-adsbygoogle-status  相混淆,后者由我们的广告代码用于广告处理目的。

根据系统是否返回广告,此参数将更新为以下项之一:

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

AdSense 如何处理广告空缺的广告单元

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

如何隐藏广告空缺的广告单元

(高级)您可以决定使用 CSS 还是 JavaScript 来改进此行为。例如,如果您想要隐藏所有广告空缺的广告单元,可以使用 CSS 向元素应用  display: none !important;  样式。

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

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

HTML

<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  参数发生更改后显示出来。如果广告单元最初并未在网页上显示,那么我们可能不会针对其执行广告请求。

正文完
 
lostfawn
版权声明:本站原创文章,由 lostfawn 2022-02-14发表,共计1880字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。