Google Analytics测量协议:如何从服务器上的cookie获取客户端ID?

时间:2014-05-20 20:31:52

标签: cookies google-analytics

我想使用测量协议从服务器发送Google Analytics分析事件。

文档说明cid是必需的,应该是UUID(https://developers.google.com/analytics/devguides/collection/protocol/v1/parameters#cid)。

但是,我想使用与_ga cookie中存储的内容相同的客户端ID。但根据this,我不应该直接解析cookie中的id,因为它可能会在没有警告的情况下发生变化。

此外,浏览器中tracker.get(' clientId')返回的字符串不是标准的UUID字符串,所以即使我在浏览器中检索了该值并将其发送到服务器,仍然没有文档所说的格式。

那么,我需要做什么才能以前向兼容的方式从cookie中获取客户端ID?

2 个答案:

答案 0 :(得分:9)

使用ga.getAll()[0].get('clientId');获取clientId。

关于他们的文档,谷歌不希望你直接抓取cookie并解析它,因为cookie将来可能会改变。

他们概述的方法是获取clientId的首选方法。

关于clientId和使用UUID,您几乎可以传递任何匿名识别某人的值(包括使用GA的clientId)。

我们所做的是使用ga.getAll()[0].get('clientId');抓取客户端并将其发送到服务器,我们可以将clientId放入测量协议的require参数,并发送回服务器端测量协议请求GA与交易数据,如销售成本等,使用clientId允许您将交易连接到源/媒体等。

答案 1 :(得分:0)

获取 ClientID 的正确方法是通过传递回叫来询问跟踪器。

必须在ga("create",...)之后调用,请求为:

ga(function(tracker) {
  // very similar to internal method like ga.getAll()[0].get('clientId');
  var clientId = tracker.get('clientId'); 
  // now you can pass client id to your internal system
  myInternalMeasurementProtocolSetter(clientId);  
});

在此之后,您必须致电ga("send"...)以运行以前的一批设置。

如果要将其调出初始设置队列,则必须验证GoogleAnalytics是否已初始化。

如果有任何跟踪器,您可以询问ga.getAll();。如果是,那么你可以传递回调。

如果您将使用任何其他方式,您可以提前或延迟陷入困境。