我正在将第三方营销代码安装到我的GTM(v2)容器中。标签是一个真正的麻烦,大量使用document.write
。虽然Google跟踪代码管理器声称支持document.write
,但这些代码在触发时会抛出javascript错误。这是一个这样的标签的例子。
<script src="http://ib.adnxs.com/seg?add=1958353,6039160&t=1" type="text/javascript">
</script>
此脚本seg?add=1958353,6039160&t=1
继续拨打document.write
两次:
document.write('<scr'+'ipt type="text/javascript" src="https://js.b1js.com/tagcontainer.js?id=110386891486949186&type=1"></scr'+'ipt>');
document.write('<scr' + 'ipt src="http://cdn.adnxs.com/ib/async_usersync.js"></scr'+'ipt>');
如果我要求GTM支持document.write
此标记,并将标记设置为在所有页面上触发,我将在页面加载时出错:
Uncaught TypeError: Cannot read property 'parentNode' of null
Uncaught #<Object>
如果我取消选中此标记的GTM“支持document.write
”,我会在控制台中将其作为警告:
无法在'Document'上执行'write':除非明确打开,否则无法从异步加载的外部脚本写入文档。
我已尝试将标签触发推迟到DOM Ready之后,这对我的另一个标签起作用,但不适用于此标签。
我至少有3个标签配置为以这种方式使用document.write
,并且在触发时都会抛出相同的错误。请理解其他不依赖document.write
的标记可以很好地工作。感谢您提供的任何帮助或建议。
答案 0 :(得分:0)
不确定是否有帮助,但尝试将触发规则设置为gtm.load而不是DOM就绪。