如何在使用Measurement协议向GA发送数据时获取客户端id
How to get the client id while sending data to GA using Measurement protocol?
我尝试过通过前端(js)和后端(测量协议)使用Analytics .js (Universal Analytics)。
当通过前端使用时(js方式):
我检查有一个名为_ga的cookie,其值为GA1.2.1360127879.1438853622。它通过请求'http://www.google-analytics.com/collect?…'向带有cid=1360127879.1438853622的GA发送数据。我知道1360127879是唯一的id, 1438853622是时间戳。
当通过后端(测量协议)使用时:
我有几个问题:
1。如何从浏览器获得客户端id ?
一种方法是从后端读取_ga cookie并从中解析客户端id。但我读到不建议这样做。因为谷歌可以随时改变格式。我在某个地方看到过这样的用法:
ga(function(tracker) {
var clientId = tracker.get('clientId');
});
但我不知道如何获得客户端id在后端使用这个?我想使用与前端使用的相同的客户端id。
2。客户端的实际id是什么?是单独的唯一id还是unique_id.timestamp的组合。我应该从后端发送给GA什么?
如果你看一个使用推荐的Google Analytics JavaScript Snippet的网站,你会看到它发送的客户端ID看起来像这样:
324729700.1423421585
存储在_ga
cookie中的值看起来像这样:
GA1.3.324729700.1423421585
注意最后两个部分是相同的,只有GA1.3
部分不同。
您需要关心的唯一部分是发送到测量协议的客户端ID,因此,如果您可以从服务器访问_ga
cookie,则应该剥离GAX.X.
前缀并仅发送其余部分。
但是我读到不建议这样做。因为google可以随时更改格式。
这不是真的。这些cookie有两年的过期时间,所以它们可能不会被更改。想想看,如果谷歌真的改变了它们,数百万个网站的数据就会突然出错,所以他们没有很好的理由这样做。
当然,跟踪服务器端用户的最好方法是使用User ID特性,但是如果您的用户没有经过身份验证,那么使用现有的客户端ID是完全可以的。
更新:
回答你的第二个问题,时间戳是客户端ID的一部分,不要剥离它。时间戳用于使ID"更独特"。
- 使用jquery将mysql数据获取到新的表行中
- 使用createContainer将Meteor数据获取到React Native中时出现问题
- 创建按钮,根据表单字段中的数据获取特定的URL
- 将JSON API数据获取到html
- 将json数据获取到数组中
- 如何将具有多个标签的多个的所有数据获取到一个数组中
- 将状态的 URL 数据获取到模板中
- 如何在jquery中将xml解析数据获取为全局变量
- 在没有JQuery的情况下将JSON数据获取到TVML项目中
- Angular js如何将索引数据获取到另一个模板中
- 如何将PHP Post数据获取到jquery ajax请求中
- 使用javascript中.data()中存储的数据获取变量
- 无法将动态数据获取到 Jquery 饼图中
- 将节点.js neDB 数据获取到变量中
- 更新页面 JSON 数据获取下拉更改
- 将数据绑定到 kendo 下拉列表时,如何将 ajax 响应数据获取到变量
- 画布图像数据获取的值不超过 102,000 个
- 如何通过 JQuery JSON 数据获取 CheckBox(@Html.CheckBox) 的值
- 从html到jquery再到php,再从php到jquery到html,将数据传递到php文件并将数据获取到php文件中
- 如何将Jquery.get中的数据获取到Javascript中的一个变量中