谷歌标签管理器过早启动



我正在使用react-gtm-module编写一个动态生成的数据层,以响应自定义HTML标记。我遇到了一个问题,有时CustomHTML标记被成功激发,并生成了dataLayer,但<script type='application/ld+json'>元素缺少模板化的dataLayer变量。

它同时发生在开发环境和生产环境中,因此它不能与webpack相关。有时gtm调试器在失败的情况下显示带有空字段的标记,有时它显示标记中填充的字段,即使写入的元素本身没有。

以下是CustomHTML标记中的编写脚本:

var script = document.createElement('script');
script.type = 'application/ld+json';
script.innerHTML = JSON.stringify(data);
document.getElementsByTagName('head')[0].appendChild(script);
})(document); 

以下是两个基本等效的示例:

https://iiif.cloud/view/afa9ee3c-a7ed-5875-a009-2de3940ebff3

标签被写入到CCD_ 3元素中。

这里:

https://iiif.cloud/view/7145e94f-6a10-5bb6-a360-6915ee9b0795

它不在哪里。如有任何进一步调试的建议,我们将不胜感激。

问题是触发器需要等待dataLayer被填充。有一个延迟执行的触发选项,"设置屏幕上的最小持续时间"。通过将其设置为2000ms,标记现在总是使用dataLayer变量创建的。

最新更新