Google 跟踪代码管理器启动得太早了?
Google Tag Manager fires too early?
我正在使用 react-gtm-module
编写动态生成的数据层以响应自定义 HTML 标签。我有一个问题,有时 CustomHTML 标签被成功触发,并且生成了 dataLayer,但是 <script type='application/ld+json'>
元素缺少模板化的 dataLayer 变量。
它在开发环境和生产环境中都会出现,所以它不能与webpack相关。有时 gtm 调试器会在失败的情况下显示带有空字段的标签,有时它会显示标签中填充的字段,即使写入的元素本身没有。
这里是自定义HTML标签中的编写脚本:
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
标签被写入 application/ld+json
元素。
这里:
https://iiif.cloud/view/7145e94f-6a10-5bb6-a360-6915ee9b0795
哪里没有。任何进一步调试的建议将不胜感激。
问题是触发器需要等待数据层被填充。有延迟执行的触发选项,"Set minimum on-screen duration"。通过将此设置为 2000 毫秒,现在始终使用 dataLayer 变量创建标签。
我正在使用 react-gtm-module
编写动态生成的数据层以响应自定义 HTML 标签。我有一个问题,有时 CustomHTML 标签被成功触发,并且生成了 dataLayer,但是 <script type='application/ld+json'>
元素缺少模板化的 dataLayer 变量。
它在开发环境和生产环境中都会出现,所以它不能与webpack相关。有时 gtm 调试器会在失败的情况下显示带有空字段的标签,有时它会显示标签中填充的字段,即使写入的元素本身没有。
这里是自定义HTML标签中的编写脚本:
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
标签被写入 application/ld+json
元素。
这里:
https://iiif.cloud/view/7145e94f-6a10-5bb6-a360-6915ee9b0795
哪里没有。任何进一步调试的建议将不胜感激。
问题是触发器需要等待数据层被填充。有延迟执行的触发选项,"Set minimum on-screen duration"。通过将此设置为 2000 毫秒,现在始终使用 dataLayer 变量创建标签。