0

您好我正在尝试将 GPT(Google 发布标签)广告嵌入到我的网络应用程序中(效果很好)。但是,我被要求确保客户端可以编辑和修改 GPT HTML 脚本,以便在实时发送更改之前查看更改。我的问题是,当我将修改后的广告 HTML 和脚本重新插入 DOM(以供查看)时,广告脚本不再能够由浏览器执行(javascript 错误)。

您好我已尝试通过以下网站寻求帮助: https: //support.google.com/admanager#topic=7505988

除了尝试 GPT API 参考中提到的各种事情,例如 destroySlots 选项,我可以重置 googletag javascript 对象以重新插入脚本
https://developers.google.com/doubleclick-gpt/reference

请查看我想要实现的最小可重复示例: https ://codepen.io/angusgrant/pen/eawbLV

  1. 单击“编辑广告”按钮(应打开一个对话框窗口,其中包含一个文本区域输入,显示一个 HTML 文本区域输入,其中显示了广告脚本的 HTML 源。
  2. 单击“预览”按钮。请注意,GPT 广告不再显示/呈现。

这是我在页面加载时加载的 HTML(scriptlet),需要能够通过 JS 重新插入 DOM:

<div id="addSlot1" style="height:600px; width:160px;">
    <script>
    googletag.cmd.push(function()
    {
    googletag.defineSlot('/1008130/Wide_Skyscrape', [160, 600], 'addSlot1')
    .addService(googletag.pubads())
    .setTargeting("Pub_code", "asnr");
    googletag.enableServices();
    googletag.display('addSlot1');
    });
    </script>
  </div>

我希望广告(仍然)显示(对在网页中呈现的文本区域中的 HTML 进行的任何修改)。

我实际经历的是,广告代码按预期加载到 DOM 中(使用完全相同的 HTML/Javascript 代码)并且浏览器尝试呈现更改,但我在开发人员工具中收到错误:

排队的 GPT 命令类型错误中的异常:无法读取 null 的属性“addService”

并且广告不再呈现。

在此处输入图像描述

请告知我如何重新编写 GPT HTML / scriptlet 以便它在页面加载时运行以及在重新插入 DOM 时运行?

4

0 回答 0