为什么在980x250插槽中加载300x600横幅? Google DFP

时间:2018-03-25 23:44:27

标签: google-dfp

有没有解释为什么在980x250设备上装载300x600的横幅?此单位设置为仅在Google DFP广告管理系统上展示980x250横幅,但在小分辨率下仍会显示980x250横幅,有时也会显示300x600单位(但正在加载的代码为home_1_main_980_leader)

这是标题:

<script async='async' src='https://www.googletagservices.com/tag/js/gpt.js'></script>
<script>
  var gptadslots = [];
  var googletag = googletag || {cmd:[]};
    </script>
    <script>
      googletag.cmd.push(function() {

      var mappingDesktop = googletag.sizeMapping().
          addSize([1280, 0], [[980, 250], [300, 250], [300, 600]] ). //bigger than 1280
          addSize([468, 0], [[728, 90], [300, 250], [300, 600]] ). //bigger than 468 but smaller than 1280
          addSize([320, 0], [[468, 60], [180, 150], [160, 600]] ). //bigger than 320 but smaller than 468
          addSize([0, 0], [320, 50]).
          build();

       googletag.defineSlot('/10039233/home_1_main_980_leader', [980, 250], 'div-gpt-ad-1521098852276-65')
      .defineSizeMapping(mappingDesktop)
      .setCollapseEmptyDiv(true)
      .addService(googletag.pubads());
      googletag.defineSlot('/10039233/home_1_main_728_leader', [728, 90], 'div-gpt-ad-1521098852276-143')
      .defineSizeMapping(mappingDesktop)
      .setCollapseEmptyDiv(true)
      .addService(googletag.pubads());
      googletag.defineSlot('/10039233/home_1_main_468_leader', [468, 60], 'div-gpt-ad-1521098852276-221')
      .defineSizeMapping(mappingDesktop)
      .setCollapseEmptyDiv(true)
      .addService(googletag.pubads());
      googletag.defineSlot('/10039233/home_1_main_320_leader', [320, 50], 'div-gpt-ad-1521131716762-0')
      .defineSizeMapping(mappingDesktop)
      .setCollapseEmptyDiv(true)
      .addService(googletag.pubads());

   googletag.enableServices();
});

这就是身体:

<div id='div-gpt-ad-1521098852276-65' style='height:250px; width:980px;'>
    <!-- /10039233/home_1_main_980_leader -->
    <script>
    googletag.cmd.push(function() { googletag.display('div-gpt-ad-1521098852276-65'); });
    </script>
</div>

<div id='div-gpt-ad-1521098852276-143' style='height:90px; width:728px;'>
    <!-- /10039233/home_1_main_728_leader -->
    <script>
    googletag.cmd.push(function() { googletag.display('div-gpt-ad-1521098852276-143'); });
    </script>
</div>

<div id='div-gpt-ad-1521098852276-221' style='height:60px; width:468px;'>
    <!-- /10039233/home_1_main_468_leader -->
    <script>
    googletag.cmd.push(function() { googletag.display('div-gpt-ad-1521098852276-221'); });
    </script>
</div>

<div id='div-gpt-ad-1521131716762-0' style='height:50px; width:320px;'>
    <!-- /10039233/home_1_main_320_leader -->
    <script>
    googletag.cmd.push(function() { googletag.display('div-gpt-ad-1521131716762-0'); });
    </script>
</div>

有什么线索吗?我非常感谢您给我的任何帮助来解决这个问题。

1 个答案:

答案 0 :(得分:0)

这些广告位是否位于网站的同一位置?像一个接一个?

您在所有广告位上使用相同大小的映射(mappingDesktop)。 每个插槽需要不同的大小映射。但是如果你想要一个地方加载不同的尺寸,那就是不同的方法。

您的方法(可能)已修复。但是在大型桌面上它实际上会渲染所有4种尺寸(不知道这是不是你的目标?):

<script async='async' src='https://www.googletagservices.com/tag/js/gpt.js'></script>
<script>
  var gptadslots = [];
  var googletag = googletag || {cmd:[]};
    </script>
    <script>
      googletag.cmd.push(function() {

      var leader1 = googletag.sizeMapping().addSize([980, 0], [980, 250]).addSize([0, 0], []).build // 1_main_980_leader
      var leader2 = googletag.sizeMapping().addSize([728, 0], [728, 90]).addSize([0, 0], []).build // 1_main_728_leader
      var leader3 = googletag.sizeMapping().addSize([468, 0], [468, 60]).addSize([0, 0], []).build // 1_main_468_leader
      var leader4 = googletag.sizeMapping().addSize([320, 0], [320, 50]).addSize([0, 0], []).build // 1_main_468_leader


       googletag.defineSlot('/10039233/home_1_main_980_leader', [980, 250], 'div-gpt-ad-1521098852276-65').defineSizeMapping(leader1).addService(googletag.pubads());
      googletag.defineSlot('/10039233/home_1_main_728_leader', [728, 90], 'div-gpt-ad-1521098852276-143').defineSizeMapping(leader2).addService(googletag.pubads());
      googletag.defineSlot('/10039233/home_1_main_468_leader', [468, 60], 'div-gpt-ad-1521098852276-221').defineSizeMapping(leader3).addService(googletag.pubads());
      googletag.defineSlot('/10039233/home_1_main_320_leader', [320, 50], 'div-gpt-ad-1521131716762-0').defineSizeMapping(leader4).addService(googletag.pubads());
      googletag.pubads().collapseEmptyDivs();
      googletag.enableServices();
});
</script>

如果宽度为980或更大,上面的示例将加载980x250;如果宽度为728或更大,则加载728x90;如果宽度为468或更大,则加载468x60;如果宽度为320或更大,则加载320x50。它不会加载任何横幅,如果它低于320。 再次,请记住,这种方法将加载宽度为980或更大的所有4个横幅。

如果您想根据浏览器的尺寸选择不同尺寸的ON SINGLE PLACE,则只需要一个广告单元,而且代码非常简单:

<script async='async' src='https://www.googletagservices.com/tag/js/gpt.js'></script>
<script>
  var gptadslots = [];
  var googletag = googletag || {cmd:[]};
    </script>
    <script>
      googletag.cmd.push(function() {

      var leaderall = googletag.sizeMapping().addSize([980, 0], [980, 250]).addSize([728, 0], [728, 90]).addSize([468, 0], [468, 60]).addSize([320, 0], [320, 50]).addSize([0, 0], []).build // leaderall


      googletag.defineSlot('/10039233/home_1_main_980_leader', [[980, 250],[728, 90],[468x60],[320x50]], 'div-gpt-ad-1521098852276-65').defineSizeMapping(leaderall).addService(googletag.pubads());
      googletag.pubads().collapseEmptyDivs();
      googletag.enableServices();
});
</script>

仅限于身体:

<div id='div-gpt-ad-1521098852276-65'>
<script>
googletag.cmd.push(function() { googletag.display('div-gpt-ad-1521098852276-65'); });
</script>
</div>

注意事项2: 1.在正文代码中删除div的大小,因此它不会闪烁&#34;如果没有广告。 2.你不需要在每个单位之后拥有collapseEmptyDivs。一次就足够了。