当您通过运行创建一个新的 analytics.js 实例时
ga('create', 'UA-XXXXXXX-Y', {'cookieDomain': 'none'});
GA 创建唯一的客户端 ID。我想获取此 id 并将其用于我自己的目的,但我只能找到此参数的setter,但找不到任何获取它的 getter 方法。
GA 稍后在一个名为的参数中发送它 &cid=123123.232323
有谁知道我怎么得到它?
当您通过运行创建一个新的 analytics.js 实例时
ga('create', 'UA-XXXXXXX-Y', {'cookieDomain': 'none'});
GA 创建唯一的客户端 ID。我想获取此 id 并将其用于我自己的目的,但我只能找到此参数的setter,但找不到任何获取它的 getter 方法。
GA 稍后在一个名为的参数中发送它 &cid=123123.232323
有谁知道我怎么得到它?
Google 确实有一些关于获取客户端 id 的文档。
看起来像这样:
ga(function(tracker) {
var clientId = tracker.get('clientId');
});
我以前也用过这个:
ga.getAll()[0].get('clientId');
编辑:如果页面上有多个跟踪器,很可能在索引 0 处没有您想要的跟踪器,因此替代函数应如下所示:
function() {
try {
var trackers = ga.getAll();
var i, len;
for (i = 0, len = trackers.length; i < len; i += 1) {
if (trackers[i].get('trackingId') === "ID-PROPERTY") {
return trackers[i].get('clientId');
}
}
} catch(e) {}
return 'false';
}
其中 ID-PROPERTY 是您的财产的 ID(即 UA-XXXXX-XX)。
尽管作者明确表示他使用的是 Javascript,但其他人(如我)可能正在寻找一种从服务器端获取此信息的方法,如 PHP。
对于 GA4 和 UA,我发现您可以轻松检查 _ga cookie,如下所示:
_ga=GA1.3.475128143.1522318100
在上面的例子中,用户 ID 是“475128143.1522318100”。
所以,在 PHP 中我可以快速获取它:
$gaUserId = preg_replace("/^.+\.(.+?\..+?)$/", "\\1", @$_COOKIE['_ga']);
您还可以使用 Javascript 在一行中检索 cookie,而无需使用 ga() 函数:
var gaUserId = document.cookie.match(/_ga=(.+?);/)[1].split('.').slice(-2).join(".")
这对我有用。
首先创建 Google Analytics ga对象来创建跟踪器对象,通过向其传递“就绪回调”函数,然后使用跟踪器调用其他方法。
该GA()命令队列提供一个接口,这样做几乎所有你需要与analytics.js库做的一切。
“function(tracker)”是一个回调函数,当分析库完全加载并准备好与之交互时调用。使用默认跟踪器对象作为第一个参数调用该函数。如果没有创建默认跟踪器,第一个参数是/将返回未定义。
注意:当回调函数被调用时,所有的ga对象方法都可以使用。包括你想要的那个tracker.get('clientId')
将下面代码中的UA-XXXXX-Y替换为您来自 Google Analytics 的 UA 代码。
// Queues a tracker object for creation.
ga('create', 'UA-XXXXX-Y', 'auto');
// Once the tracker has been created, log the
// client ID to the console.
ga(function(tracker) {
console.log(tracker.get('clientId'));
/* Your other code here */
});
或者,对于第 1 行和第 2 行,使用下面的代码创建一个命名跟踪器。
// Queues a named tracker object for creation.
ga('create', 'UA-XXXXX-Y', 'auto', 'myTracker');
如果您使用的是 Google Tag Manager,则可以使用 User-Defined Variable -> Variable type: "1st-Party Cookie" -> Cookie Name = _ga。我们称之为“GA Cookie”。它将像 GA.1.1.123.123 这样存储值。
剪下“GA.1.1”,再做一个User-Defined Variable -> Variable Type:“Custom JavaScript”,写一个简单的JS函数:
function() {
var pattern = "GA1.1.";
var id = {{GA Cookie}}.substr(pattern.length);
return id;
}
它并不总是“GA1.1”,但它仍然有 5 个标志。你可以使用不同的变量,比如 var length = 5,但对我来说,它看起来像是一种神奇的数字。