我正在使用 prebid.js 和 googletags 开发 JS 包装器,我遇到了一个非常奇怪的问题。 我是预出价、谷歌标签和广告的新手,所以我可能只是错过了一个小细节,但我们开始吧:
我注意到运行时 prebid 似乎没有得到任何响应
pbjs.requestBids()
。即使超时设置非常低,它也永远不会超时。
我尝试将问题与包装器代码隔离开来,因此我采用了 示例代码 prebid 在其文档中的内容,然后将我的值简单地插入到
adUnits
变量中。尽管一切看起来都正确,但它仍然会导致与以前相同的问题。没有响应,没有超时。没有什么。最终导致所有 prebid 超时 -
// in case PBJS doesn't load
setTimeout(function() {
initAdserver();
}, FAILSAFE_TIMEOUT);
-部分。
我已经安装了Professor Prebid扩展,里面什么也没有。看起来prebid根本没有启动,但是控制台清楚地显示它已经启动了。
我尝试在 Prebid.js 中仅使用一个出价器,同样的问题。
示例代码的其余部分未修改,并且它使用默认值,所以它一定是我的 adunit 代码中的某些内容导致了奇怪的问题,对吗?
TLDR: 是否存在可能导致
pbjs.requestBids()
根本不响应的已知问题?
如果
FAILSAFE_TIMEOUT
正在触发,这意味着出现了严重错误,可能是 Prebid.js 无法完全加载(pbjs
可能在库中未定义)或者您的配置存在重大问题,导致无法正常加载完成回调的代码。如果没有看到完整的代码片段,很难说。
你得到任何 PBJS 调试输出吗? (启用在您加载的 URL 的查询字符串中使用
pbjs_debug=true
)。
如果你不分享一些代码,就很难找出问题所在。至少使用 pbjs_debug=true 或什至更好地使用 pbjs.setConfig({debug: true}) (它也适用于 iframe)以便查看问题所在并可能分享问题。另外,您的这个标头竞价设置是预竞价页面的“标头竞价”示例,尝试看看与示例相比有什么不同。