【问题标题】:Prebid.js GPT integration: How GPT renders prebid winnerPrebid.js GPT 集成:GPT 如何呈现 prebid 获胜者
【发布时间】:2020-04-24 00:18:30
【问题描述】:
我正在尝试了解渲染(最终)流程:
在Prebid.js Hello World example 中有简单的集成:
- 不要初始化 GPT。
- 进行拍卖,选择获胜者。
- 使用获胜者详细信息(价格等)设置 GPT 定位
- 刷新 GPT,广告服务器试图击败价格,如果成功,它将发回一个新的获胜者创意。最有趣的是失败的情况 - AdServer 发回一些带有定位的代码,结果,我看到 GPT 块内呈现预投标获胜者。
我在 prebid.js 源中进行了搜索,但在定位/刷新后 prebid.js 和 GPT 之间没有交互。 GPT 如何知道它将呈现什么(以及广告内容)。
【问题讨论】:
标签:
javascript
prebid.js
gpt
【解决方案1】:
当标头出价在 Google Ad Manager 中赢得竞价时,GAM 会使用循环回 Prebid.js 以呈现广告素材的代码进行响应。
如果您根据 Prebid documentation 在 Ad Manager 中设置 Prebid 广告素材,则页面上投放的广告素材应如下所示:
<script src = "https://cdn.jsdelivr.net/npm/prebid-universal-creative@latest/dist/creative.js"></script>
<script>
var ucTagData = {};
ucTagData.adServerDomain = "";
ucTagData.pubUrl = "%%PATTERN:url%%";
ucTagData.targetingMap = %%PATTERN:TARGETINGMAP%%;
ucTagData.hbPb = "%%PATTERN:hb_pb%%";
try {
ucTag.renderAd(document, ucTagData);
} catch (e) {
console.log(e);
}
</script>
ucTag.renderAd 的代码可在Prebid Universal Creative repo 中找到。桌面横幅的renderAd() 从 GAM 定位键值(上述广告素材中的 TARGETINGMAP 宏)获取 Prebid 内部广告 ID,并通过调用 Prebid.js 的 window.pbjs.renderAd() 或在跨域场景通过 postMessage 从 Prebid.js 请求广告并将其呈现在新的 iframe 中。