我尝试过使用analytics.js(Universal Analytics)通过前端(js)和后端(测量协议)。
通过前端(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。但我读到它是不推荐的。因为google可以随时更改格式。我读到的地方使用:
ga(function(tracker) {
var clientId = tracker.get('clientId');
});
但是我没有得到如何在后端使用此获取客户端ID?我想使用前端正在使用的相同客户端ID。
2。实际上客户端ID是什么?它是唯一的id还是unique_id.timestamp的组合。我应该从后端发送给GA什么?
答案 0 :(得分:6)
如果您查看使用推荐的Google Analytics JavaScript代码段的网站,您会发现它发送的客户端ID看起来像这样:
324729700.1423421585
存储在_ga
cookie中的值看起来像这样:
GA1.3.324729700.1423421585
注意最后两个部分是如何相同的,只有GA1.3
部分是不同的。
您需要关注的唯一部分是发送到Measurement Protocol的客户端ID,因此如果您可以从服务器访问_ga
Cookie,则应该删除GAX.X.
前缀,只发送其余内容。
但我读到它不推荐。因为谷歌可以随时更改格式。
这不是真的。这些cookie有两年的到期时间,因此它们可能不会被更改。考虑一下,如果谷歌确实改变了它们,数百万个网站的数据就会突然出错,所以没有充分的理由让他们这样做。
FWIW,跟踪用户服务器端的最佳方式是使用User ID功能,但如果您的用户未经过身份验证,那么使用现有的客户端ID就可以了。
<强>更新强>
要回答第二个问题,时间戳是客户端ID的一部分,请勿剥离它。时间戳用于帮助使ID更加独特&#34;。