Google Tag Manager 导致 SPA 中的整页重新加载 - React

IT技术 reactjs single-page-application google-tag-manager
2021-05-01 19:06:34

当我在 React<a /><Link />元素上的 GTM 中添加触发器时,它会在单击时导致整个页面重新加载,而不是仅重新渲染应用程序的一部分。

当我删除谷歌跟踪时,一切正常。有没有办法,如何配置 GTM 不影响应用程序的行为?

2个回答

如果 Google Tag Manager 链接点击跟踪发生奇怪的事情,您应该做的第一件事就是转到点击触发器设置,看看是否启用了“等待标签”和“检查验证”复选框(默认情况下)和取消选中它们。

它们在 SPA 中不是必需的,并且(有证据表明)可能有害;“等待标签”添加一个延迟,以便其他标签有时间在链接引导用户离开页面之前触发(这在任何情况下都不会发生在 SPA 中),“检查验证”测试链接目标是否为有效的 URI(在 SPA 中它可能不是 GTM 标准——例如以哈希开头的链接无效等)。

您可以创建单独的功能并使用上下文路由器来更改路由:

myFunction(url) {
 this.context.router.push({ 
      pathname: url
    });
}
<Link onClick={this.myFunction.bind(this,url)} ></Link> 

将此功能附加到 Link 标签的 onClick。