Google analytics 使用GA4和NextJS获取冗余的页面视图事件

Google analytics 使用GA4和NextJS获取冗余的页面视图事件,google-analytics,next.js,single-page-application,google-analytics-4,Google Analytics,Next.js,Single Page Application,Google Analytics 4,我正在尝试将NextJS应用程序转换为GA4 初始页面加载按预期发送事件,但后续页面(通过单击Next的链接组件生成的链接访问)将记录两次pageview事件。其他事件按预期触发一次 换句话说,如果我转到A页,然后单击指向B页的链接,A页实时事件将显示一次访问A页,但两次访问B页 无法判断这是GA4错误、NextJS错误还是我的实现存在问题 在我们传统的GA设置中没有观察到这种行为,甚至在剥离所有现有GA分析(通过使用)时也会观察到这种行为,并且在开发模式中和开发模式之外都会观察到这种行为 通过

我正在尝试将NextJS应用程序转换为GA4

初始页面加载按预期发送事件,但后续页面(通过单击Next的链接组件生成的链接访问)将记录两次pageview事件。其他事件按预期触发一次

换句话说,如果我转到A页,然后单击指向B页的链接,A页实时事件将显示一次访问A页,但两次访问B页

无法判断这是GA4错误、NextJS错误还是我的实现存在问题

在我们传统的GA设置中没有观察到这种行为,甚至在剥离所有现有GA分析(通过使用)时也会观察到这种行为,并且在开发模式中和开发模式之外都会观察到这种行为

通过在公共组件中包含以下内容,在每个页面上加载GA4标记:

<script async src="https://www.googletagmanager.com/gtag/js?id=G-xxxxxxxx" />
<script
  type="text/javascript"
  dangerouslySetInnerHTML={{
  __html: `window.dataLayer = window.dataLayer || [];
    function gtag(){dataLayer.push(arguments);}
    gtag('js', new Date());
    gtag('config', 'G-xxxxxxxx');`,
  }}
/>

我花了半天的时间在这上面(与盖茨比和盖茨比插件google gtag一起获得双重
页面查看
事件),我非常确定你的问题的解决方案与

基本上,GA4引入了一种称为“增强测量”的东西,它比GA过去跟踪更多的东西。默认情况下,此设置处于启用状态,令人恼火地覆盖了
gtag('config',{send\u page\u view:false})
。我不确定这是否应该作为一个bug提交给谷歌,或者我们应该停止手动处理历史变化,让GA发挥它的魔力

通过转到GA中的管理员,然后转到您的属性,选择数据流,然后选择您的应用程序正在使用的流,并完全禁用“增强测量”,可以禁用此行为:

或者特别禁用跟踪浏览器历史记录(单击“增强测量”打开时显示的cog图标以查看此信息):


如何处理客户端转换页面视图?您提供的代码段将处理初始页面加载报告,但必须有其他GA代码来处理客户端导航。以前,自定义函数将调用ReactGA以发送带有当前路径的页面视图。购买我的理解是,GA4检测历史记录的更改,并在每次更改时自动创建页面视图事件…这是我迄今为止的经验,但它做了两次。您是否使用GA调试器chrome扩展,是否在控制台中看到页面视图触发两次?在GA中的
Web流>增强测量>页面浏览量>高级
设置下,“基于浏览器历史记录的页面更改”的设置是什么?我想已经检查过了,因为听起来这就是你想要的?听起来好像上面的脚本可能正在客户端导航上运行,GA设置被设置为true,因此由于
历史记录
更改,它也在录制。您可以添加
控制台.log
来检查这一点吗?您不应该在客户端页面更改上获取日志。也许可以尝试将常规GA include作为服务器呈现响应的一部分(不要使用危险的Lyset…),保持GA选项“true”以跟踪页面视图中的历史更改。这样,服务器呈现的页面视图由加载应用程序外壳时运行的脚本记录,然后GA自动跟踪客户端页面更改的历史记录更改。