新用户报表三天里多出 1.8 万,实际注册只有 9000,同一个账号登录前后被算成两个人,留存曲线也跟着虚高。日志里能对上时间点,这种反而好排。

user_id 只在登录成功回调里设置,登录前的行为挂在匿名 device_id 上。GA4 不会自动把两段身份合并,登录那一刻起就另起一个新用户。这一点先确认清楚,后面就不用反复试。

gtag('set', { user_id: 'u_90321' });
gtag('event', 'login', { method: 'password' });

围绕「user_id 设置时机」排查时,命令行跑一遍比在面板里点十次有用,面板会替你做掉不少隐式操作。能分两步做的操作就别合成一步,中间看一眼返回值,出问题好判断。

报错里带路径的,先去看那个路径在不在、权限对不对。

处理上按这个顺序:登录成功后立刻调用 gtag set user_id 并补发一次 page_view;匿名阶段也用 first_party cookie 记一个稳定 ID;后台报表按 user_id 去重,别直接看总用户数;用测试账号走一遍注册到登录,确认只算一个人。

结果对不对很好判断,测试账号从浏览到登录只产生一个新用户,次日报表的新用户数接近注册数。

作者 9823189