【问题标题】:what are the values in _ga cookie?_ga cookie 中的值是什么?
【发布时间】:2013-04-12 17:13:51
【问题描述】:

我正在使用universal analytics。 Universal Analytics 创建第一方 cookie _ga

 _ga=1.2.286403989.1366364567;

286403989 是 clientId

1366364567 是时间戳

_ga cookie 中的 12 是什么?

【问题讨论】:

标签: cookies google-analytics analytics web-analytics analytics.js


【解决方案1】:
_ga=1.2.286403989.1366364567;

第一个字段

这是一个版本号。以防 cookie 格式在未来发生变化。目前似乎固定为1。上面是一种旧格式。较新的 cookie 将此值设置为“GA1”

第二个字段

此字段用于在不同路径或域中设置多个 cookie 时找出正确的 cookie。

默认情况下,cookie 设置在路径 / 和 document.location.hostname 上的域中(去掉 www. 前缀)。

您可以在 sub.example.com 上设置一个 _ga cookie,在 example.com 上设置另一个 cookie。因为浏览器上 cookie API 的工作方式无法判断您使用的是正确的 cookie。

所以第二个数字是域中的组件数(点分隔)。

  • 对于 sub.example.com,数字为 3
  • example.com 的数字是 2

路径默认为/,但您也可以通过将cookiePath 选项传递给ga.create 方法来更改它。如果您传递它,该字段将变为 2 个数字破折号分隔。第二个数字是路径中的数字斜线。

使用这些数字,analytics.js 脚本可以正确识别要使用的 cookie,以防设置多个 cookie。

例如: 想象一下,您有一个位于 sub1.sub2.example.com/folder1 的站点,如果您只想将 cookie 存储在您的站点上而不使其对其他子域或文件夹可见,您可以使用以下配置:

ga('create', 'UA-XXXX-Y', {
  'cookiePath': '/folder1/',
  'cookieDomain': 'sub1.sub2.example.com'
});

在这种情况下,cookie 看起来像这样;

_ga=1.4-2.XXXXXXXX.YYYYYYY

第三场

这是一个随机生成的用户 ID。用于识别不同的用户。

第四场

这是第一次为该用户设置 cookie 的时间戳。

new Date(1366364567*1000)
> Fri Apr 19 2013 06:42:47 GMT-0300 (BRT)

这也用于在 userId 冲突的情况下唯一标识用户。

值得一提的是,cookie 不是 API。将来它可能会完全改变。 Google 不建议直接读取/写入 _ga cookie。您应该通过analytics.js 等跟踪库之一与Google Analytics 进行交互。除了好奇之外,这些信息没有太多用处。

如果您直接读取/写入 cookie,则说明您做错了。

【讨论】:

  • @eduardo 是否有可能弄清楚第二个字段的信息应该是什么。当我现在尝试它时,我得到235523905
【解决方案2】:

我认为这会有所帮助。

/**
 * Get Google Analytics UID
 * @return int
 */
public function getGAUID() {
    $uid = 0;
    if ($_COOKIE['__utma'])
        list($hash_domain, $uid, $first_visit, $prew_visit, $time_start, $num_visits) = sscanf($_COOKIE['__utma'], '%d.%d.%d.%d.%d.%d');
    elseif ($_COOKIE['_ga'])
        list($c_format, $c_domain, $uid, $first_visit) = sscanf($_COOKIE['_ga'], 'GA%d.%d.%d.%d');

    return $uid;
}

【讨论】:

    【解决方案3】:

    用 ES6 语法用 NodeJS 编写。可以帮助别人吗?

    // Example: GA1.2.494614159.1574329064
    const gaCookieGeneration = ({ version = 1, domain, rootpath = '/' }) => {
      const subdomains = (domain.match(/./) || []).length + 1;
      const rootpathDirs = (rootpath.match(/\//) || []).length;
      const cookiePath = rootpathDirs > 1 ? `-${rootpathDirs}` : '';
      const uniqueId = Math.random().toString().substr(2, 9);
      const timeStamp = (+new Date()).toString().substr(0, 10);
      return `GA${version}.${subdomains}${cookiePath}.${uniqueId}.${timeStamp}`;
    };
    const gaCookie = gaCookieGeneration({
      domain: '.example.com',
    });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-12-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-09-30
      • 2021-02-20
      相关资源
      最近更新 更多