如何获取Google Analytics客户端ID

问题描述 投票:0回答:6

当您通过运行创建analytics.js的新实例时

ga('create', 'UA-XXXXXXX-Y', {'cookieDomain': 'none'});

GA 创建一个唯一的客户端 ID。 我想获取这个 id 并将其用于我自己的目的, 但我只能找到这个参数的 setter 但找不到任何 getter 方法来获取它。

GA 稍后在名为

&cid=123123.232323

的参数中发送它

有谁知道如何获得吗?

javascript google-analytics
6个回答
104
投票

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)。


36
投票

虽然作者明确表示他使用的是 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(".")

这对我有用。


6
投票

首先创建 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 和用户识别


1
投票

如果您使用 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,但对我来说,它看起来像是一种神奇的数字。


0
投票

我认为 2024 年我们使用的情况发生了一些变化

ga.getAll()[0].b.data.w[':clientId'];
项目的一生突然开始崩溃,尝试了多种方法

唯一对我们有用的是

gaGlobal

您可以使用

gaGlobal.vid
直接获取id!


-1
投票
ga((tracker) => {
  console.log(tracker.get('trackingId'));
});
© www.soinside.com 2019 - 2024. All rights reserved.