Adsense 响应式并不总是显示

Posted

技术标签:

【中文标题】Adsense 响应式并不总是显示【英文标题】:Adsense Responsive not always displayed 【发布时间】:2016-04-21 20:05:33 【问题描述】:

是的,另一个与 Google Adsense 及其自适应广告有关的问题。总共向网站添加了三个广告,两个“水平”和一个“自动”。

为它们创建 CSS 类,因为 Adsense 无法确定它们的宽度。

.adSidebar 
    margin: auto;
    max-height: 600px;
    width: 302px;

.adContent 
    margin: auto;
    width: 300px;

    @media #$small-break 
        width: 320px;
    
    @media #$large-break 
        width: 730px;
    

使用这些类包含广告。

<div class="adContainer">
    <script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
    <ins class="adsbygoogle adContent" style="display:block" data-ad-client="ca-pub-123456789" data-ad-slot="987654321" data-ad-format="horizontal"></ins>
    <script>(adsbygoogle = window.adsbygoogle || []).push();</script>
</div>

大约 50% 的时间所有三个广告都正确显示。然而,在其他情况下,一两个都不见了,有时甚至三个都不见了。错误信息:

TagError: adsbygoogle.push() error: No slot size for availableWidth=0

但是当我查看未使用 Firebug 显示的 ins 元素时,它按计划显示了一个固定宽度。

有人知道在哪里寻找问题吗?如果你想自己看看,网站是 www.kfc-uerdingen.de

P.S.:我很想联系 Adsense 帮助,但由于该帐户是新帐户,因此尚未显示恒定收入,他们不会让您通过电子邮件发送给他们。他们的支持论坛更糟糕。

【问题讨论】:

您是在 AdSense 之前加载 CSS 吗? 【参考方案1】:

我觉得这三个步骤可以帮你解决问题;

首先,它在您的 css 中使用 AdSense for Mobile 的最小宽度度量:

.adSidebar 
    margin: auto;
    max-height: 600px;
    width: 320px;
    /*width: 302px;*/

.adContent 
    margin: auto;
    width: 320px;
    /*width: 300px;*/

    @media #$small-break 
        width: 320px;
    
    @media #$large-break 
        width: 730px;
    

其次,在“head”块上加载一次初始化脚本,而不是在每个“ins”块中:

<head>
    <script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
</head>

三、页面加载结束时使用Jquery加载blocks:

<script>
$(document).ready(function()
   $('ins').each(function()
    (adsbygoogle = window.adsbygoogle || []).push();
   );
);
</script>

希望对您的问题有所帮助。

【讨论】:

以上是关于Adsense 响应式并不总是显示的主要内容,如果未能解决你的问题,请参考以下文章

如何使 Adsense 广告与响应式网站一起使用

Google 地图 AdSense 库 - 自适应广告

vue使用this.$nextTick()函数

Google adsense 响应服务器响应状态为 400 ()

Bootstrap 响应式图像缩放

vue的计算属性 是怎么关联某个数据