Universal Analytics:客户ID

vto*_*ola 6 google-analytics web-analytics universal-analytics

有关客户端ID文档声明它必须是UUID

Example usage: cid=35009a79-1a05-49d7-b876-2b884d0f825b
Run Code Online (Sandbox Code Playgroud)

但是当查看analytics.js发出的调用时,我发现该值有另一种格式:

cid:714937391.1406537193
Run Code Online (Sandbox Code Playgroud)

那些价值观是什么?它们是如何产生的?如果我想从其他应用程序向该会话追加事件,我可以使用相同的值吗?

客户端ID是否用作会话标识符?

Phi*_*ton 9

文档有点误导.客户端ID在技术上不需要是该格式的UUID哈希.它只是建议这种格式,以帮助人们避免意外生成重复的客户端ID.

analytics.js中客户端ID的格式是随机生成的31位整数,后跟一个点("."),后跟当前时间(以秒为单位).

如果您想自己生成此格式的客户端ID(无论出于何种原因),您可以执行以下操作:

var cid = Math.floor(Math.random() * 0x7FFFFFFF) + "." + Math.floor(Date.now() / 1000);
Run Code Online (Sandbox Code Playgroud)

要回答您的其他问题,是的,您可以在服务器端Measurement Protocol中使用相同的客户端ID,就像您在analytics.js生成的cookie中找到的那样,会话将被链接.

此外,如果您希望确保服务器端命中与客户端匹配尽可能紧密相关,则还应使用用户代理IP覆盖字段,这些字段是测量协议的新增功能.如果不这样做,那么服务器端命中的所有地理数据看起来都会来自服务器所在的位置.

UPDATE

此外,如果不清楚如何从JavaScript获取客户端ID,这里是文档建议的内容:

ga(function(tracker) {
  var clientId = tracker.get('clientId');
});
Run Code Online (Sandbox Code Playgroud)

请注意,它建议不要直接从cookie中读取数据.