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

把新装的统计代码改成 gtag('config', 'UA-12345678-1') 之后,控制台一个字都不报,实时报告里却一条事件也没有,调试视图同样空着。先别急着动参数,把报错原文和时间点记下来,顺序反了容易白折腾。

原因不复杂,UA- 是 Universal Analytics 的媒体资源 ID,那条链路早已停止处理数据,gtag.js 收到这个 ID 仍会正常加载,请求也照发,只是接收端直接丢弃。代码看起来没坏,很容易被当成网络问题去查。

围绕「UA 跟踪 ID 失效」排查时,命令行跑一遍比在面板里点十次有用,面板会替你做掉不少隐式操作。改完隔一天再看一次,当场正常不代表能稳住。

测试环境和线上的差别,往往就在版本号和那几行被忽略的配置上。

处理上按这个顺序:在 GA4 管理后台复制 G- 开头的衡量 ID,别再沿用旧文档里的 UA-;把 gtag 的 config 参数换成新 ID,同一个页面只保留一次 config 调用;在浏览器网络面板筛 collect,确认请求里的 tid 已经是 G- 开头。

改完只确认一件事:刷新页面后实时报告出现一条 page_view,collect 请求里的 tid 是 G- 开头,不再是 UA-。

作者 9823189