Дней с последнего сеанса в Google Analytics 4 с помощью Google Tag Manager

07 октября, 2024

В этом материале мы с вами разберем настройку, позволяющую воспроизвести логику определения дней с последнего сеанса в Google Analytics 4, как это было в раньше в Universal Analytics.

Этот материал является адаптацией руководства, опубликованного на medium.com. Его автор и создатель - Anatolii Shulhat.

Наверняка вы знаете, что в Google Analytics 4 нет встроенного измерения, позволяющего узнать, какое количество времени прошло с предыдущего сеанса пользователя. В Universal Analytics (GA3) такой отчет существовал. Он назывался Периодичность и давность (Frequency & Recency) и показывал не только общее количество сеансов, но и количество дней, которое прошло с предыдущего сеанса.

Дней с последнего сеанса (Days Since Last Sessions)

Чтобы воспроизвести похожее в GA4, Google предлагает использовать нам Google BigQuery. Однако большинство владельцев счетчиков не работают в облачном хранилище данных, а весь анализ проводят в интерфейсе Google Analytics 4. Да и сам SQL-запрос построить в BigQuery не так просто...

Анатолий разработал решение на базе Google Tag Manager, которое позволит дополнить статистику в нашем ресурсе GA4 новыми данными о сеансах пользователей. Об этом и пойдет речь далее.

Дополнительные материалы по сеансам Google Analytics 4:

Итак, решение, которое позволит осуществить желаемое, основано на шаблоне тега GTM и переносе времени с момента последнего сеанса на уровень данных (dataLayer). Оно называется Time Since Last Session for GA4. Для его установки перейдите в свой контейнер Google Tag Manager, а затем откройте Шаблоны - Поиск в галерее:

Поиск шаблона тега в галерее

В поиске введите Time Since Last Session for GA4:

Добавьте шаблон тега в свою рабочую область:

Добавление в рабочую область

Примечание: скачать шаблон можно и в GitHub.

Напоминаю, что все созданные сторонними разработчиками шаблоны в галерее сообщества являются их собственными решениями. Google не несет никакой ответственности за их использование. Для Time Since Last Session for GA4 требуются разрешения на доступ к глобальным переменным, настройкам и чтению файлов cookie, а также вывод данных в консоли разработчика и режиме предварительного просмотра Google Tag Manager. Если вы согласны с этим, нажмите кнопку Добавить.

Подтверждение

Данный шаблон станет доступен в вашем контейнере GTM. После этого перейдите в раздел Теги и выберите из пользовательских тегов Time Since Last Session for GA4:

Пользовательский тег "Time Since Last Session for GA4"

В открывшемся окне вы увидите следующие настройки тега:

Конфигурация тега

Ключевые настройки - это поля, которые передаются на уровень данных в момент совершения определенного события (. Когда пользователь просматривает страницу, в dataLayer передаются данные о текущем и предыдущем сеансе - их идентификаторы и порядковые номера:

  • current_session_id (текущий идентификатор сеанса);
  • previous_session_id (предыдущий идентификатор сеанса);
  • current_session_number (текущий номер сеанса);
  • previous_session_number (предыдущий номер сеанса);

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

  • mins_since_last_session (количество минут с последнего сеанса);
  • days_since_last_session (количество дней с последнего сеанса);
  • weeks_since_last_session (количество недель с последнего сеанса);
  • monthes_since_last_session (количество месяцев с последнего сеанса);

Поскольку Анатолий работал ранее с Adobe Analytics и разрабатывал это решение по причине перехода на Google Analytics 4, в его шаблоне заложена еще одна настройка - adobe_recency_buckets. Она позволяет получить аналогичные группы периодичности/давности сеансов из этой аналитической системы. Мы в дальнейшем использовать ее не будем, поэтому в настройках тега ее можно деактивировать. Просто знайте, что в это поле будут записаны следующие значения:

  • менее 1 дня
  • 1–3 дня
  • от 3 до 7 дней
  • от 7 до 14 дней
  • от 14 дней до 1 месяца
  • более 1 месяца

Для тех, кто ностальгирует по Universal Analytics, автор добавил похожие дни с момента последней сессии для Google Analytics 4. За это отвечает поле universal_recency_buckets. Для него Анатолий добавил следующие интервалы (согласно функционалу предыдущей версии Google Analytics):

  • 0
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8–14
  • 15–30
  • 31–60
  • 61–120
  • 121–364
  • 365+

В сам тег заложены дополнительные

  • No empty string in the main event (включив эту опцию, все пустые переменные будут заполнены значением Нет данных предыдущего сеанса / No previous session data);
  • Disable QA dataLayer events (выключив эту настройку, на шкале событий в режиме отладки GTM будут отображаться дополнительные события, позволяющие осуществить контроль качества передаваемых данных в dataLayer).

Дополнительные опции dataLayer

Возможно до 6 дополнительных событий:

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

Дополнительные события с отключенной опцией "Disable QA dataLayer events"

Самое главное, что вам нужно для генерации всех описанных выше полей, это всего две переменные - идентификаторы предыдущей и текущей сессии. По сути, идентификатор сеанса в Google Analytics 4 - это временная метка начала сеанса. А разница между двумя временными метками (текущей сессии и предыдущей сессии) - то, что нам нужно для создания требуемого измерения.

Google позволяет использовать gtag.js API для получения текущей сессии, но предыдущую сессию, если у вас нет BigQuery и серверного контейнера Google Tag Manager, просто так получить нельзя. Поэтому нам необходимо создать логику, которая будет сохранять текущий сеанс пользователя в файле cookie и при запуске его нового сеанса сохранять как новый, так и предыдущий сеансы.

Вот краткое описание работы пользовательского тега Time Since Last Session for GA4:

  1. он извлекает идентификатор и номер текущего сеанса через API gtag;
  2. он считывает пользовательский файл cookie, который должен хранить как предыдущие, так и текущие сеансы;
  3. если не записан ни предыдущий, ни текущий сеансы -> записывается текущий сеанс;
  4. если сессия, сохраненная как текущая, не совпадает с текущей сессией, возвращаемой API gtag - мы переопределяем сессии. Та, которая была сохранена как текущая, становится предыдущей, а новая сессия пользователя сохраняется как текущая;
  5. после того, как скрипт обработал значения в файлах cookie, он вычисляет разницу между двумя временными метками сеанса и преобразует секунды в необходимые значения времени, или сегменты, которые знакомы по другим аналитическим системам. Эти данные записываются в переменные уровня данных mins_since_last_session, days_since_last_session, weeks_since_last_session и monthes_since_last_session соответственно;
  6. последним шагом должно сработать событие since_last_session_data со всеми вышеописанными параметрами на уровне данных.

Результатом этого пользовательского шаблона является событие since_last_session_data и заполненный dataLayer (когда нет предыдущих данных):

Событие since_last_session_data с dataLayer (нет предыдущих данных)

Шаблон работает через файлы cookie. Это означает, что если пользователь новый, то о нем нет никакой информации. Поэтому в большинстве переменных будет значение No previous session data или оставить поля пустыми (см. настройку выше).

И аналогичное событие с тем же уровнем данных, когда данные о предыдущем сеанса пользователя есть:

Событие since_last_session_data с dataLayer (есть предыдущие данные)

В переменной уровня данных days_since_last_session будет отображаться дней с последнего сеанса. Именно это значение мы и будем передавать в Google Analytics 4.

Таким образом, итоговые настройки тега, которые вы можете задать для корректного отслеживания дней с последнего сеанса, будут такими:

  • current_session_id, previous_session_id, current_session_number, previous_session_number и days_since_last_session - активные поля на уровне данных;
  • No empty string in the main event и Disable QA dataLayer events - активные дополнительные настройки.

Итоговые настройки тега

Задайте название тегу и сохраните его. Триггер можно не указывать. Затем перейдите в раздел Переменные и создайте пользовательскую переменную типа Переменная уровня данных.

Переменная уровня данных days_since_last_session

Сохраните ее. Теперь создайте триггер типа Специальное событие с названием события since_last_session_data. Именно оно отображается на шкале события после активации шаблона тега. И именно этот триггер будет являться условием активации тега события Google Analytics 4, отправляя page_view с дополнительным параметром события.

Как вы уже догадались, вам необходимо скорректировать свой тег Google, задав в нем параметр конфигурации send_page_view - false.

Параметр конфигурации send_page_view - false в теге Google

Это нужно для того, чтобы событие page_view не отправлялось в Google Analytics 4 два раза и данные в счетчике по просмотрам страницы не дублировались. Еще необходимо в расширенных настройках тега Google задать последовательность активации тегов, чтобы шаблон тега загружался после тега Google:

Последовательность активации тегов

Сохраните настройки в теге Google. Теперь создайте тег типа Google Аналитика: событие GA4 и задайте следующие настройки:

Настройки тега события GA4

  • ваш идентификатор ресурса Google Analytics 4;
  • название события - page_view;
  • параметр события - days_since_last_session (например);
  • значение параметра события - переменная уровня данных, созданная на предыдущем шаге (в моем примере - это days_since_last_session).

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

Таким образом, в самой простейшей настройке вам необходимо добавить/обновить следующие теги:

Теги для определения дней с последнего сеанса в GA4

Сохраните изменения и опубликуйте контейнер Google Tag Manager. Все, что вам осталось сделать - это создать в Google Analytics 4 специальный параметр для отображения данных о количестве дней с последней сессии в интерфейсе.

Задайте ему следующие настройки:

  • Название параметра - Дней с последнего сеанса (произвольное)
  • Область действия - Событие
  • Параметр события - days_since_last_session

Специальный параметр "Дней с последнего сеанса"

Сохраните специальный параметр. После этого может пройти до 24 часов прежде, чем данные появятся в отчетах Google Analytics 4. Как только статистика начнет собираться и поступать в GA4, вы можете построить Исследование в свободной форме, выбрав нужные вам параметры и показатели. Если вы желаете сформировать схожий с Universal Analytics отчет, тогда выберите:

  • Параметр - Дней с последнего сеанса
  • Показатели - Сеансы и Просмотры
  • Фильтр на событие page_view, поскольку вы передаете дополнительный параметр именно в этом событии

Дней с последнего сеанса в Google Analytics 4

Со временем, когда данных будет становиться все больше и больше, вы будете видеть и другие интервалы по дням.

Автор шаблона тега изначально заложил логику интервалов дней с последнего сеанса именно такую, как это было ранее в Google Analytics 3 (0, 1, 2, 3, .... 8–14, 15–30, 31–60, 61–120, 121–364, 365+). Однако если вам нужно реализовать собственные интервалы по количеству дней, вы можете воспользоваться пользовательской переменной типа Таблица регулярных выражений, а в качестве входной переменной задать переменную уровня данных days_since_last_session:

Настройка собственных интервалов по дням с последней сессии

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

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