Google React JS 站点上的分析输出不正确的数据(会话中断?)

Google Analytics on React JS site outputting incorrect data (broken sessions?)

我们有一个网站,其中大部分内容由 Wordpress 管理,但是当用户导航到搜索页面(用户搜索产品)时,它由 React JS 处理。

它们都在同一个域中,因此用户永远不会知道他们正在与两个不同的应用程序交互。

Google 但是,网站上的分析似乎无法正确识别会话。它将站点的入口(登陆页面)记录为具有相当长 URL 的搜索页面:

目前,GA 设置了 GTM。我尝试 using this 在 React 中触发 GTM 标签。

还尝试使 GTM 中的 GA 标记在浏览器历史记录更改时触发,而不是在页面浏览时触发(在 React 中触发历史更改,在 Wordpress 中触发正常页面浏览)。但是这些修改仍然存在问题。

请注意,这些会话并不特定于任何一种浏览器:

您遇到的问题源于搜索时的事实,您正在切换入口点并将页面硬刷新到 React 应用程序。即使域似乎没有改变,它仍然被浏览器视为新的页面加载,因此在您的分析中显示为这样,如此请求所示:

你还没有真正告诉你是否在你的应用程序中使用了 react-router(我假设你有不同的路径),解决这个问题的方法是使用 react-ga而不是默认的 GA 脚本并利用 react-router 的 onUpdate 回调。

首先使用您的 GA id 导入并初始化模块:

import ReactGA from 'react-ga'

ReactGA.initialize('UA-000000-01')

然后在您的路由配置中,在 <Router> 上添加 onUpdate 属性 并创建一个仅使用路径名调用 google 分析的方法,这样您不会以仪表板中令人讨厌的所有查询参数结束。

const onUpdate = () => {
  ReactGA.set({ page: window.location.pathname })
  ReactGA.pageview(window.location.pathname)
}

<Router onUpdate={onUpdate}>
  ...
</Router>

不过,如果您想跟踪用户搜索,我建议改用事件,并在搜索时执行类似以下操作:

ReactGA.event({
  category: 'User',
  action: 'Search',
  value: 'your formatted search value'
})

它还可以让您以任意方式设置搜索值的格式,这对您来说比查询参数更具可读性。