我正在尝试在较小的屏幕尺寸上隐藏adsense广告单元,以实现响应式设计。
我知道https://support.google.com/adsense/answer/3543893?hl=en&ref_topic=1307438 表示您可以使用css媒体查询来隐藏单元,如下所示:
@media (max-width: 400px) { .adslot_1 { display: none; } }
我已经尝试过,但对于我没有展示广告的屏幕尺寸,请继续收到以下错误:
"Cannot find a responsive size for a container of width=0px and data-ad-format=auto"
我发现以下JavaScript解决方案更简单,并且更愿意使用它而不是媒体查询。我只是添加一个测试,除非屏幕尺寸足够大,否则不要调用adsense代码。它解决了我遇到的错误,我想它也会向adsense服务器保存一个请求(完全披露:我根本不理解adsense代码)。
if ( $( window ).width() >= 600 ) {
(adsbygoogle = window.adsbygoogle || []).push({});
}
上述实施是否会违反任何计划政策/指南?在某些屏幕尺寸上不显示广告单元是否合理且合适?
答案 0 :(得分:0)
http://detectmobilebrowsers.com/
检查这个网站,在那里你可以找到准备好使用脚本来检测用户是在移动设备还是桌面上,这样你可以判断他是否在移动设备上并隐藏了Adsense块,甚至更好,你可以打电话来自Google Adsense的“响应式广告ID”,Adsense本身也推荐用于移动设备。
如果您仍然需要一种更简单的方法来检测用户是否在移动设备上,请尝试此操作。
HTML
<div class="my_responsive_add">
your ad
</div>
和css。
.my_responsive_add {
display:inline;
}
@media (max-width:@maxResponsiveWideWidth){
.my_responsive_add {
display:none;
}
}
我建议您不要隐藏广告,并使用自适应广告,因为它对移动用户来说会很好看,这样您就可以从移动用户那里获得点击。
为了回答你的问题,我相信通过隐藏AD,就我所知,它不会违反任何计划政策,因为特定的AD根本不会获得任何点击,它将保持“安静”状态不会引起注意。
希望这有点帮助,祝你好运。
答案 1 :(得分:0)
在这里Modification of the AdSense ad code查看adsense计划政策,特别是“可接受的修改”#39}。
答案 2 :(得分:0)
如果有人仍然遇到与 display:none
相同的问题。我通过从元素中删除 data-ad-format 参数来修复它。并保持其他所有内容与 Google here 在“隐藏广告单元”部分记录的相同,这意味着使用 CSS 媒体查询控制格式。
这是有道理的,因为当您指定 data-ad-format 值然后通过 CSS 对其进行控制时,您无法将格式设置为自动。