子问题是相互关联的,所以为了清楚起见,我将它们按顺序排列。
问题 - 1:使用 JavaScript 根据设备的浏览器/视口宽度加载不同的 AdSense 广告尺寸/格式是否是个好主意?
我不是在问 Google AdSense 的 TOS 或其他政策是否可以。我已经照顾好他们了。
我想知道的是,使用 JavaScript 这样做有什么缺点吗?我的意思是,它会影响 Adsense 提供的广告质量吗?或者没关系?
问题 - 2:有更好的方法吗?
(2a)我找到了两个不同的代码片段来实现我所需要的。我不知道哪个更可靠或更好。
这:
<script type="text/javascript"><!-- google_ad_client = "ca-pub-3658299045266116"; /* top */ if ($(window).width()<728 ){ google_ad_slot = "4414183254"; google_ad_width = 320; google_ad_height = 50; }else{ google_ad_slot = "1020377061"; google_ad_width = 728; google_ad_height = 90; } //--> </script> <script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>
有人说,“你不能依赖窗口宽度,因为它是不稳定的。例如,在某些安卓上你根本不能依赖它,因为浏览器需要长达 500 毫秒才能获得它的宽度。” 这是真的吗,应该引起关注吗?
(2b)或者这个:
<script type="text/javascript"> google_ad_client = "ca-publisher-id"; if (window.innerWidth >= 800) { google_ad_slot = "ad-unit-1"; google_ad_width = 728; google_ad_height = 60; } else if (window.innerWidth < 400) { google_ad_slot = "ad-unit-2"; google_ad_width = 300; google_ad_height = 250; } else { google_ad_slot = "ad-unit-3"; google_ad_width = 468; google_ad_height = 60; } </script> <script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>
再一次,其他人说,_“您的解决方案很棒,但可以在旧版本的 IE 中中断。最好是使用 jQuery 来查询浏览器宽度:
width = $(window).width();
”但由于代码片段 2 中提到的原因,我不能使用它(一)。
那么,什么是做我需要的好方法?document.documentElement.clientWidth
? 但是当页面在桌面或移动设备上缩放时,它的行为是什么?