当您通过运行创建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 对象来创建一个 tracker 对象,通过向其传递一个 “Readycallback” 函数,然后使用跟踪器调用其他方法。
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 官方文档:Cookie 和用户识别
如果您使用 Google 跟踪代码管理器,则可以使用用户定义变量 -> 变量类型:“第一方 Cookie” -> Cookie 名称 = _ga。我们称之为“GA Cookie”。它将像这样存储值 GA.1.1.123.123.
要删除“GA.1.1”,再制作一个用户定义变量 -> 变量类型:“自定义 JavaScript”并编写一个简单的 JS 函数:
function() {
var pattern = "GA1.1.";
var id = {{GA Cookie}}.substr(pattern.length);
return id;
}
它并不总是“GA1.1”,但仍然有 5 个标志。您可以使用不同的变量,例如 var length = 5,但对我来说,它看起来像是一种神奇的数字。
我认为 2024 年我们使用的情况发生了一些变化
ga.getAll()[0].b.data.w[':clientId'];
项目的一生突然开始崩溃,尝试了多种方法
唯一对我们有用的是
gaGlobal
您可以使用
gaGlobal.vid
直接获取id!
ga((tracker) => {
console.log(tracker.get('trackingId'));
});