9

我查看了当前的解决方案,这两个帖子已经部分涵盖了这个问题; 使 Adsense 响应在 javascript 中“如果手机”

我有一个响应式网站,唯一在手机上破坏它的是我页面上的横向谷歌广告,这使得它一开始就突出了额外的空间,因为它比其他所有东西都大。

我正在寻找是否有人有一个可行的解决方案,所以我基本上可以在这个大横幅和更小的移动浏览器格式之间切换,屏幕尺寸更小并且不会破坏我的响应式网站。

我目前的解决方案是缩小屏幕尺寸并在低于某个阈值时显示较小的广告。有没有更好的办法?

4

7 回答 7

11

您可以将此代码用于 AdSense,这并不违反 TOS,因为它不会“即时”更改广告,您只是根据屏幕尺寸投放广告,而不是更改广告本身。

<script type="text/javascript">


    var width = window.innerWidth 
        || document.documentElement.clientWidth 
        || document.body.clientWidth;

    google_ad_client = "ca-publisher-id";

    if (width > 800) {
        // Activa el anuncio "Leaderboard" de 728x90 para pantallas anchas
        google_ad_slot = "ad-unit-1"; 
        google_ad_width = 728; 
        google_ad_height = 90;
    } else if ((width <= 800) && (width > 400)) { 
        // Activa el anuncio "Banner" de 468x60 para pantallas pequeñas (móviles) 
        google_ad_slot = "ad-unit-3"; 
        google_ad_width = 468; 
        google_ad_height = 60;
    } else { 
        // Activa el anuncio "Medium Rectangle" de 300x250 para medianas (tablets)
        google_ad_slot = "ad-unit-2"; 
        google_ad_width = 300; 
        google_ad_height = 250;
    }

</script>

<script type="text/javascript"
    src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script>

这是 DFP 的一个:

var width = window.innerWidth 
    || document.documentElement.clientWidth 
    || document.body.clientWidth;
if (width >= 800) {
    // Activa el anuncio "Leaderboard" de 728x90 para pantallas anchas
    document.write('<div id="div-gpt-ad-1234567891234-1" style="width:728px; height:90px;"">');
    googletag.cmd.push(function() { googletag.display('div-gpt-ad-1234567891234-1'); });
    document.write('</div>');

} else if ((width < 800) && (width > 400)) { 
    // Activa el anuncio "Medium Rectangle" de 300x250 para medianas (tablets) 
    document.write('<div id="div-gpt-ad-1234567891234-2" style="width:300px; height:250px;"">');
    googletag.cmd.push(function() { googletag.display('div-gpt-ad-1234567891234-2'); });
    document.write('</div>');

} else { 
    // Activa el anuncio "Banner" de 468x60 para pantallas pequeñas (móviles) 
    document.write('<div id="div-gpt-ad-1234567891234-3" style="width:468px; height:60px;"">');
    googletag.cmd.push(function() { googletag.display('div-gpt-ad-1234567891234-3'); });
    document.write('</div>');
}

于 2013-03-18T05:51:10.537 回答
1

谷歌现在引入了响应式广告单元。您需要生成新的广告代码才能使用它们。

于 2013-10-01T01:43:47.500 回答
1

我认为这在 2019 年不是必需的,因为Google Adsense正式推出了太多适合各种屏幕尺寸(响应式)的新广告格式。

但是,当用户从不同的屏幕尺寸浏览时,您可以使用一些 Javascript 代码来确定广告位置或何时显示或隐藏它们。

于 2019-10-12T03:39:56.183 回答
0

此工具顶部有一个免责声明,以确保 Google 对您使用它感到满意,但这将完全符合您的要求。

http://www.responsiveads.com/responsive-adsense/

从他们的博客

Google 很可能会在不久的将来为此提出自己的解决方案,但与此同时,发布商可以使用我们的解决方案使 AdSense 能够在所有屏幕上通过其网站获利!

于 2013-01-20T05:42:11.313 回答
0

这是 AdSense 的一个大问题。根据服务条款,您不能以编程方式刷新广告,这意味着如果您的布局在调整大小后需要加载不同的广告,您将无法加载。

话虽如此,Google DFP(支持加载 AdSense 广告)确实有一个 refresh 方法。我已经阅读了所有政策,您似乎可以将此方法用于您自己的广告,但在使用 AdSense 时则不能。


编辑:前几天刚和谷歌打过电话......他们确认在提供 AdSense 时使用 DFP 的刷新功能违反了他们的 AdSense 政策。刷新功能只能与您自己的广告一起使用,否则您可能会失去您的帐户和您赚取的资金。

于 2013-01-19T22:26:05.800 回答
0

我已经用简单的css做到了这一点。

如果它不是一个 Flash 对象,你可以让它调整大小。

如果它是 iframe,则使其宽度为 100%

根据加载的广告,它可能会切断一些图像,如果是这种情况,那么您将需要一些 javascript 来测量动画并相应地重新加载添加。

于 2013-04-24T14:40:13.937 回答
0

<style>
iframe{width:100%}
</style>

并解决了所有问题,我在引导网站和 Adsense 上遇到了这个问题

于 2016-11-05T11:03:36.320 回答