我对_gid和_ga进行过多调查。据我所知,它们的定义是:
_ga:用于识别唯一身份用户,并在2年后过期。
_gid:用于识别唯一身份用户,并在24小时后过期。
示例:
_ga:GA1.3.292651669.1502954402 _gid:GA1.3.974792242.1509957189
从what are the values in _ga cookie?开始,我知道_ga中每个字段的含义。对于_gid来说也是一样的。
但我不知道如何生成第三个字段,随机生成的用户ID(对于_ga:292651669和_gid:974792242)。
我试图删除_ga和amp; _gid和我得到了新的情侣_ga:GA1.3.2097663971.1509959880和_gid:GA1.3.1180999143.1509959880。两者的第三个字段都改变了。那么他们如何生成以及Google如何通过他们识别用户。假设我今天用几个_gid和_ga打开浏览器,明天,我清除所有cookie,ga将创建新的couplw(_gid,_ga)。这意味着我今天在不同的明天是我。
请帮帮我。
谢谢&最诚挚的问候,
詹姆斯
答案 0 :(得分:4)
以下是analytics.js发布2017-09-21中生成随机ID的代码。
它是基于userAgent
对象的当前时间cookie
,referrer
,history.length
和window
的随机值。
var O = window;
// var M = document;
// Stack Overflow doesn't allow cookie access in sandbox, so lets fake it:
var M = [];
M.cookie = "cookieName=someValue";
var hd = function() {
return Math.round(2147483647 * Math.random())
}
function La(a) {
var b = 1, c;
if (a)
for (b = 0,
c = a.length - 1; 0 <= c; c--) {
var d = a.charCodeAt(c);
b = (b << 6 & 268435455) + d + (d << 14);
d = b & 266338304;
b = 0 != d ? b ^ d >> 21 : b
}
return b
}
var ra = function() {
for (var a = O.navigator.userAgent + (M.cookie ? M.cookie : "") + (M.referrer ? M.referrer : ""), b = a.length, c = O.history.length; 0 < c; )
a += c-- ^ b++;
return [hd() ^ La(a) & 2147483647, Math.round((new Date).getTime() / 1E3)].join(".")
}
document.getElementById('output').innerText = ra();
<h3>Output:</h3>
<pre id="output"></pre>