Определение нового и вернувшегося пользователя в Google Analytics 4 с помощью Google Tag Manager

21 июня, 2023

Простой, но интересный пример определения нового и вернувшегося пользователя в Google Analytics 4 с помощью Google Tag Manager.

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

Новые пользователи (New Users)

Новые пользователи (New Users) - пользователи, которые впервые взаимодействовали с вашим сайтом или мобильным приложением (у которых ранее не было сеансов). Фактически, это означает, что новым пользователем за выбранный диапазон дат в GA4 считается тот посетитель вашего сайта, у которого номер сеанса (параметр ga_session_number) равен 1.

Когда начинается сеанс, Google автоматически регистрирует событие session_start. Затем через это событие session_start создаются идентификатор сессии (ga_session_id) и номер сеанса (ga_session_number).

Событие session_start и номер сеанса 1 (новый пользователь)

А поскольку номер сеанса равен 1 (ga_session_number = 1), то это означает, что пользователь на ваш сайт зашел впервые. А раз он зашел впервые, значит GA4 зарегистрирует событие first_visit. Получается, что показатель Новые пользователи (New Users) измеряется количеством (суммой) новых уникальных идентификаторов пользователей, создаваемых в первый заход на ваш сайт в момент регистрации события first_visit (для мобильных приложений - first_open).

Под уникальными идентификаторами пользователей подразумевается идентификатор/код устройства (Client ID), основанный на отслеживании файлов cookie Google Analytics, а также идентификатор пользователя (User ID), если вы его настроили для своего проекта. Можно перефразировать и по-другому: пользователь является новым, пока он не совершил повторного сеанса.

Примечание: подробно про показатель Новые пользователи (New Users) разобрано в этой статье.

Вернувшиеся пользователи (Returning Users)

Вернувшимися считаются пользователи, которые уже были на вашем сайте или в вашем приложении ранее. Другими словами, это те пользователи, у которых номер сеанса больше 1 (ga_session_number > 1), то есть 2, 3, 4 ... 100 ... N и т.д.

Номер сеанса - 77 (вернувшийся пользователь)

Номер сеанса в файлах cookie

А знали ли вы, что номер сеанса (Session Count) зашит в файл cookie и хранится в браузере каждого пользователя? Вы можете убедиться в этом сами, открыв консоль разработчика (клавиша F12 в Google Chrome) и вкладку Application:

Application - Cookies - _ga_XXXXXXXXXX

Если раньше вы, как правило, использовали first-party cookies (основные файлы cookie) с названием _ga для Google Analytics, то теперь вам необходимо найти ваш основной файл cookie с идентификатором веб-потока данных GA4. Он будет иметь вид _ga_XXXXXXXXXX, где XXXXXXXXXX - идентификатор потока данных. Для моего сайта osipenkov.ru - это BMPB32GC7T:

Идентификатор потока данных Google Analytics 4

Скопировав значение самого файла cookie, вы увидите примерно такую конструкцию:

О том, что из себя представляет каждая цифра и буква в этом файле cookie, я расписывать не буду. Нас интересует только одно значение, которое уже встречалось чуть выше в этой статье - это 77. Это и есть номер сеанса, он же Session Count, он же параметр запроса &sct в Measurement Protocol. Его значение увеличивается на +1 как только у пользователя начинается новый сеанс.

Значение номера сеанса можно извлечь из файла cookie с помощью такой команды:

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

Перейдя в консоли разработчика на вкладку Console, вставьте эту строчку кода и нажмите клавишу Enter. Вы должны увидеть результат в виде извлеченного значения только нужного фрагмента с Session Count:

Извлечение значения номера сеанса из файла cookie

Команду можно использовать и без вводного слова javascript:

Команда без javascript:

Именно ее мы и будем использовать в Google Tag Manager для пользовательской переменной типа Собственный код JavaScript, чтобы определять нового и вернувшегося пользователя.

Настройка в Google Tag Manager

Чтобы определить нового и вернувшегося пользователя в Google Analytics 4 с помощью Google Tag Manager, вам необходимо зайти в контейнер и создать пользовательскую переменную типа Собственный код JavaScript.

Вставьте в нее нижеприведенный код:

, где вместо _BMPB32GC7T вам необходимо добавить идентификатор собственного веб-потока Google Analytics 4.

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

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

Пример кода очень простой. Переменной users присваивается значение номера сеанса, извлеченное из файла cookie Google Analytics с помощью уже известной вам строчки. Затем значение в переменной users сравнивается с 1 (обратите внимание, для сравнения в JavaScript используется двойной знак равенства ==. Один знак равенства a = b означал бы присваивание). Если тождество верно и номер сеанса = 1, то пользователь в Google Analytics 4 - новый. В противном случае - вернувшийся.

Сохраните переменную, задав ей название. Теперь вы можете использовать ее в условии активации триггера или при передаче вместе с событием в качестве дополнительного параметра. Определение нового и вернувшего пользователя с использованием Google Tag Manager позволит разделить аудиторию вашего сайта на две группы. Тогда вы сможете технически реализовать различные сценарии и правила под каждый сегмент. Например, показывать какой-то баннер новеньким, и не показывать его тем, кто уже посещал ваш сайт несколько раз. Или отображать какой-то контент для одних и скрывать для других. Если пользователь новый, то ему можно предложить скидку на товар или услугу, а если он вернувшийся - оставить рыночную цену. Реализация будет зависеть от ваших возможностей и предпочтений. Более сложные алгоритмы, как правило, настраивает разработчик на стороне бэкенда.

Обязательно проверьте вашу настройку с помощью режима отладки GTM. На вкладке Variables вы должны увидеть значение в зависимости от того, какой номер сеанса записан в вашу куку. При желании, вы можете добавить еще одну переменную, которая бы отображала номер сеанса:

Определение вернувшегося пользователя

В моем примере номер сеанса - 78, значит это вернувшийся пользователь. А если номер сеанса равен 1, то это новый пользователь:

Определение нового пользователя

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

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