有没有解释为什么在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>
有什么线索吗?我非常感谢您给我的任何帮助来解决这个问题。
答案 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。一次就足够了。