Домены и файлы cookie – Веб-отслеживание (analytics.js)

Из этого руководства вы узнаете, как в analytics.js используются файлы cookie и как настроить междоменное отслеживание.

Общая информация

По умолчанию библиотека analytics.js использует всего один файл cookie, _ga, для сохранения уникального идентификатора клиента. Этот идентификатор представляет собой случайно сгенерированный номер. Он хранится в файле cookie и включается в каждое обращение (запрос), отправляемое в Google Analytics. На серверах Google Analytics он используется для расчета числа пользователей, сеансов и других данных о рекламной кампании.

Файл _ga представляет собой основной файл cookie, к которому можно получить доступ только в том домене, где выполняется код JavaScript. В некоторых случаях вам может понадобиться изменить способ установки cookie, который используется в Google Analytics. О том, как это сделать, рассказывается в этой статье.

Реализация

Стандартный фрагмент кода analytics.js создает трекер с помощью метода create:

ga('create', 'UA-XXXX-Y');

В результате создается следующий файл cookie:

  • название cookie – _ga;
  • домен cookie – домен веб-сайта без префикса www. в начале;
  • срок действия файла cookie – 24 месяца (2 года), и этот срок обновляется при каждой отправке обращения.

Как изменить настройки файлов cookie по умолчанию

Чтобы изменить какие-либо из значений по умолчанию, необходимо передать методу create объект конфигурации в качестве последнего параметра. Объект конфигурации – это обычный объект JavaScript, в котором каждое свойство представляет собой имя переопределяемого поля. Пример:

ga('create', 'UA-XXXX-Y', {
  'cookieName': 'new_cookie_name',
  'cookieDomain': 'mynew.domain.com',
  'cookieExpires': 60 * 60 * 24 * 28  // Time in seconds.
});

В результате стандартные настройки файла cookie будут измены на указанные значения.

Как задать автоматическую конфигурацию домена cookie

ga('create', 'UA-XXXX-Y', 'auto');

Автоматическая конфигурация домена cookie упрощает реализацию междоменного отслеживания. При использовании параметра auto файлы cookie автоматически записываются в домен самого высокого уровня из всех возможных. Например, в случае домена www.example.co.uk порядок выбора будет следующим:

  1. co.uk
  2. example.co.uk
  3. www.example.co.uk

Скрипт analytics.js не сможет записать файл cookie в co.uk, но сможет – в example.co.uk. Поскольку файл cookie был успешно записан в домен более высокого уровня, домен www.example.co.uk будет пропущен.

Как установить файлы cookie на локальном хосте

Иногда analytics.js запускается на веб-сервере, работающем на localhost. В этом случае для установки файлов cookie analytics.js вам нужно будет отключить домен cookie по умолчанию:

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

Или ещё проще:

ga('create', 'UA-XXXX-Y', 'none');

Несколько трекеров в одном домене

Библиотека analytics.js устанавливает единственный файл cookie с уникальным идентификатором клиента, и этот cookie должен использоваться всеми трекерами на странице. Если вы размещаете код analytics.js в нескольких субдоменах или в разных подкаталогах одного домена, сделайте следующее:

  • Настройте все трекеры так, чтобы файл cookie устанавливался в домен самого высокого уровня из всех возможных.
  • Удалите префикс www и точку (.) из названия домена.

Таким образом, если у вас сайт с двумя субдоменами – one.example.com и two.example.com, – оба трекера необходимо настроить следующим образом:

// Configuration for one.example.com
ga('create', 'UA-XXXX-Y', {'cookieDomain': 'example.com'});
// Configuration for two.example.com
ga('create', 'UA-XXXX-Y', {'cookieDomain': 'example.com'});

Как изменить срок действия cookie

Срок действия файла cookie обновляется при каждой отправке обращения или запроса на серверы Google Analytics: к текущему времени прибавляется значение cookieExpires (в секундах). Пример:

ga('create', 'UA-XXXX-Y', {
  'cookieExpires': 60
});

В этом случае действие файла cookie закончится через 60 секунд (1 минуту).

Если вы зададите для cookieExpires значение 0 (ноль секунд), этот cookie будет работать на основе сеанса, то есть его действие закончится с завершением текущей сессии браузера:

ga('create', 'UA-XXXX-Y', {
  'cookieExpires': 0
});

Как получить идентификатор клиента

Разработчикам не следует напрямую получать доступ к наборам cookie analytics.js, поскольку формат cookie может быть изменен без предупреждения. Это может привести к неправильной работе скрипта и искажению данных. Чтобы получить значение clientId, следует использовать команду get. Пример:

ga(function(tracker) {
  var clientId = tracker.get('clientId');
});

Когда библиотека analytics.js загрузится, будет выполнена функция, переданная в ga, и параметр tracker будет включать ссылку на объект трекера по умолчанию. Затем с помощью этого объекта трекера можно будет получить clientId.

Как отключить файлы cookie

Чтобы на разных страницах за пользователем сохранялся один и тот же уникальный идентификатор клиента, в библиотеке analytics.js по умолчанию используется единственный файл cookie. Однако вам может понадобиться использовать собственный механизм идентификации и отправлять данные напрямую в Google Analytics, не применяя файлы cookie.

Отключить установку файлов cookie можно следующим образом:

ga('create', 'UA-XXXX-Y', {
  'storage': 'none',
  'clientId': '35009a79-1a05-49d7-b876-2b884d0f825b'
});

Если вы запретили сохранять cookie, вам нужно будет предоставить собственный параметр clientId (если только вы не используете параметры междоменной связи).