Чтобы сообщить Google Аналитике, что два обращения относятся к одному и тому же пользователю, вместе с каждым из этих обращений отправляется уникальный идентификатор пользователя.
Библиотека analytics.js передает такие идентификаторы с помощью поля Client ID – уникальной строки, которая создается случайным образом и хранится в файлах cookie браузера. Это позволяет ассоциировать с пользователем его последующие посещения того же сайта.
По умолчанию библиотека analytics.js сохраняет идентификатор клиента в одном собственном файле cookie _ga
, однако его название, домен и срок действия можно изменить. Кроме того, analytics.js создает и другие файлы cookie: _gid
, AMP_TOKEN
и_gac_<property-id>
. В них хранятся другие идентификаторы, созданные случайным образом, и сведения о кампании, связанные с пользователем.
Файлы cookie позволяют идентифицировать уникальных пользователей в разных сеансах, но не при смене браузеров или устройств. Если на вашем сайте есть собственная система аутентификации, то с помощью функции User ID вы можете более точно идентифицировать пользователей на всех устройствах.
В этом руководстве рассказывается, как изменить настройки файлов cookie и как реализовать более точный учет действий пользователей в разных сеансах с помощью функции User ID.
Настройка полей файлов cookie
В таблице ниже показаны значения полей по умолчанию в файлах cookie библиотеки analytics.js.
Название поля | Тип значения | Значение по умолчанию |
---|---|---|
cookieName |
Текст | _ga |
cookieDomain |
Текст |
Результат следующего выражения JavaScript:document.location.hostname
|
cookieExpires |
Целое число | 63072000 (два года в секундах) |
cookieUpdate |
Логическое значение |
true
|
cookieFlags |
Текст |
|
Чтобы изменить какие-либо из этих значений, укажите их в аргументе fieldObject
команды create
. Пример:
ga('create', 'UA-XXXXX-Y', {
'cookieName': 'gaCookie',
'cookieDomain': 'blog.example.co.uk',
'cookieExpires': 60 * 60 * 24 * 28 // Time in seconds.
'cookieUpdate': 'false',
'cookieFlags': 'SameSite=None; Secure',
});
Чаще всего для файлов cookie задают поле cookieDomain
, поэтому команда create
принимает поле cookieDomain
как необязательный третий аргумент:
ga('create', 'UA-XXXXX-Y', 'blog.example.co.uk');
Автоматическая конфигурация домена cookie
В рекомендованном варианте тега Google Аналитики поле cookieDomain
имеет значение 'auto'
.
ga('create', 'UA-XXXXX-Y', 'auto');
Если указать значение 'auto'
для поля cookieDomain
, включается автоматическая настройка доменов для файлов cookie (скрипт analytics.js автоматически выбирает наилучший домен).
При этом файлам cookie _ga
автоматически назначается домен наивысшего уровня из возможных. Например, если ваш сайт расположен по адресу blog.example.co.uk
, analytics.js выберет в качестве домена файлов cookie .example.co.uk
. Кроме того, если библиотека analytics.js определит, что вы используете локальный сервер (localhost
), то полю cookieDomain
будет автоматически присвоено значение 'none'
.
Срок действия файла cookie
Срок действия файла cookie обновляется при каждой отправке обращения на серверы Google Аналитики: к текущему времени прибавляется значение поля cookieExpires
. Таким образом, если пользователь заходит на сайт раз в месяц, а поле cookieExpires
имеет значение по умолчанию (2 года), то срок действия файла cookie не закончится никогда.
Если вы зададите для поля cookieExpires
значение 0
(ноль секунд), то файл cookie будет действовать только в течение текущего сеанса.
Обновление файла cookie
Если для cookieUpdate
задано значение true
(значение по умолчанию), analytics.js будет обновлять файлы cookie при каждой загрузке страницы. При этом срок действия файла cookie будет установлен по самому последнему посещению сайта. Таким образом, если срок действия файла cookie равен одной неделе и пользователь заходит на сайт с помощью одного браузера каждые пять дней, срок действия файла cookie будет обновляться при каждом посещении и, следовательно, не истечет никогда.
Если задано значение false
, файлы cookie не обновляются при каждой загрузке страницы. Срок действия файла cookie задается относительно первого посещения сайта.
Метки файлов cookie
Дополнительные метки, которые добавляются при создании файлов cookie. Метки необходимо перечислить через точку с запятой.
Как получить из файла cookie идентификатор клиента
Не рекомендуется напрямую обращаться к файлам cookie, создаваемым библиотекой analytics.js, поскольку формат этих файлов может измениться в дальнейшем. Вместо этого используйте операцию readyCallback
, чтобы дождаться завершения загрузки analytics.js, затем получите значение clientId
, сохраненное в объекте отслеживания.
ga(function(tracker) { var clientId = tracker.get('clientId'); });
Как отключить файлы cookie
Если вы хотите использовать собственную систему для хранения идентификаторов между сеансами (например, localStorage
или Service Worker) без использования файлов cookie, вы можете отключить создание файлов cookie библиотекой analytics.js, назначив полю storage
значение 'none'
.
ga('create', 'UA-XXXXX-Y', { 'storage': 'none' });
Если вы сохраняете значения поля clientId
самостоятельно, обязательно задайте параметр cliendId
при создании объекта отслеживания.
ga('create', 'UA-XXXXX-Y', { 'storage': 'none', 'clientId': '76c24efd-ec42-492a-92df-c62cfd4540a3' });
Чтобы отключить файлы cookie _gac_<property-id>
, задайте полю storeGac
значение false
с помощью команды create
:
ga('create', 'UA-XXXXX-Y', {
storeGac: false,
});
Хранение идентификаторов клиентов в localStorage
В следующем примере кода показано, как изменить тег JavaScript, чтобы идентификаторы клиентов сохранялись в localStorage
, а не в файлах cookie:
var GA_LOCAL_STORAGE_KEY = 'ga:clientId';
if (window.localStorage) {
ga('create', 'UA-XXXXX-Y', {
'storage': 'none',
'clientId': localStorage.getItem(GA_LOCAL_STORAGE_KEY)
});
ga(function(tracker) {
localStorage.setItem(GA_LOCAL_STORAGE_KEY, tracker.get('clientId'));
});
}
else {
ga('create', 'UA-XXXXX-Y', 'auto');
}
ga('send', 'pageview');
User ID
User ID – это уникальный постоянный номер, который присваивается пользователю и позволяет анонимно идентифицировать его на разных устройствах и в разных сеансах. Подробнее о преимуществах User ID…
Вот как настроить функцию User ID с помощью analytics.js:
- Присвойте каждому пользователю, вошедшему в аккаунт, уникальный постоянный анонимный строковый идентификатор (как правило, он извлекается из системы аутентификации).
- Настройте User ID в коде объекта отслеживания:
ga('create', 'UA-XXXXX-Y', 'auto', { userId: USER_ID }); ga('send', 'pageview');
Аутентификация после загрузки страницы
При создании одностраничных приложений и других динамических сайтов, где аутентификация пользователя выполняется после загрузки страницы, нельзя задавать User ID при создании объекта отслеживания.
Как только значение станет известно, его нужно добавить в объект отслеживания с помощью команды set
.
// Creates the tracker and sends a pageview as normal // since the `userId` value is not yet known. ga('create', 'UA-XXXXX-Y', 'auto'); ga('send', 'pageview'); // At a later time, once the `userId` value is known, // sets the value on the tracker. ga('set', 'userId', USER_ID); // Setting the userId doesn't send data to Google Analytics. // You must also use a pageview or event to send the data. ga('send', 'event', 'authentication', 'user-id available');
При этом обращения, отправленные, пока значение поля userId
не определено, не будут содержать это значение. Чтобы связывать эти обращения с пользователями, в Google Аналитике применяется объединение сеансов.