2

我敢肯定这已经被问过并回答过,但我无法找到答案,所以我再问一次。

我正在尝试实施 Google DFP。我能够动态创建提供广告的内联 javascript,因此我知道应该正确配置管理端。

不过,我们的应用程序中没有任何内联 JS,所以我尝试使用 JS 动态构建它,但运气不佳。

我在这里粘贴了我的 JS 。值得注意的是,顶部(在 ///// !EVENTS 之前)是立即加载的,而底部是在 $(document).ready() 调用中加载的,以防万一。

代码的想法是每个广告 div 都有数据属性,包括广告的 url、大小和 id。使用这个我循环每个添加,定义槽,一旦定义了所有槽,我显示所有槽,一旦发生,我调用剩余的 DFP 函数。听起来它应该工作(无论如何对我来说),但它不是。

每个 console.log() 调用都按预期进行,当我检查最后一次调用记录的 googletag 对象时,调试日志包含如下条目:“Created slot: /[userid]/[ad div id]”、“Google已加载服务 JS","已创建服务:publisher_ads", "与 slot /[userid]/[ad unit id] 关联的 publisher_ads 服务"; 对于每条记录。

我不确定 Google 服务 JS 或为每个广告单元创建的服务调用是否会导致问题或预期行为,但除了我已经记录的内容之外,没有任何内容被记录到控制台,而且似乎没有表明我发现出了点问题,只是没有投放广告。

在文档中,在我工作的实现版本中,有一些内联脚本可以进行显示调用。我不确定这是否必须内联处理并以某种方式在调用它的脚本标记的父级中显示结果或其他内容,但即使我使显示调用内联它也不起作用,没有更多或正在进行的日志记录较少,这使我相信在 defineSlot() 步骤中某些东西无法正常工作,但就像我提到的 googletag 对象的调试日志确实表明插槽已定义。

在我的网络窗格中,似乎在http://partner.googleadservices.com/gampad/google_ads_gpt.jshttp://www.googletagservices.com/tag/js/gpt.js对 Google 进行了两次调用,返回所需的 Javascript,但这些是对 Google 的唯一调用(与广告有关,还有其他分析调用),并且此页面上有 4 个广告应该加载,所以我预计如果广告是实际上试图被送达。

不用说我不知所措。我敢肯定,答案就在我眼前,但我并没有与 DFP 或广告合作太多,所以我不知道在哪里可以找到这个问题。

提前感谢任何方向。

4

1 回答 1

2

我实际上有一个工作脚本,我很确定它可以满足您的需求。

https://github.com/coop182/jquery.dfp.js

您应该能够从我的脚本中获得一些指示,但仅通过查看您的代码笔,我发现的一个问题是您没有使用 DFP 需要的 adunit div 的实际 DOM id。您正在使用的任何地方:

$(that).attr('data-id');

应该:

$(that).attr('id');

googletag.display还需要接听电话

googletag.pubads().enableSingleRequest(); 
googletag.enableServices(); 
于 2013-06-20T14:43:08.133 回答