如何从GET请求中收集Google Analytics的客户端ID服务器端?

时间:2017-03-17 19:02:00

标签: javascript google-analytics request

我需要跟踪某人何时从我的服务器下载文件,因此我创建了一个端点,将参数作为文件名。

此端点只发送GA事件并将文件返回给用户。

但是,由于我是服务器端,我无法轻松获取客户端ID以将其发送回Google Analytics。经过一些研究后,这个CID可以在_ga Cookie中找到,但Google建议不要指望它,因为Cookie可能会在未来发生变化:

https://developers.google.com/analytics/devguides/collection/analyticsjs/cookies-user-id#getting_the_client_id_from_the_cookie)。

那么,我如何收集客户端ID服务器端以将其与我的事件一起发送回来?

1 个答案:

答案 0 :(得分:3)

_ga cookie由analytics.js库生成和使用,它是Google Analytics识别您网站上用户的方式。生成此值以存储在cookie中,因此据我所知,您无法从API调用生成它。  即使您已完成研究,也允许我向您提供有关_ga值的一些信息。 你看到的cookie的价值就像GA1.2.XXXXXXXXX.XXXXXXXXXX

您必须提取以获取将与服务器端请求一起发送的CID值的部分是以点(。)分隔的值的最后两部分,意思是:

GA1.2。 XXXXXXXXX.XXXXXXXXXX < - 包含中间点的粗体部分

另外,正如您所引用的那样,Google报告您不应指望这个名称'的cookie。这意味着像getCookie(' _ga')这样的函数将来不会保证有效。但是如果你继续阅读分析跟踪器对象提供了一个函数回调,它将为你提供这个保证的值。

ga(function(tracker) {
  var clientId = tracker.get('clientId');
});

我要采用的方法是使用此回调,获取CID,在我的请求的有效负载中加密发送(例如作为额外参数),在服务器上解码它,然后发送测量协议请求。