我使用了几年以下的完美工作,直到我注意到一个小小的错误"在手机和平板电脑上:
<script type="text/javascript">
google_ad_client = "ca-pub-XXXX";
if (window.innerWidth >= 888) {
google_ad_slot = "23813373";
google_ad_width = 728;
google_ad_height = 90;
}</script>
<script type="text/javascript" src="//pagead2.googlesyndication.com/pagead/show_ads.js"></script>
如果您发现,我不想在设备宽度小于888像素时显示此广告。我在桌面上工作得很好,但在移动设备和平板电脑上,Adsense显示的是300x150广告。
我是否会遗漏某些内容或谷歌使用其代码来优化移动设备上的显示?你注意到同样的问题吗,bug?如何才能显示此300x150广告?
答案 0 :(得分:0)
问题在于,无论条件如何评估,代码都会发出广告请求。
解决方案为create one responsive AdSense unit,并将其代码转换为&#34; advanced&#34;模式:
<style type="text/css">
.adslot_1 { display: inline-block; width: 728px; height: 90px; }
@media (max-width: 887px) { .adslot_1 { display: none; } }
</style>
<ins class="adsbygoogle adslot_1"
data-ad-client="ca-pub-1234"
data-ad-slot="5678"></ins>
<script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
<script>(adsbygoogle = window.adsbygoogle || []).push({});</script>
我认为此代码段随时可用,您只需应用发布商ID和响应式单元的单元ID,我认为它应该如您所述:&#34 ; 我不想显示此广告的设备宽度小于888px &#34;。
(编辑,澄清:display:none
响应式广告代码中的ins
标记将阻止应用display:none
时的广告请求,它是AdSense中唯一的officially supported way of "hiding" an ad unit。制作广告请求然后隐藏该广告是violation of the policies。)