Client ID в Google Analytics 4

23 января, 2021

Рабочий способ передачи уникального идентификатора пользователя (Client ID) в Google Analytics 4  через Google Tag Manager.

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

Итак, с переходом на GA4 у многих интернет-маркетологов встал вопрос переноса настроек из Universal Analytics в новый счетчик Аналитики. В том числе и отслеживание уникального идентификатора пользователя. Client ID (он же cid) - одна из тех метрик, которая необходима для настройки "сквозной аналитики" и на основе которой счетчики веб-аналитики связывают действия пользователей (1 конкретный браузер — 1 конкретное устройство = 1 файл cookie).

Несколько материалов в блоге по настройке Client ID для Universal Analytics и Яндекс.Метрики я публиковал ранее. Рекомендую к прочтению:

Чтобы просмотреть все действия, которые совершал пользователь на вашем сайте, вы можете воспользоваться отчетом Статистика по пользователям. Он находится в разделе Аудитория.

Client ID в Google Analytics 4

Отчет "Статистика по пользователям" в Universal Analytics

В Universal Analytics параметр, отвечающий за Client ID, называется Идентификатор клиента. Если вы подведете курсор мыши к вопросительному знаку, то увидите его определение: A unique ID that Analytics assigns to each device from which users engage your content (Уникальный идентификатор, который Google Analytics присваивает каждому устройству, с которого пользователи взаимодействуют с вашим контентом).

Открыв конкретный профиль, вы сможете посмотреть все действия этого пользователя (сеансы, их длительность, хиты, события и транзакции):

Client ID в Google Analytics 4

Профиль пользователя с определенным идентификатором клиента (Client ID) в Universal Analytics

В Google Analytics 4 в центре анализа (Analysis Hub) доступен шаблон Статистика пользователей:

Client ID в Google Analytics 4

Методики - Статистика пользователей

Создав его, вы увидите схожий с Universal Analytics отчет:

Client ID в Google Analytics 4

Отчет "Статистика по пользователям" в Google Analytics 4

В Google Analytics 4 параметр, отвечающий за Client ID, называется Идентификатор экземпляра приложения (App-instance ID). Если вы подведете курсор мыши к вопросительному знаку, то увидите его определение: A unique, user-resettable ID for advertising. Device ID corresponds to Advertising ID on Android and Identifier for Advertisers on iOS (Уникальный сбрасываемый идентификатор для показа рекламы. Идентификатор устройства соответствует рекламному идентификатору на Android и идентификатору рекламодателя (IDFA) на iOS). Написано сложно, но это все тот же уникальный идентификатор клиента (устройства).

Открыв конкретный профиль в GA4, вы увидите все действия этого пользователя, точно также, как и в Universal Analytics (сеансы, их длительность, хиты, события и транзакции):

Client ID в Google Analytics 4

Профиль пользователя с определенным идентификатором клиента (Client ID) в Google Analytics 4

В Universal Analytics мы для того, чтобы использовать Client ID в других отчетах (не только в Статистика по пользователям), создавали специальный параметр и методом customTask (как наиболее приоритетным и точным) передавали cid в UA.

К сожалению, метод customTask в GA4 не поддерживается. Поэтому нам необходимо использовать другой вариант передачи данных. Я предлагаю использовать тот, который описал Симо в своем блоге.

Для этого перейдите в Google Tag Manager и в галерее шаблонов сообщества найдите тег с именем GTAG GET API:

Client ID в Google Analytics 4

Тег GTAG GET API

Добавьте его в рабочую область с помощью соответствующей кнопки. В завершение нажмите Добавить.

Тег GTAG GET API от Симо позволяет получать различные значения из gtag.js (включая значения, заданные с помощью команды set), записывать их в уровень данных (dataLayer) и использовать эти данные в тегах других поставщиков. Подробнее про API gtag.js читайте в официальной документации Google.

Настройки тега GTAG GET API

В открывшемся окне с настройками тега задайте идентификатор счетчика GA4 в поле Measurement ID. Поскольку нас интересует уникальный идентификтор клиента, галочку Default Fields To Get - Client ID (client_id) оставьте активной.

Client ID в Google Analytics 4

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

Сохраните тег без триггера. Теперь необходимо зайти в сам тег Google Аналитика: конфигурация GA 4 и в расширенных настройках добавить порядок активации тегов, поставив галочку напротив Активировать тег после тега [Название вашего тега] и выбрав тег GTAG GET API из раскрывающегося списка:

Client ID в Google Analytics 4

Порядок активации тегов

Используя порядок активации тегов, вы гарантируете, что API не будет вызываться до тех пор, пока функция gtag() не будет загружена и инициализирована на странице. Сохраните изменения.

Когда вы откроете режим предварительного просмотра, вы увидите новое событие gtagApiGet. Если вы его не видите, скорее всего, это связано с тем, что на странице нет тега с конфигурацией GA4 или потому, что тег API сработал до того, как gtag() успел загрузиться.

Client ID в Google Analytics 4

Событие gtagApiGet

Затем создайте:

- триггер с именем события gtagApiGet;

Client ID в Google Analytics 4

Пользовательское событие gtagApiGet

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

Client ID в Google Analytics 4

Переменная уровня данных gtagApiResult.client_id

Осталось только определиться с тем, как вы планируете передавать Client ID в Google Analytics 4. Вы можете создать специальный параметр (custom event dimension) или использовать свойство пользователя (user property). И в том и другом случае обязательно провести дополнительную настройку в интерфейсе GA4, создав или пользовательское определение, или свойство пользователя.

Например, задав такие имена в GA4: Настроить - Свойства пользователей - Создать свойство пользователя и События - Все события - Настроить пользовательские определения

Client ID в Google Analytics 4

Свойство пользователя и специальный параметр

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

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

Client ID в Google Analytics 4

Пример конфигурации тега события

А вот теперь самое интересное! При передачи данных о Client ID пользователя режим отладки GTM и само значение переменной отображается корректно и имеет тип данных string (строка).

Client ID в Google Analytics 4

Значение Client ID имеет текстовый формат представления

Однако когда вы будете смотреть в отчеты Google Analytics 4, то увидите, что данные передались в измененном виде, а точнее формата double (число двойной точности). Вот как это будет выглядеть в GA4:

Client ID в Google Analytics 4

Измененный тип отображения Client ID

Есть предположение, что Google преобразует строковое представление числа в эквивалентное ему число двойной точности с плавающей запятой с помощью метода double.Parse. Но я не являюсь разработчиком, чтобы утверждать это со 100% точностью, и поэтому данный вопрос я задал техподдержке Google месяц назад.

Как оказалось, это не локальная проблема, и Симо в своей публикации это подтвердил. Ему удалось найти решение: всего лишь нужно добавить символ точки (.) в конце значения переменной. В моем примере - в двух местах (и для специального параметра, и для свойства пользователя):

Client ID в Google Analytics 4

Точка (.) в конце!

Сохраните изменения и не забудьте опубликовать новую версию контейнера GTM. Все!

Проверить корректность передачи данных можно с помощью инструмета DebugView.

Client ID в Google Analytics 4

DebugView

Как видите, в конце уникального идентификатора пользователя стоит точка (.). Она нужна для того, чтобы GA4 не преобразовывал эту строку в число.

В дальнейшем, если вы создали специальный параметр и свойство пользователя в интерфейсе Google Analytics 4, вы сможете использовать Client ID в отчетах центра анализа.

Client ID в Google Analytics 4

Пример переданного свойства пользователя в client_id_ga4

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

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