您好我正在尝试将 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
- 单击“编辑广告”按钮(应打开一个对话框窗口,其中包含一个文本区域输入,显示一个 HTML 文本区域输入,其中显示了广告脚本的 HTML 源。
- 单击“预览”按钮。请注意,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 时运行?