Adsense响应并不总是显示

时间:2016-01-16 07:02:57

标签: css responsive-design adsense

是的,另一个与谷歌Adsense及其响应式广告有问题的人。一个网站共添加了三个广告,两个横向广告。还有一个' auto'。

为他们创建了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帮助,但由于该帐户是新的,因此尚未显示固定收入,因此他们不会让您通过电子邮件发送给他们。他们的支持论坛更糟糕。

1 个答案:

答案 0 :(得分: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加载块:

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

我希望这可以帮到你解决问题。