Отслеживание времени сеанса пользователя с помощью Google Tag Manager

30 августа, 2020

Материал по отслеживанию времени сеанса пользователя с помощью Google Tag Manager.

На моем YouTube-канале есть видео по этой теме:

Как вы уже знаете, в основе принципа работы счетчиков веб-аналитики лежат различные уровни организации данных. Еще их называют областями действия:

  • хит (hit);
  • сессия (session);
  • пользователь (user).

Из хитов строятся сессии, которые привязываются к определенному пользователю, который имеет свою куку и уникальный идентификатор отслеживания. Все обращения, которые пользователь выполняет на сайте, имеют привязку по времени. Чуть ранее  мы познакомились со способом отслеживания точного времени каждого обращения с помощью пользовательского параметра Hit Timestamp.

Большинство отчетов в Google Analytics строятся на основе сеансов и тому, что в них происходило. Хоть они и содержат данные об общей продолжительности сессии, отчеты о конкретных событиях не имеют такой информации. По статистике мы никак не сможем понять, сколько прошло времени от захода пользователя на сайт до момента совершения нужного нам события, например, отправки формы или покупки. Понадобилось посетителю 2 минуты, 20 секунд или 15 минут на принятие решения? Подлинно неизвестно.

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

Начнем с создания трех переменных.

Перейдите в раздел Переменные и создайте пользовательскую переменную типа Переменная уровня данных с именем gtm.start:

Отслеживание времени сеанса пользователя с помощью GTM

Переменная уровня данных gtm.start

Название можно указать произвольное. В моем примере DL - gtm.start. Когда скрипт Google Tag Manager загружается на каждой странице, он заносит временную метку в dataLayer в gtm.start:

Отслеживание времени сеанса пользователя с помощью GTM

Временная метка в режиме отладки

Мы можем получить доступ к этой отметке времени, используя переменную уровня данных, которую мы создали:

Отслеживание времени сеанса пользователя с помощью GTM

Начальное значение, установленное Google Tag Manager

Переменная DL - gtm.start извлекает текущее значение начала сеанса. Теперь создадим переменную типа Основной файл cookie с именем gtm-session-start:

Отслеживание времени сеанса пользователя с помощью GTM

Переменная "Основной файл cookie"

Название можно указать произвольное. В моем примере Start Session Cookie. Эта переменная используется для получения значения cookie из браузера пользователя. Она будет использоваться в другой переменной, которую мы создадим на следующем шаге.

Теперь следует создать переменную типа Собственный код JavaScript с именем CJS – Session Seconds, в которую нужно добавить этот код:

, где в объявлении переменной var cookieStart после знака равно необходимо указать собственную переменную Start Session Cookie в фигурных скобках. В Google Tag Manager это будет выглядеть так:

Отслеживание времени сеанса пользователя с помощью GTM

Собственный код JavaScript

Данная переменная JavaScript получает время начала сохраненного сеанса из файла cookie браузера пользователя и вычитает его из текущего времени. Это значение - время, прошедшее с начала сеанса. Переменная будет постоянно обновляться при каждом вызове или использовании в тегах и триггерах, обеспечивая текущее время возврата.

В коде есть отсылка к переменной Start Session Cookie, которая будет возвращать время начала сеанса пользователя. Если это значение определено и имеет значение больше нуля, функция получит текущее время, и вычтет время начала сеансов. Результатом будет округленное число после деления на 1000, чтобы получить время в секундах, а не в миллисекундах.

Теперь, когда все переменные созданы, нам необходимо настроить пользовательский тег HTML, который будет отвечать за настройку времени начала сеанса в файле cookie браузера пользователя. Цель этого тега - сначала установить правильное время сеанса, а также убедиться, что оно не перезаписывается, когда пользователь перемещается по сайту, от страницы к странице.

Для создания тега перейдите на вкладку Теги и создайте тег типа Пользовательский HTML. Код для копирования и вставки:

В Google Tag Manager это будет выглядеть так:

Отслеживание времени сеанса пользователя с помощью GTM

Тег Пользовательский HTML

Триггер активации – Все страницы (All Pages).

Данный код ссылается на две переменных, которые мы создали ранее: Start Session Cookie и DL - gtm.start. Сначала он попытается получить время начала сеанса из файла cookie браузера Start Session Cookie. Если в настоящее время значение не определено (undefined), то предполагается, что это начало сеанса, и мы получаем время начала сеанса из Google Tag Manager (gtm.start). Такая проверка позволяет сохранить время сеанса (если оно установлено) и данное значение не переопределяется (обнуляется) при переходе пользователя по сайту.

После того, как текущая переменная времени была установлена, скрипт создаст файл cookie. Он запросит текущую дату и добавит к ней 30 минут. Это то же самое, что значение по умолчанию для времени ожидания сеанса Google Analytics.

Отслеживание времени сеанса пользователя с помощью GTM

Настройки сеанса - Время ожидания сеанса

Примечание: если вы обновили этот параметр в Google Analytics (Ресурс – Отслеживание – Настройки сеанса), установите в коде аналогичное значение.

Затем файлу присваивается имя, соответствующее переменной типа Основной файл cookie (gtm-session-start), которую мы уже настроили. Последняя строка устанавливает cookie в браузере со всеми значениями, которые мы определили.

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

На этом настройка отслеживания времени сеанса завершена. Теперь мы можем использовать переменную CJS – Session Seconds для создания условий активации триггеров, в тегах, и для отслеживания различных взаимодействий пользователей на вашем сайте. Например, когда пользователь кликает ссылку, начинает смотреть видео, оставляет заявку и т.д. Либо использовать триггер с каким-нибудь условием, завязанным на длительности сеанса. Например, активировать пользовательское событие и показать всплывающее окно через 30 секунд после начала сеанса.

Для завершения настройки отслеживания мы можем создать тег типа Google AnalyticsUniversal Analytics и передать эту информацию в отчеты:

Отслеживание времени сеанса пользователя с помощью GTM

Пример тега Google Analytics

В качестве примера я использую тег с типом Событие и триггер активации на отправку формы, а в ярлыке события передаю значение переменной CJS – Session Seconds, в которой хранится итоговое время длительности сеанса в секундах. Таким образом, я могу узнать, через какое время после начала сеанса пользователь отправил заявку.

Проверить корректность передачи данных можно с помощью режима отладки в GTM и отчетов В режиме реального времени в Google Analytics:

Отслеживание времени сеанса пользователя с помощью GTM

Google Analytics - Отчет "В режиме реального времени

Коды, размещенные в этом материале, взяты с сайта datarunsdeep.com.au

Получайте бесплатные уроки и фишки

По контекстной, таргетированной рекламе и аналитике