响应式adSense广告 - 动态重新加载

时间:2013-12-29 03:50:13

标签: javascript mobile dynamic responsive-design adsense

我在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>

上面的代码无法解决调整大小问题,如果调整浏览器大小,广告将保持相同的大小,布局将会中断。这与平板电脑和智能手机上的设备方向更改相关。如果/当尺寸(尺寸组)发生变化时,我正试图找到重新加载广告的解决方案。

1 个答案:

答案 0 :(得分:2)

Google有新的响应代码,显然可以在屏幕方向更改后处理布局更改:

https://support.google.com/adsense/answer/3213689?hl=en

  

屏幕方向更改后支持广告尺寸更改。如果您的响应式页面在设备方向更改后更改其布局(例如,当平板电脑或手机从纵向移动到横向时),我们将请求并加载具有正确尺寸的新广告以适应新的页面布局。

     

注意:   在设备方向更改后加载新广告时,我们会缓存显示的原始广告。如果设备随后返回其之前的方向,我们将再次显示原始广告,而不是加载其他新广告。   由于屏幕方向更改的广告刷新行为会产生额外的广告请求,因此您可能会发现RPM和点击量指标略有下降。请放心,但对您的整体收入没有影响。