google-analytics - 差异 ClientId - FullVisitorId
问题描述
fullvisitorId 的文档指出它是“唯一的访问者 ID(也称为客户端 ID)”。但是,在比较 BQ 中的 clientId 和 fullvisitorId 时,fullvisitorId 的值的结构不同。一个问题指出 fullvisitorId 是 clientId 的散列版本,但是我找不到说明这一点的官方文档。
我的问题是为什么有两个参数说明相同的信息,如果它们不相同,有什么区别?
解决方案
他们现在也添加clientId
到了导出模式中。那里说:
与任何给定访问/会话关联的给定用户的客户端 ID 的未散列版本。
在测量协议参考中,他们指出:
如果请求中未指定用户 ID (uid),则此字段是必需的。这匿名识别特定用户、设备或浏览器实例。对于网络,这通常存储为具有两年有效期的第一方 cookie。对于移动应用程序,这是为应用程序安装的每个特定实例随机生成的。此字段的值应为http://www.ietf.org/rfc/rfc4122.txt中所述的随机 UUID(版本 4) 。
所以,它是随机生成的——对于网络它是一个 cookie,对于应用程序它是在每次安装时设置的(或者如果 IDFA 发生变化)。在用户 ID 文档中,他们通过对比两个 ID 来确认这种随机化:
由 Analytics 库随机生成并与所有命中一起自动发送。
散列算法未知。但原则上,两者之间的唯一区别是散列。
但是,自 2018 年 7 月 17 日起,您可以使用管理 API 提供的hashClientId 方法将散列算法应用于您的客户端 ID 。为此,API 需要一个客户端 ID 和一个网络属性 ID。尽管提供网络资产 ID 可能意味着他们使用它来对哈希进行加盐——但他们并没有这样做。fullVisitorId 对于不同的属性是相同的(使用管理 API 测试)。
这基本上意味着他们不希望您使用客户端 ID 连接数据并且基本上对其进行伪/匿名化。现在他们允许了,您可以通过以下方式连接来自不同来源的数据
- 使用 Management API 创建 fullvisitorid(用于旧数据)
- 或使用新字段中的客户端 ID(对于较新的数据)
推荐阅读
- graphql - 使用 Apollo Federated GraphQL,有没有办法对来自外部实体的值进行排序/分页?
- linux - 从 Linux 调度程序收集负载权重数据
- python - 如何在破折号前打印一个单词?
- python - SVC python 输出对于使用的每个 C 或 gamma 显示相同的值“1”
- apache-kafka - 如何即时/启动时创建 Kafka 主题以供生产者发送?
- javascript - p5.js 椭圆和矩形行为
- r - 将 HH:MM:SS 列转换为 ZT 时间
- python - 尝试创建一个可以在数组中找到最接近数字的函数
- bash - 如果没有返回则执行操作
- java - 与 Kotlin 在 Fragment 中共享首选项