Google 标签管理器在单页应用程序中重新创建相同的标签

Google Tag Manager recreates the same tag in a Single Page App

在我的 SPA 中导航时,我正在触发 VirtualPageView 事件,但这是 Google Analytics debugger 吐出的内容:

它似乎在一遍又一遍地重新创建 Google Analytics 标签。我不是 GA 专家,但根据我的阅读,这对于正确的分析来说真的很糟糕。我认为这与一遍又一遍地重新启动用户会话有关?

Google Tag Assistant 似乎认为正在重新创建 GTM 本身:

GTM 预览控制台中的一切似乎都很好:

为了强调我的担忧:GA tag/tracker 似乎被反复重新创建。我对吗?如果是这样,我该如何解决?


作为参考,这是我在 GTM 中配置的内容:

我的应用中处理GTM事件的关键函数如下:

const sendEvent = ({event, eventCategory, eventAction, eventLabel}: GtmEvent): void =>
  send({
    event,
    eventCategory,
    eventAction,
    eventLabel,
    nonInteraction: false
  });

const sendVirtualPageView = (data: { url: string, title: string }): void =>
  send({
    event: <'VirtualPageView'>'VirtualPageView',
    virtualPageURL: data.url,
    virtualPageTitle: data.title,
  });


const send = (data: GtmEvent | VirtualPageView): void =>
  window.gtm.push(data);

GTM 为每次点击创建一个具有随机名称的跟踪器对象的新实例。虽然我没有任何官方信息,但我认为这样做是为了避免命中范围的自定义维度和其他设置自动传播到所有 GA 标签,无论您是否愿意(即您可能希望为网页浏览标签发送不同的信息和事件标签)。如果您跟踪多个 GA 帐户,这也可以避免跟踪器相互覆盖。

如果您想在 GA 标签之间共享设置,您现在可以使用设置变量,并直接在标签设置中设置特定于标签的任何内容。

所以您在调试器中看到的只是意味着 GTM 正在按预期工作。至于 Tag Assistant,虽然这是一个可能有用的工具,但它会发出大量误报,因此请谨慎使用。