最近,我开始从我的google admanager广告单元得到这个错误。该错误是针对多大小映射的,只有对于singlesize没有错误。
[GPT]无效参数:SizeMappingBuilder。addSize([356,0], [[336],[300, 250]])。所有零区槽位尺寸均被删除。
下面是我的sizeMapping
<script>
googletag.cmd.push(function(){
var adCode = { "top":'/21762728/top'};
var adSize = {"top":[[336,280],[300,250]]};
var TopAdMap = googletag.sizeMapping().addSize([356, 0], [[336,280],[300,250]]).addSize([0, 0], [300,250]).build();
googletag.defineSlot(adCode.top, adSize.top, 'ad-top-slot').defineSizeMapping(TopAdMap).addService(googletag.pubads());
});
</script>
我最近看到同样的错误出现,而以前不是问题。
似乎是GPT代码的错误警告。
根据官方文档,您的尺寸映射代码是正确的。下面是它对这个错误(这里)的说明:
提供给指定GPT方法($METHODNAME)的SizeMapping ($ARGS)无效,将被自动删除。
我运行了几个测试,它看起来像错误的起源是视口的高度值为零,因为下面不会抛出任何错误:
googletag.cmd.push(function(){
var adCode = { "top":'/21762728/top'};
var adCode = { "top":'/21762728/top'};
var adSize = {"top":[[336,280],[300,250]]};
var TopAdMap = googletag.sizeMapping().addSize([356, 1], [[336,280],[300,250]]).addSize([0, 0], [300,250]).build();
googletag.defineSlot(adCode.top, adSize.top, 'ad-top-slot').defineSizeMapping(TopAdMap).addService(googletag.pubads());
});
问题是你不希望用户的viewporttheight影响你的sizeMapping…因此,为了避免抛出警告,这里有一个解决方法:使用sizeMappingArray方法而不是sizeMappingBuilder:
googletag.cmd.push(function(){
var adCode = { "top":'/21762728/top'};
var adSize = {"top":[[336,280],[300,250]]};
var TopAdMap = [
[[356, 0], [[336,280],[300,250]]],
[[0,0], [[300, 250]]]
];
googletag.defineSlot(adCode.top, adSize.top, 'ad-top-slot').defineSizeMapping(TopAdMap).addService(googletag.pubads());
这是一个使用Google ad Manager (GAM) API定义和设置广告槽的JavaScript代码。下面是每行代码的细分:
定义一个名为adCode的JavaScript变量,该变量持有一个键值对分别为top和'/21762728/top'的对象。该变量用于指定广告槽的代码。定义一个名为adSize的JavaScript变量,该变量持有一个对象,其键值对分别为top和[[336,280],[300,250]]。此变量用于指定广告槽的大小。定义一个名为TopAdMap的JavaScript变量,它使用googletag.sizeMapping()方法为广告位创建一个大小映射。大小映射指定应该根据浏览器窗口的宽度显示哪些广告大小。在这种情况下,它将广告大小[[336,280],[300,250]]映射到浏览器窗口宽度至少为356px,[[300,250]]映射到任何更小的宽度。该变量用于定义广告槽的大小映射。使用googletag.defineSlot()方法定义Google Ad Manager广告槽。该方法接受三个参数——广告代码、广告大小和显示广告的div元素的ID。adCode。top和adSize。Top变量分别用于指定AD插槽的代码和大小。应该显示广告的div元素的ID是'ad-top-slot'。defineSizeMapping()方法用于指定广告槽的大小映射,addService()方法用于将广告槽添加到Google ad Manager的广告服务器。这段JavaScript代码设置了一个响应式广告槽,它可以根据浏览器窗口的宽度显示两种不同的广告尺寸。它还定义了广告槽的大小映射,以确保向用户显示适当的广告大小。