Google跟踪代码管理器触发时间过早?

时间:2018-10-30 14:40:13

标签: reactjs google-tag-manager json-ld

我正在使用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

该标记被写入application/ld+json元素中。

在这里:

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

没有的地方。任何进一步调试的建议将不胜感激。

1 个答案:

答案 0 :(得分:0)

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