Настройка User ID с помощью Google Tag Manager

04 ноября, 2020

Материал по настройке отслеживания User ID для Google Analytics (Universal Analytics) и Яндекс.Метрики с помощью Google Tag Manager.

Для связывания разных устройств одного пользователя в Google Analytics существует функция User ID (не путать с Client ID!). Она позволяет объединить различные сеансы и действия во время этих сеансов с уникальным идентификатором. Это отслеживание еще называют кросс-девайсным.

Например, сначала человек зашел к нам на сайт из дома с персонального компьютера, потом в течение дня на работе посещал интернет-магазин с телефона, а вечером по приезду домой оформил покупку с ноутбука.

Как мы уже с вами узнали раннее, сбор данных о посетителях на сайте с помощью Analytics основан на файлах cookie, когда данные по каждому пользователю принадлежат только одной конфигурации браузера и устройства (1 конкретный браузер - 1 конкретное устройство = 1 куки файл). И отследить поведение посетителя с нескольких девайсов, связав их в одного уникального пользователя, при классическом подходе не представляется возможным.

С помощью кросс-девайс отслеживания (функции User ID) мы можем связать всего его посещения воедино, при условии, что пользователь на всех трех устройствах был идентифицирован нашей CRM-системой или CMS-движком. Это позволит оценить какие посетители конвертируются лучше всего: те, кто используют только десктопы, только мобильные или оба типа устройств.

Настройка User ID с помощью Google Tag Manager

Схема работы Client ID и User ID

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

Классический пример такого подхода – социальная сеть. Когда вы впервые зарегистрировались, например, ВКонтакте, вам присвоили уникальный ID учетной записи.

Настройка User ID с помощью Google Tag Manager

ID профиля ВКонтакте – наглядный пример User ID

С этого момента, чтобы вы не делали (смотрели видео, искали группы, добавляли в друзья, писали сообщения) – все эти действия будут связаны с вашим профилем. А поскольку вы регистрировались через телефон или e-mail (да еще и вводили все данные в настройках), у администрации социальной сети есть полный набор ваших данных. А если еще и включена функция геолокации, то они не только знают о вас все, но и могут отследить ваше местонахождение в любой момент времени. И уже абсолютно не имеет никакого значения, с какого устройства вы заходите и с какого браузера, главное – вы под своей учетной записью.

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

В 2018 году Google добавил функцию Google Signals, которая позволяет на основе агрегированных данных о пользователях, включивших Персонализацию рекламы, создавать общую модель поведения на нескольких устройствах. При этом учитываются данные о пользователях, а не о сеансах. Для создания модели поведения не требуется представления User ID. А в середине 2017 года Яндекс запустил свою бета версию отчета Кросс-девайс, в котором отображается статистика по конверсиям клиентов, которые заходили на сайт с нескольких устройств.

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

Чтобы активировать User ID в Google Analytics, необходимо:

  • включить эту функцию;
  • создать новое представление User ID;
  • добавить специальный параметр.

Переходим в Universal Analytics и в колонке Ресурс выбираем Отслеживание – User-ID:

Настройка User ID с помощью Google Tag Manager

Ресурс – Отслеживание – User-ID

Принимаем правила в отношении User-ID, переключаем ползунок в позицию «Вкл.» и нажмите Далее:

Настройка User ID с помощью Google Tag Manager

Правила в отношении User-ID

На следующем шаге приведен пример классического кода для Universal Analytics (библиотеки analytics.js) и глобального тега Global Site Tag (библиотеки gtag.js).

Настройка User ID с помощью Google Tag Manager

Примеры кодов отслеживания Universal Analytics и Global Site Tag

На последнем шаге создаем новое представление User ID, введя его название и указав часовой пояс.

Настройка User ID с помощью Google Tag Manager

Создание представления User-ID

В этом представлении будут отображаться данные о сеансах, в которых был обнаружен идентификатор пользователя.

Передачу собственных uid с вашего сайта можно осуществить несколькими способами:

  • с помощью кодов отслеживания gtag.js или analytics.js;
  • с помощью Google Tag Manager.

Веб-аналитика, а если быть точнее, технические настройки тем и хороши, что у них всего два состояния - либо работает, либо нет (0 и 1, true или false). Поэтому если вы все настроили, все корректно собирается, не возникло никаких проблем с отслеживанием, то подойдет любое решение, удовлетворяющее начальным условиям о сборе.

Это относится и к User ID. Например, можно попробовать извлечь значение идентификатора пользователя с помощью переменной Элемент DOM, или из cookie, при условии, что такая кука установлена на сайте и в нее передается значение User ID пользователя. А можно привлечь разработчика, чтобы он написал функцию, которая бы возвращала ID текущего авторизованного пользователя.

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

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

, где ID пользователя на сайте означает функцию, возвращающую ID залогинненого пользователя.

Желательно, чтобы этот код был размещен над контейнером Google Tag Manager, чтобы его можно было использовать с триггером Просмотр страницы. Вот так выглядит проверка (залогинен ли пользователь?) для интернет-магазина на платформе OpenCart:

Настройка User ID с помощью Google Tag Manager

Пример проверки авторизации на сайте

А сам уровень данных выглядит вот так:

Настройка User ID с помощью Google Tag Manager

Пример уровня данных для User ID

, где в {{customer_id}} передается идентификатор авторизованного пользователя.

Схематично всю работу можно представить так:

Настройка User ID с помощью Google Tag Manager

Командная работа

Разработчик на сайте формирует уровень данных, который вы отобразили в ТЗ. В Google Analytics вы включаете создаете новое представление User-ID и с помощью диспетчера тегов Google создаете необходимые сущности (переменные, триггеры и теги) для передачи данных об идентификаторе пользователя. И когда ваша работа, и работа программиста будет завершена, вы проверяете корректность передачи данных в Яндекс.Метрику, Google Analytics и другие аналитические сервисы. Если что-то не работает, совместными усилиями ищете причину и устраняете ошибки.

После внедрения кода разработчиком проверьте передачу данных, авторизовавшись на сайте. Если все хорошо, в режиме отладки GTM вы увидите срабатывающее событие userId и значение идентификатора пользователя на сайте (user_id - 290) в переменной уровня данных на вкладке Data Layer:

Настройка User ID с помощью Google Tag Manager

Проверка в режиме предварительного просмотра

На рисунке выше срабатывает событие userId после загрузки контейнера Container Loaded (gtm.js). Это означает, что в если мы будем использовать стандартный тег Google Analytics с триггером All Pages (Все страницы), то переменная userId не будет еще определена, и вместо значения ID пользователя ей будет присвоено undefined, а значение User ID не будет передано в Google Analytics:

Настройка User ID с помощью Google Tag Manager

userId сработал после Container Loaded, поэтому переменная еще не определена (undefined)

Тогда для запуска тега вы можете воспользоваться триггером Модель DOM готова или Окно загружено, либо же попросить разработчика разместить код с User ID над контейнером Google Tag Manager, как можно ближе к тегу <head>. В этом случае событие userId сработает до загрузки контейнера Container Loaded и в поле, которое необходимо задать, передастся идентификатор пользователя, который он имеет на нашем сайте:

Настройка User ID с помощью Google Tag Manager

userId сработал до Container Loaded, поэтому переменная определена и имеет корректное значение

Для того, чтобы это реализовать, сначала в диспетчере тегов Google следует создать переменную уровня данных. Имя переменной вводите такое же, как и в коде уровня данных, который вы отправляли разработчику (не путать с названием события!):

Настройка User ID с помощью Google Tag Manager

Пример переменной уровня данных

Не забывайте про правила использования функции User ID в Google Analytics, а именно:

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

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

Другими словами: если на ваш сайт заходят пользователи из стран, входящих в Европейскй союз, и вы планируете хранить их идентификаторы в файле cookie и отслеживать даже неаутентифицированных пользователей с идентификатором, то вам необходимо получить их согласие (General Data Protection Regulation, GDPR), а также обсудить все отслеживания с юридическим отделом и действующим законодательством тех стран, жители которых посещают ваш сайт.

Теперь необходимо передать User ID при каждом обращении Google Analytics. Чтобы не обновлять каждый тег вручную, откройте переменную типа Настройки Google Analytics и в разделе Дополнительные настройки – Поля, которые необходимо задайте userId и укажите в Название поля – userId, а в Значение добавьте переменную уровню данных, которую создали на предыдущем шаге:

Настройка User ID с помощью Google Tag Manager

Поля, которые необходимо задать - userId

Так нужно делать для того, чтобы видеть все обращения (события, просмотры страниц и т.д.) в отдельном представлении Google Analytics (User-ID). Поэтому мы настраиваем идентификатор пользователя Google Analytics на уровне переменной Настройки Google Analytics, а не только в теге просмотра страницы Google Analytics. В этом случае было бы достаточно этого:

Настройка User ID с помощью Google Tag Manager

Настройка тега

Можно пойти еще дальше и передать User ID в Google Analytics в качестве специального параметра. Для этого перейдите на уровне ресурса в раздел Пользовательские определения – Специальные параметры и нажмите + СПЕЦИАЛЬНЫЙ ПАРАМЕТР:

Настройка User ID с помощью Google Tag Manager

Создание специального параметра

Введите название пользовательского параметра, выберите Область действия – Пользователь, оставьте галочку Активная и нажмите Создать:

Настройка User ID с помощью Google Tag Manager

Настройка специального параметра User ID

Запомните индекс пользовательского параметра (в моем примере – 1):

Настройка User ID с помощью Google Tag Manager

Индекс специального параметра

Вернитесь в тег Google Analytics / переменную Настройки Google Analytics и в разделе Дополнительные настройки – Специальные параметры задайте Индекс и укажите Значение параметра:

Настройка User ID с помощью Google Tag Manager

Передача специального параметра в теге или переменной Настройки Google Analytics

Сохраните настройки. Проверить корректность передачи данных можно с помощью расширений для браузера Google Chrome Google Tag Assistant, GA Debugger и других.

Настройка User ID с помощью Google Tag Manager

Определение User ID в Google Tag Assistant

А кликнув на Pageview Requests и перейдя на вкладку Custom Metrics, мы можем посмотреть, верно ли передается специальный параметр, который мы создали:

Настройка User ID с помощью Google Tag Manager

Вкладка Custom Metrics

Для отправки идентификатора пользователя в Яндекс.Метрику используйте метод userParams, который позволяет передавать произвольные параметры посетителей сайта, и параметр UserID. Пример конструкции выглядит так:

, где XXXXXX – номер счетчика Яндекс.Метрики, а User ID пользователями – переменная уровня данных, созданная на предыдущем шаге.

В Google Tag Manager:

Настройка User ID с помощью Google Tag Manager

Передача User ID в Яндекс.Метрику

Данные по User ID доступны в отчете Параметры посетителей:

Настройка User ID с помощью Google Tag Manager

Отчет "Параметры посетителей"

А также в карточке конкретного пользователя раздела Посетители:

Настройка User ID с помощью Google Tag Manager

Карточка пользователя в разделе "Посетители"

Таким образом, вы можете использовать несколько представлений (одно – User-ID, а другое – обычное) для отслеживания действий пользователей с привязкой к их идентификатору. А с созданным специальным параметром появляется возможность сопоставить обращения, покупки человека с его реальными данными, которые собираются в вашей CRM-системе.

Настройка User ID с помощью Google Tag Manager

User ID в отчете Google Analytics как дополнительный параметр

Как? Элементарно! Вы можете передавать ID заявки или ID транзакции с помощью настроенной электронной торговли, а также User ID. Получается связка User IDID заявки/транзакции. А данные, которые пользователь отправил вместе с заявкой/транзакцией (это может быть телефон, e-mail, контактный адрес и другая информация), попадают к вам в CRM-систему. Получается еще одна связка ID заявки/транзакции – Персональные данные пользователя.

В результате, мы можем соединить две связки с помощью общего параметра ID заявки/транзакции и проанализировать действия пользователя на сайте с помощью функции кросс-девайс отслеживания. Создание таких централизованных систем – одна из основных задач при построении сквозной аналитики на базе Client ID / User ID.

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

Настройка User ID с помощью Google Tag Manager

Идентификатор отчета в Google Analytics 4 по умолчанию

Настройка User ID для GA4 будет разобрана в последующих материалах.

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

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