是的,另一个与谷歌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帮助,但由于该帐户是新的,因此尚未显示固定收入,因此他们不会让您通过电子邮件发送给他们。他们的支持论坛更糟糕。
答案 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>
我希望这可以帮到你解决问题。