如何获取谷歌分析客户端ID

how to get the Google analytics client ID

本文关键字:客户端 ID 谷歌 何获取 获取      更新时间:2023-09-26

当您通过运行创建analysis.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-XXXX-XX)。

尽管作者明确表示他正在使用Javascript,但其他人(比如我)可能正在寻找从服务器端获取这些信息的方法,比如PHP。

对于GA4和UA,我发现你可以很容易地检查_ga cookie,它看起来像:

_ga=GA1.3.475128143.1522318100

在上面的示例中,用户id是"0";475128143.1522318100";。

因此,在PHP中,我可以很快将其获取为:

$gaUserId = preg_replace("/^.+'.(.+?'..+?)$/", "''1", @$_COOKIE['_ga']);

您也可以使用Javascript在一行中检索cookie,而无需使用ga()函数:

var gaUserId = document.cookie.match(/_ga=(.+?);/)[1].split('.').slice(-2).join(".")

这对我有用。

首先创建Google Analyticsga对象,通过向其传递"准备回调"函数,然后使用跟踪器调用其他方法。

ga()命令队列提供了一个接口,用于执行analystics.js库所需的几乎所有操作。

";功能(跟踪器)"是一个回调函数,在分析库完全加载并准备好与之交互时调用。调用该函数时,将默认跟踪器对象作为其第一个参数。如果没有创建默认跟踪器,则第一个参数为/将返回undefined。

注意:当调用回调函数时,所有ga对象方法都可以使用。包括您想要的跟踪器.get('clientId')

将下面代码中的UA-XXXX-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');

谷歌官方文档:Cookie和用户标识

如果您使用谷歌标签管理器,您可以使用用户定义变量->变量类型:;第一方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个迹象。你可以使用不同的变量,比如varlength=5,但对我来说,它看起来像一个幻数。

ga((tracker) => {
  console.log(tracker.get('trackingId'));
});