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

标签 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 并将其与我的事件一起发回?

最佳答案

_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,将其加密发送到我的请求的有效负载中(例如,作为额外参数),在服务器对其进行解码,然后发送 Measurement Protocol 请求。

关于javascript - 如何从 GET 请求收集 Google Analytics 的客户端 ID 服务器端?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42865307/

相关文章:

javascript - 谷歌浏览器不加载 analytics.js

javascript - 为什么在 JavaScript 变量中使用 '$' ?

javascript - jquery如何从计算机添加图像

Google Analytics 集成后 iOS 应用程序崩溃

google-analytics - 分析 API : How to define a segment by using event category AND event action

php - 将 + 保留在获取请求字符串中

javascript - JSP 聊天 - 如何将 HTML 中的值解析为 JSP 页面?

java tomcat utf-8编码问题

javascript - 在上一个动画完成后用 javascript 重新触发 CSS 动画

JavaScript 反射 : get variables