我在labnol.org上运行了一个在响应式网站上运行的代码(http://goo.gl/asEovC):
<div id="google-ads-1"></div>
<script type="text/javascript">
ad = document.getElementById('google-ads-1');
if (ad.getBoundingClientRect().width) {
adWidth = ad.getBoundingClientRect().width; // for modern browsers
} else {
adWidth = ad.offsetWidth; // for old IE
}
/* Replace ca-pub-XXX with your AdSense Publisher ID */
google_ad_client = "ca-pub-XXXXXXXXXXXXXXXX";
/* Replace XXXXXXXXXN with the AdSense Ad Slot ID */
if ( adWidth >= 728 )
google_ad_size = ["728", "90"], /* Leaderboard 728x90 */
google_ad_slot = "XXXXXXXXX0";
else if ( adWidth >= 468 )
google_ad_size = ["468", "60"], /* Banner (468 x 60) */
google_ad_slot = "XXXXXXXXX1";
else if ( adWidth >= 336 )
google_ad_size = ["336", "280"], /* Large Rectangle (336 x 280) */
google_ad_slot = "XXXXXXXXX2";
else if ( adWidth >= 300 )
google_ad_size = ["300", "250"], /* Medium Rectangle (300 x 250) */
google_ad_slot = "XXXXXXXXX3";
else if ( adWidth >= 250 )
google_ad_size = ["250", "250"], /* Square (250 x 250) */
google_ad_slot = "XXXXXXXXX4";
else if ( adWidth >= 200 )
google_ad_size = ["200", "200"], /* Small Square (200 x 200) */
google_ad_slot = "XXXXXXXXX5";
else if ( adWidth >= 180 )
google_ad_size = ["180", "150"], /* Small Rectangle (180 x 150) */
google_ad_slot = "XXXXXXXXX6";
else
google_ad_size = ["125", "125"], /* Button (125 x 125) */
google_ad_slot = "XXXXXXXXX7";
google_ad_width = google_ad_size[0];
google_ad_height=google_ad_size[1];
</script>
<script src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
上面的代码无法解决调整大小问题,如果调整浏览器大小,广告将保持相同的大小,布局将会中断。这与平板电脑和智能手机上的设备方向更改相关。如果/当尺寸(尺寸组)发生变化时,我正试图找到重新加载广告的解决方案。
答案 0 :(得分:2)
Google有新的响应代码,显然可以在屏幕方向更改后处理布局更改:
https://support.google.com/adsense/answer/3213689?hl=en
屏幕方向更改后支持广告尺寸更改。如果您的响应式页面在设备方向更改后更改其布局(例如,当平板电脑或手机从纵向移动到横向时),我们将请求并加载具有正确尺寸的新广告以适应新的页面布局。
注意: 在设备方向更改后加载新广告时,我们会缓存显示的原始广告。如果设备随后返回其之前的方向,我们将再次显示原始广告,而不是加载其他新广告。 由于屏幕方向更改的广告刷新行为会产生额外的广告请求,因此您可能会发现RPM和点击量指标略有下降。请放心,但对您的整体收入没有影响。