Настройка Session ID в Google Analytics
Материал про настройку идентификатора сессии (Session ID) в Google Analytics с помощью Google Tag Manager.
Как вы уже знаете, в Google Analytics существуют различные области действия - Товар, Хит (обращение), Сеанс и Пользователь. Хиты привязываются к сеансам, которые принадлежат определенному пользователю, который имеет свою куку и уникальный идентификатор в системе.
Большинство отчетов в Google Analytics строятся на основе сеансов. По умолчанию в них нет детальной статистики по времени совершения какого-либо хита (с точностью до секунды). Но мы можем создать пользовательский параметр с областью действия Hit, который будет показывать точное время просмотра страницы/экрана, совершения транзакции, просмотра видео, скачивания файла, скроллинга или любого другого события. Подробнее об это вы можете прочитать в соответствующем материале.
Аналогично обстоят дела и с уникальным идентификатором пользователя (он же Client ID). С помощью одного из способов, представленного в этой статье, мы можем настроить передачу Client ID в Google Analytics в качестве пользовательского параметра с областью действия Пользователь или Сеанс. Тогда в отчетах Google Analytics вы сможете добавлять этот параметр в стандартные отчеты или специальные в качестве основного и дополнительного параметра и смотреть детально статистику конкретного пользователя (браузера/устройства!).
Еще материалы про уникальный идентификатор пользователя (Client ID):
- Cookie файлы в Google Analytics
- ClientID в Яндекс.Метрике
- Самый простой способ передачи Client ID в Google Analytics
Таким образом, у нас есть специальные параметры:
- Hit Timestamp, который позволяет получать точное время обращения любого события пользователя;
- Client ID, который дает возможность анализировать отчеты в разрезе уникального устройства и браузера пользователя.
Если построить специальный отчет, это будет выглядеть так:
На скриншоте синим и зеленым выделены хиты (просмотры страниц) одного и того же пользователя с Client ID (256538244.1532446839), но которые были совершены в разные сеансы, поскольку 3 состоялись в интервале с 13 до 14 часов, а еще один в 16:14:59.
Что подтвердить эту информацию, можно перейти в отчет Статистика по пользователям и посмотреть перечень хитов этого пользователя:
Как видим, данные с хитами по карточке пользователя сходятся со статистикой специальных параметров. Мы можем создать еще один специальный параметр, который будет называться Session ID и иметь область действия Сеанс. С его помощью можно связать хиты в сеансы и всегда знать, какое количество обращений было совершено в каждый из сеансов пользователя.
В качестве идентификатора сеанса будет использоваться случайная строка, которая отправляется при каждом просмотре страницы в Google Analytics. Поскольку вы отправляете его в специальный параметр в рамках сеанса, только последнее отправленное вами значение будет применяться к обращениям в сеансе.
Выполнять настройку Session ID будем с помощью Google Tag Manager. Для начала вам необходимо создать специальный параметр с областью действия Сеанс.
Сохраните параметр и запомните его индекс.
Затем перейдите в Google Tag Manager и создайте пользовательскую переменную типа Собственный код JavaScript. Вставьте нижеописанный код (оригинал):
1 2 3 4 5 6 7 8 9 10 11 |
function () { var d = new Date().getTime(); if (typeof performance !== 'undefined' && typeof performance.now === 'function'){ d += performance.now(); } return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) { var r = (d + Math.random() * 16) % 16 | 0; d = Math.floor(d / 16); return (c === 'x' ? r : (r & 0x3 | 0x8)).toString(16); }); } |
Вы можете добавить в переменную более простой код (оригинал):
1 2 3 |
function() { return new Date().getTime() + '.' + Math.random().toString(36).substring(5); } |
Отличие состоит в том, какой вы получите результат. Первый код генерирует уникальный, случайный идентификатор сеанса вида xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx. Второй берет метку времени обращения в формате Unix, добавляет точку и случайную последовательность в виде букв и цифр. Поскольку используется Unix-время (с точностью до миллисекунд), то маловероятна ситуация, при которой будут созданы два одинаковых идентификатора сеанса.
Результат в режиме отладке Google Tag Manager:
Есть еще более интересный формат Session ID, при котором в переменной отображается дата сеанса и случайный идентификатор сеанса через вертикальный слэш:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
function () { var currentDate = (function () { var today = new Date(); var dd = today.getDate().toString(); var mm = (today.getMonth()+1).toString(); var yyyy = today.getFullYear().toString(); if (dd.length<2) { dd = '0' + dd; } if (mm.length<2) { mm = '0' + mm; } return dd + mm + yyyy; }) (); var randomNumberString = Math.floor((Math.random() * 10000000) + 1).toString(); var randomEightDigitNumber = (function () { if (randomNumberString.length === 8) { return randomNumberString; } else { while (randomNumberString.length < 8) { randomNumberString = '0' + randomNumberString; } return randomNumberString; } }) (); return currentDate + '|' + randomEightDigitNumber; } |
Вы можете использовать любой из представленных способов для своих проектов. Я применяю последний, поскольку в нем есть еще и текущая дата в формате ЧЧММГГГ.
На последней стадии настройки в теге Google Analytics с типом отслеживания Просмотр страницы добавьте специальный параметр в разделе Дополнительные настройки - Специальные параметры. Задайте номер индекса в поле Индекс, который вы получили на этапе создания специального параметра в интерфейсе Google Analytics. В Значение параметра установите значение созданной переменной на предыдущем шаге.
Используя тег просмотра страницы, вы будете отправлять идентификатор сеанса (Session ID) при каждой загрузке страницы. А при выборе области действия Сеанс, когда в одном сеансе задано два значения и одним порядковым номером, приоритет отдается тому, которое задано последним! Это значение применяется ко всем обращениям на протяжении сеанса.
Сохраните настройки. Проверить корректность передачи данных можно с помощью специальных расширений для браузера или режима предварительного просмотра.
Если сделать нижеописанное в этой статье, то вы получите такой отчет в Google Analytics:
Дополнительно: в случае, если у вас на сайте есть личный кабинет или возможность определять пользователей в момент авторизации под своей учетной записью, то вы можете связывать воедино обращения, сеансы и Client ID с помощью четвертого специального параметра User ID (подробнее в этой статье).
Идентификатор User ID (на скриншоте = 84) хранится в базе данных сайта и принадлежит уникальному пользователю (человеку, не браузеру!). Этот пользователь заходил с разных браузеров и устройств, в результате которых создалось 2 Client ID. За это время он совершил 3 сеанса (Session ID) и n-ое количество хитов.
Таким образом, после настройки четырех специальных параметров в Google Analytics, у вас будет полная картина на всех уровнях организации данных.