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

Cookies Google Analytics测量协议:如何从服务器上的cookie中获取客户端id?,cookies,google-analytics,Cookies,Google Analytics,我想使用测量协议从服务器发送google analytics事件 文档说明需要cid,并且应该是UUID() 但是,我希望使用与存储在_gacookie中的相同的客户端id。但是根据,我不应该直接从cookie中解析id,因为它可能会在没有警告的情况下更改 此外,浏览器中tracker.get('clientId')返回的字符串不是标准的UUID字符串,因此即使我在浏览器中检索到该值并将其发送到服务器,它仍然不是文档中所说的格式 那么,我需要做什么才能以向前兼容的方式从cookie中获取客户端i

我想使用测量协议从服务器发送google analytics事件

文档说明需要cid,并且应该是UUID()

但是,我希望使用与存储在_gacookie中的相同的客户端id。但是根据,我不应该直接从cookie中解析id,因为它可能会在没有警告的情况下更改

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

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

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

关于他们的文档,谷歌只是不想让你直接抓取cookie,然后解析出来,因为cookie将来可能会改变

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

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


我们所做的是使用
ga.getAll()[0].get('clientId')
获取客户端并将其发送到服务器,在服务器上我们可以将clientId放入测量协议的require参数中,并向GA发送服务器端测量协议请求,其中包含交易数据,如销售商品成本等。使用clientId可以将交易连接到源/介质,等等。

获取客户ID的正确方法是通过回调询问跟踪者

它必须在
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(“发送”…)
以运行以前的设置批处理

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

你可以问
ga.getAll()如果有任何跟踪器。如果是,则可以通过回调

如果你想用其他方法,你可能早晚都会遇到麻烦