Настройка Session ID в Google Analytics

Newser

Moderator
Команда форума
Регистрация
5 Фев 2019
Сообщения
291
Материал про настройку идентификатора сессии (Session ID) в Google Analytics с помощью Google Tag Manager.

Как вы уже знаете, в Google Analytics существуют различные области действия - Товар, Хит (обращение), Сеанс и Пользователь. Хиты привязываются к сеансам, которые принадлежат определенному пользователю, который имеет свою куку и уникальный идентификатор в системе.

Большинство отчетов в Google Analytics строятся на основе сеансов. По умолчанию в них нет детальной статистики по времени совершения какого-либо хита (с точностью до секунды). Но мы можем создать пользовательский параметр с областью действия Hit, который будет показывать точное время просмотра страницы/экрана, совершения транзакции, просмотра видео, скачивания файла, скроллинга или любого другого события.

Аналогично обстоят дела и с уникальным идентификатором пользователя (он же Client ID). С помощью одного из способов, представленного в этой статье, мы можем настроить передачу Client ID в Google Analytics в качестве пользовательского параметра с областью действия Пользователь или Сеанс. Тогда в отчетах Google Analytics вы сможете добавлять этот параметр в стандартные отчеты или специальные в качестве основного и дополнительного параметра и смотреть детально статистику конкретного пользователя (браузера/устройства!).

Еще материалы про уникальный идентификатор пользователя (Client ID):
Таким образом, у нас есть специальные параметры:
  • Hit Timestamp, который позволяет получать точное время обращения любого события пользователя;
  • Client ID, который дает возможность анализировать отчеты в разрезе уникального устройства и браузера пользователя.
Если построить специальный отчет, это будет выглядеть так:

Session ID в Google Analytics
Client ID и Hit Timestamp

На скриншоте синим и зеленым выделены хиты (просмотры страниц) одного и того же пользователя с Client ID (256538244.1532446839), но которые были совершены в разные сеансы, поскольку 3 состоялись в интервале с 13 до 14 часов, а еще один в 16:14:59.

Что подтвердить эту информацию, можно перейти в отчет Статистика по пользователям и посмотреть перечень хитов этого пользователя:

Session ID в Google Analytics
Статистика по пользователям

Как видим, данные с хитами по карточке пользователя сходятся со статистикой специальных параметров. Мы можем создать еще один специальный параметр, который будет называться Session ID и иметь область действия Сеанс. С его помощью можно связать хиты в сеансы и всегда знать, какое количество обращений было совершено в каждый из сеансов пользователя.

В качестве идентификатора сеанса будет использоваться случайная строка, которая отправляется при каждом просмотре страницы в Google Analytics. Поскольку вы отправляете его в специальный параметр в рамках сеанса, только последнее отправленное вами значение будет применяться к обращениям в сеансе.

Выполнять настройку Session ID будем с помощью Google Tag Manager. Для начала вам необходимо создать специальный параметр с областью действия Сеанс.

Session ID в Google Analytics
Специальный параметр Session ID
Сохраните параметр и запомните его индекс.

Session ID в Google Analytics
Индекс специального параметра

Затем перейдите в 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 в Google Analytics
Режим предварительного просмотра
Есть еще более интересный формат 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
Тег Google Analytics - Дополнительные настройки - Специальные параметры

Используя тег просмотра страницы, вы будете отправлять идентификатор сеанса (Session ID) при каждой загрузке страницы. А при выборе области действия Сеанс, когда в одном сеансе задано два значения и одним порядковым номером, приоритет отдается тому, которое задано последним! Это значение применяется ко всем обращениям на протяжении сеанса.

Сохраните настройки. Проверить корректность передачи данных можно с помощью специальных расширений для браузера или режима предварительного просмотра.

Session ID в Google Analytics
Активированный тег и значения его параметров

Если сделать нижеописанное в этой статье, то вы получите такой отчет в Google Analytics:

Session ID в Google Analytics
Отчет в Google Analytics с Session ID

Дополнительно: в случае, если у вас на сайте есть личный кабинет или возможность определять пользователей в момент авторизации под своей учетной записью, то вы можете связывать воедино обращения, сеансы и Client ID с помощью четвертого специального параметра User ID (подробнее в этой статье).

Session ID в Google Analytics
User ID, Client ID, Session ID, Hit ID

Идентификатор User ID (на скриншоте = 84) хранится в базе данных сайта и принадлежит уникальному пользователю (человеку, не браузеру!). Этот пользователь заходил с разных браузеров и устройств, в результате которых создалось 2 Client ID. За это время он совершил 3 сеанса (Session ID) и n-ое количество хитов.

Таким образом, после настройки четырех специальных параметров в Google Analytics, у вас будет полная картина на всех уровнях организации данных.

Источник
 
Сверху