是否可以触发“Container Loaded”两次或强制 GTM 重新加载? 反应

问题描述

我实际上正在开发一个大型 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 不会在每次页面加载时多次处理此事件。

那么,这是我的问题:

  • 是否可以在 GTM 中“假装重新加载”(这样 GTM 就好像我打开了一个页面一样)?
  • 或者是否可以多次触发“Container Loaded”(gtm.js)?

“正常”Container Loaded 触发器的屏幕截图:

screenshot gtm

手动调用的 Container Loaded 触发器的屏幕截图(来自 React):

enter image description here

解决方法

没有。您可以多次调用 gtm.domgtm.load,但不能调用 gtm.js

,

如果您在 SPA 中从页面切换到页面,您可以清空数据层。这应该模拟像假重新加载之类的东西。此外,最好使用 VirtualPageViews 来跟踪您的网站。