问题描述
我实际上正在开发一个大型 Web 应用程序,该应用程序最初是使用 Symfony/Twig 构建的,然后逐渐使用 React 进行重构。但由于我使用的是 React,因此我的某些页面在 Google 标签管理器 (GTM) 中没有“浏览量”。
我跟随 this guide 在 React 中使用 GTM。但是我在 GTM 中有很多(数十个)标签和触发器,基于 3 个原生事件“容器加载”(gtm.js
)、“DOM 就绪”(gtm.dom
)和“窗口加载”( gtm.load
).
第一个解决方案(来自指南)是添加一个新的自定义触发器(基于历史源)并将我们的代码链接到这个新触发器上。但由于我的标签太多,这不是一个令人满意的解决方案。
第二种解决方案是使用数据层手动触发事件。这很好用,我可以轻松触发“DOM Ready”和“Window Loaded”事件。但是对于“Container Loaded”,它不能按预期工作。我猜 GTM 不会在每次页面加载时多次处理此事件。
那么,这是我的问题:
“正常”Container Loaded 触发器的屏幕截图:
手动调用的 Container Loaded 触发器的屏幕截图(来自 React):
解决方法
没有。您可以多次调用 gtm.dom
或 gtm.load
,但不能调用 gtm.js
。
如果您在 SPA 中从页面切换到页面,您可以清空数据层。这应该模拟像假重新加载之类的东西。此外,最好使用 VirtualPageViews 来跟踪您的网站。