检测 google 响应式空 adsense

use*_*208 7 adsense

我正在使用 google adsense 响应式广告。有时adsense找不到蚂蚁广告而留下空白。有没有办法使用 javascript 来确定 adsense 块是否为空?然后我将隐藏整个 adsense 容器。

这是我一直在使用 adsense 的代码:

<script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
                        <!-- Sidebar skyscrapper -->
                        <ins class="adsbygoogle"
                            style="display: block; width: 300px; height: 600px"
                            data-ad-client="ca-pub-xxxxxx"
                            data-ad-slot="xxxxxx"
                            data-ad-format="auto"></ins>
                        <script>
                            (adsbygoogle = window.adsbygoogle || []).push({});
                        </script>
Run Code Online (Sandbox Code Playgroud)

 <script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
                    <!-- Sidebar skyscrapper -->
                    <ins class="adsbygoogle"
                        style="display: block; width: 300px; height: 600px"
                        data-ad-client="ca-pub-xxxxxx"
                        data-ad-slot="xxxxxx"
                        data-ad-format="auto"></ins>
                    <script>
                        (adsbygoogle = window.adsbygoogle || []).push({});
                    </script>
Run Code Online (Sandbox Code Playgroud)

mul*_*sen 2

Google 实际上有关于如何处理此问题的信息 - https://support.google.com/adsense/answer/10762946insadvert 元素中有一个属性data-ad-status叫它告诉您广告是“已填充”还是“未填充”。他们建议使用 css 来隐藏未填充的广告:

<style>
ins.adsbygoogle[data-ad-status="unfilled"] {
   display: none !important;
}
</style>
Run Code Online (Sandbox Code Playgroud)

如果他们的广告无法找到适合您网页的任何内容,您也可以将其替换为您自己的图片,并封装在链接中,如下所示:

<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>
<style>
ins.adsbygoogle a {
    display: none !important;
}
ins.adsbygoogle[data-ad-status="unfilled"] a {
    display: block;
}
</style>
Run Code Online (Sandbox Code Playgroud)

  • 这绝对会破坏你的 CLS,这是一个重要的排名因素。会发生的情况是,您将获得由谷歌生成的宽度和高度的内联样式,因此您的布局将第一次发生变化,然后您将再次消失,然后您的布局将再次发生变化。试过这个,太可怕了 谷歌生成的属性的未填充值是该元素的最后一个属性之一。内联样式属性排在第一位。灾难 CLS 方面。 (5认同)