Google Analytics自定义维度index 1显示undefined问题咨询
React Native + Firebase Analytics GA报表userId显示undefined问题排查方案
常见原因
- GA后台自定义维度作用域配置错误:userId属于用户级属性,若你配置的自定义维度作用域选择了会话级/命中级,会导致属性无法和用户持久绑定,最终报表显示undefined
- 代码侧设置时机错误:在Firebase Analytics初始化完成前、或
setUserId/setUserProperty执行完成前就触发了统计事件,相关事件不会携带userId属性;若用户未登录时就调用设置方法传入空值,也会出现该问题 - 配置参数不匹配:代码中
setUserProperty传入的属性名,和GA后台自定义维度的名称没有完全一致(包括大小写、拼写),或自定义维度绑定的索引不为1 - SDK版本问题:低版本
@react-native-firebase/analytics存在用户属性不上报的已知bug,若你使用的是低于16.0.0的版本,大概率会触发该问题 - 同步延迟问题:Firebase用户属性同步到GA4报表最长需要48小时,刚配置完成就查看报表会出现临时的undefined情况
对应解决方法
- 修正GA后台配置:进入GA4后台「自定义定义」-「自定义维度」,找到对应的userId配置项,确认作用域设置为用户,索引为1,维度名称和代码中调用的参数名完全匹配
- 调整代码执行逻辑:确保所有用户属性设置逻辑在Firebase SDK初始化完成、且拿到有效userId之后执行,示例代码如下:
import analytics from '@react-native-firebase/analytics'; // 登录成功、拿到userId后调用该方法 const configUserAnalytics = async (userId: string) => { // 先设置全局userId await analytics().setUserId(userId); // 再设置对应自定义维度的用户属性,参数名和GA后台的维度名完全一致 await analytics().setUserProperty('user_id', userId); }
所有需要携带userId的统计事件,都要在上述方法执行完成后触发
- 升级SDK到最新稳定版:执行命令
npm i @react-native-firebase/analytics@latest升级依赖,同时确认项目中没有开启数据匿名化、用户属性屏蔽的相关配置 - 验证上报数据:开启Firebase DebugView或者GA4的实时调试模式,查看事件上报时是否携带了对应的user_id属性,若调试模式下能看到属性值,等待最多48小时的同步周期后再查看正式报表即可
注意:测试环境上报的调试数据默认不会进入正式GA报表,需要切换到正式环境测试后再核对报表数据
内容的提问来源于stack exchange,提问作者RayChen
相关产品推荐
相关产品推荐

