我试图设置prebid。我可以收到出价,但是未选中中标或未触发相应的订单项,则不会显示出价方的广告。相反,它会回到我为$ 0.00创建的后备行项目。预付款控制台在尝试为插槽XXXX设置键值时停止,然后没有,没有赢家,没有渲染广告,如下面的链接所示
请看下面的图片
这里hb_pb值是0.40。但即使有hb_pb为0.36,0.39等的行项目,也不会选择相应的行项目。
在交付诊断中,我没有看到hb_pb请求转到dfp。我不确定为什么会这样。请检查图像。 这是我的预付费代码。
var PREBID_TIMEOUT = 1000;
var adUnits = [{
code: 'XXXX',
sizes: [
[300, 250]
],
bids: [{
bidder: 'XXXX',
params: {
id: YYYYY
}
}, {
bidder: 'XXXXX',
params: {
placementId: 'YYYYY'
}
}]
}];
var pbjs = pbjs || {};
pbjs.que = pbjs.que || [];
var googletag = googletag || {};
googletag.cmd = googletag.cmd || [];
googletag.cmd.push(function() {
googletag.pubads().disableInitialLoad();
});
pbjs.que.push(function() {
pbjs.aliasBidder('XXX', 'YYY');
pbjs.addAdUnits(adUnits);
pbjs.requestBids({
bidsBackHandler: sendAdserverRequest
});
});
function sendAdserverRequest() {
if (pbjs.adserverRequestSent) return;
pbjs.adserverRequestSent = true;
googletag.cmd.push(function() {
pbjs.que.push(function() {
pbjs.setTargetingForGPTAsync();
googletag.pubads().refresh();
});
});
}
setTimeout(function() {
sendAdserverRequest();
}, PREBID_TIMEOUT);
(function() {
var gads = document.createElement('script');
gads.async = true;
gads.type = 'text/javascript';
var useSSL = 'https:' == document.location.protocol;
gads.src = (useSSL ? 'https:' : 'http:') +
'//www.googletagservices.com/tag/js/gpt.js';
var node = document.getElementsByTagName('script')[0];
node.parentNode.insertBefore(gads, node);
})();
googletag.cmd.push(function() {
googletag.defineSlot('/XXXXX/YYYY, [300, 250], 'XXXXXXX').addService(googletag.pubads());
googletag.pubads().enableSingleRequest();
googletag.enableServices();
});
答案 0 :(得分:0)
此处的问题是,DFP广告管理系统会在预付费设置关键值之前呈现广告,或者代码中的某些内容会覆盖预付费密钥值
(DFP广告管理系统setTargetting
会覆盖已在广告位上的所有内容)
我确认您在disableInitalLoad
之前设置了DFP广告管理系统pbjs.setTargetingForGPTAsyc()
和/或召回googletag.pubads().refresh()