欢迎访问我的博客,有问题可以在任意文章底部留言评论

「GA4」Client ID 和 User ID 之间的区别

Google Analytics 4 Haran 10年前 (2016-12-14) 14457次浏览 8个评论

更新时间:2024年12月18号

很多刚接触GA4的人都会疑惑:Client IDUser ID 到底有什么区别?是不是二选一?

实际上,两者并不是同一个概念,而是分别用于不同场景,并且可以同时使用。

简单来说:

标识 说明
Client ID(cid GA4自动生成的匿名设备/浏览器标识。
User ID 网站或App自己生成并传递给GA4的用户标识,用于识别同一个登录用户。

可以理解为:

GA4 会根据不同场景,同时利用这两种标识进行用户识别。

下面分别介绍两者的区别。

 

区别1:标识对象不同

  • Client ID:标识的是浏览器或设备,本质上代表的是访问终端。更换浏览器、设备、清除Cookie后都会生成新的Client ID。
  • User ID:标识的是网站或App中的登录用户。同一个账号登录不同设备,只要使用相同的User ID,就会识别为同一用户。

 

 

区别2:生成方式不同

  • Client ID:由GA4自动随机生成,无需开发,例如124562358.46738999
  • User ID:由网站或App自己生成,并在用户登录后传递给 GA4。例如df45346424

 

区别3:数据结构不同

Client ID和User ID的格式没有任何关联。

  • Client ID:
    • 客户端通常由随机数字和时间戳组成,例如:124562358.46738999
    • 服务端中通常表现为一串随机字符及时间戳,例如:F99Fd7gVuQuP93MZdJiEn07o/eZba6j9bAt8ETLsn8E=.1733280703
  • User ID:可以由数字、字符串或两者组合构成,例如:df45346424

 

区别4:匿名性

  • Client ID:属于匿名标识,不包含任何个人身份信息。
  • User ID:应使用匿名的内部用户ID,不应包含任何可识别个人身份的信息(PII)。虽然本身可以是匿名字符串,但企业内部通常能够映射到真实用户。

 

区别5:是否依赖登录状态

  • Client ID:用户首次访问网站时即可自动生成,不需要登录。
  • User ID: 必须在用户登录后才能设置并发送给GA4。

 

区别6:隐私与合规要求不同

  • Client ID:属于GA4默认生成的匿名标识,合规风险相对较低。
  • User ID:不得包含邮箱、手机号、姓名等任何 PII,应使用不可识别身份的内部用户ID。

 

区别7:跨设备识别能力不同

  • Client ID:无法跨设备识别,同一用户在不同设备上会生成不同的Client ID。
  • User ID:可以跨设备识别,只要用户使用同一个账号登录,就会被识别为同一用户。

 

区别8:用户统计精度不同

  • Client ID:当用户更换浏览器、设备或清除 Cookie 时,会生成新的 Client ID,可能导致同一用户被统计为多个用户。
  • User ID:登录用户使用同一个 User ID 时,即使更换设备或浏览器,也能更准确地识别为同一用户。

需要注意的是: User ID 只能提高登录用户的识别准确性,并不能覆盖未登录用户

 

区别9:归因分析能力不同

  • Client ID:只能分析单浏览器、单设备内的用户行为。
  • User ID:可以关联同一登录用户在多个浏览器、多个设备上的行为,有利于跨设备归因分析。

 

区别10:可跟踪用户阶段不同

  • Client ID:从首次访问网站开始即可持续跟踪用户行为。
  • User ID:只有用户登录后才能开始识别,登录前的访问不会拥有User ID。

 


有疑问可以在底部留言
喜欢 (4)
发表我的评论
取消评论

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
(8)个小伙伴在吐槽
  1. 遇到了一个问题,我们的系统是通过机构ID注册 ,机构下面的多个用户是通过注册的机构管理员添加或导入系统,埋点针对的是用户的行为,在GA上怎么进行机构和用户的关联,才能剔除掉老用户的行为。
    hello2022-06-22 11:11 回复 Windows 10 | Chrome 96.0.4664.110
    • Haran
      将机构和用户ID设置为自订维度,就可以关联。
      Haran2022-06-22 11:28 回复 Mac OS X | Chrome 102.0.0.0
      • 谢谢,事件中存的有机构和用户两个ID,这是不是就算关联上了,还是需要你说的设置成自定义维度再关联?
        hello2022-06-23 10:13 回复 Windows 10 | Chrome 96.0.4664.110
        • Haran
          如果所有的事件都有,算是关联上,但一般建议是用自定维度。
          Haran2022-06-23 11:47 回复 Mac OS X | Chrome 103.0.0.0
  2. 埋点小白:遇到了问题,我使用了衡量协议,用fetch请求实时上报埋点事件,我知道clientid,是放在cookie里面,但是我同时配置那里存了一份在locaStroage里面,我发请求就是在local里面拿取,数据是没有什么问题,就是在谷歌分析平台的漏斗转化里面,谷歌有个活跃用户指标和用户总数不匹配,感觉是不是数据上报有问题
    小越越呀2021-11-16 15:41 回复 Windows 10 | Chrome 95.0.4638.69
    • Haran
      能收到数据,上报没问题,估计是识别匹配用户上出问题了
      Haran2021-11-16 15:43 回复 Mac OS X | Chrome 95.0.4638.69
      • 就是我有两个项目都是这种形式去发送埋点,一个我存在了local里面,一个我存在了session里面,数据组统计活跃用户的时候,存session的项目是用户数和活跃用户数是1:1的关系,但是存local的项目,比例就很大了。100个用户数只有20来个活跃用户,但是我也找不到问题,这和client的存储还是和请求方式比如fetch或者axios有关系吗
        小越越呀2021-11-16 16:03 回复 Windows 10 | Chrome 95.0.4638.69
        • Haran
          client id存在哪里不影响,因为还是那个值,你可以对比一些两个项目发送的请求里,看发送字段的差异,我估计有的字段,另一个可能没有。
          Haran2021-11-16 17:05 回复 Mac OS X | Chrome 95.0.4638.69