Какие значения в _ga cookie?

Я использую универсальную аналитику. универсальная аналитика создает первый файл cookie _ga

 _ga=1.2.286403989.1366364567;

286403989 - это идентификатор клиента

1366364567 - отметка времени

что такое 1 а также 2 в _ga cookie?

2 ответа

Решение
_ga=1.2.286403989.1366364567;

1-е поле

Это номер версии. В случае, если формат cookie изменится в будущем. Кажется, будет установлено на 1 в данный момент. Тот, что выше, является старым форматом. Для новых файлов cookie это значение установлено на "GA1"

2-е поле

Это поле используется для определения правильного файла cookie в случае, если несколько файлов cookie настроены по разным путям или доменам.

По умолчанию cookie настроены по пути / и в домене на document.location.hostname (с удаленным префиксом www.).

Вы можете установить _ga cookie на sub.example.com и другой cookie на example.com. Так как API cookie в браузерах работает, невозможно определить, какой именно 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'
});

В этом случае печенье будет выглядеть примерно так;

_ga=1.4-2.XXXXXXXX.YYYYYYY

3-е поле

Это случайно сгенерированный идентификатор пользователя. Используется для идентификации разных пользователей.

4-е поле

Это отметка времени, когда cookie-файл был установлен для этого пользователя.

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

Это также используется для уникальной идентификации пользователей в случае коллизий userId.

Стоит отметить, что cookie не является API. В будущем это может полностью измениться. Google не рекомендует читать / писать файлы cookie _ga напрямую. Вы должны взаимодействовать с Google Analytics через одну из библиотек отслеживания, такую ​​как analytics.js. Там не так много пользы для этой информации, кроме любопытства.

Если вы читаете / пишете файл cookie, вы делаете это неправильно.

Я думаю, что это было полезно:)

/**
 * 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;
}

Написано на NodeJS с синтаксисом ES6. Может кому-нибудь помочь?

// 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',
});
Другие вопросы по тегам