繁体   English   中英

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

[英]Google Analytics Measurement Protocol: How do I get the client-id from cookie on the server?

我想使用测量协议从服务器发送一个谷歌分析事件。

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

但是,我想使用与_ga cookie中存储的内容相同的客户端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允许您将事务连接到源/介质等。

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

它必须在ga("create",...)之后调用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(); 如果有任何跟踪器。 如果是,那么您可以传递回调。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM