Как настроить User ID в Google Analytics?

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

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

А все потому, что GA будет считать посещения с трех различных устройств, посещениями трех разных уникальных пользователей (подробнее читайте в статье «Что такое Client ID»).

Для связывания всех устройств одного пользователя в Google Analytics существует функция User ID, которая позволяет объединить различные сеансы и действия во время этих сеансов с уникальным идентификатором.

 

На картинке ниже раскрыта вся суть работы User ID.

Принцип работы User ID в Google Analytics

Надеюсь суть ясна, теперь подробнее о настройке.

Настройка User ID в аккаунте Google Analytics

Выполните следующие действия:

Шаг 1
На данном шаге вы активируете соответствующую функцию для аккаунта.

  1. Войдите в аккаунт Google Analytics.
  2. Нажмите «Администратор» и перейдите к ресурсу, в котором вы хотите включить User ID.
  3. В столбце РЕСУРС нажмите «Код отслеживания» > «User ID».
  4. Ознакомьтесь с условиями использования User ID.
  5. Под текстом «Я принимаю правила в отношении User-ID» установите переключатель в положение «ВКЛ».
  6. Нажмите «Далее».

Шаг 2
На данном шаге приведен пример кода для передачи значения User-ID в Google Analytics, подробнее о том, как это правильно сделать, я расскажу ниже.

  1. Включите объединение сеансов.
  2. Нажмите «Далее».

Шаг 3
На завершающем шаге вы создаете отдельное представление с User ID.

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

  1. Нажмите кнопку «Создать».
  2. Укажите название представления.
  3. Укажите часовой пояс.
  4. Нажмите кнопку «Создать».

Настройка кода для передачи USER ID

Перед настройкой кода необходимо определиться с тем как отправлять User ID в Google Analytics и откуда его собственно брать.

Отправка с помощью кода отслеживания Google Analytics

ga('create', 'UA-XXXX-Y', { 'userId': 'User_ID' });
ga('send', 'pageview');

Важно! Значением User_ID должен быть уникальный идентификатор пользователя.

Пример реализации на PHP из хелпа Google:

<!-- Google Analytics -->
<script>
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];
a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','//www.google-analytics.com/analytics.js','ga');

<?php
// Новый модернизированный код для установки User ID.
// $userId переменная, для которой сервер устанавливает значение только в том случае, если пользователь успешно прошел аутентификацию.
if (isset($userId)) { // Если для пользователя передан идентификатор в переменную $userId, то отправляем User ID.
  $gacode = "ga('create', 'UA-XXXX-Y', { 'userId': '%s' });";
  echo sprintf($gacode, $userId);
} else { // Если переменная $userId не задана, то выводим стандартный код.
  $gacode = "ga('create', 'UA-XXXX-Y');";
  echo sprintf($gacode);
}?>

ga('send', 'pageview');

</script>
<!-- End Google Analytics -->

Отправка  с помощью Google Tag Manager

  1. Откройте GTM и перейдите к тегу Universal Analytics.
  2. Выберите «Дополнительные настройки» > «Поля, которые необходимо задать» и нажмите кнопку «+ Поле«.
  3. Введите следующие значения:

Настройка User Id через GTM

Переменная {{userId}} может получать значения либо из файла cookie, либо из dataLayer (уровня данных). Мне лично нравится использовать для этого cookie и ниже я расскажу почему.

Откуда брать значения для User ID

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

Ну, это должны делать разработчики сайта…

Я не такой как остальные и все вам расскажу 😉

Настраивать User ID будем на сайте под управлением 1С Битрикс. Информацию о User ID мы можем получить из переменной GetID(), которая доступна в объекте $USER, содержащем все данные о зарегистрированном пользователе.

Разместим следующий код в шапке основного шаблона вашего сайта:

<?if ($USER->IsAuthorized()) //Проверяем авторизован ли пользователь.
setcookie('UserID', $USER->GetID(), time()+63113852,'/'); //Устанавливаем куку UserID содержащую ID пользователя в Битриксе, сроком на два года и для всех страниц сайта.
?>

Важно! Правила Google Analytics требуют прекратить отслеживание User ID после выхода пользователя с сайта. В этом случае вам нужно будет сбросить User ID.

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

Далее проверим через консоль, что кука передается:

Проверка cookies с UserID

После идем в Tag Manager и настраиваем переменную:

Настройка переменной с User ID

И обновляем настройки тега Universal Analytics. Передавать значение будем и в User ID и в пользовательский параметр (как создать пользовательский параметр), который в будущем можно будет использовать в отчетах:

Настройка User ID через GTM

Тестируем при помощи предварительного просмотра GTM правильность передачи пользовательского параметра:

Передача пользовательского параметра с User ID

И User ID:

Передача User ID через GTM

Кросс-девайсные отчеты

После реализации всех настроек в Google Analytics станут доступны несколько отчетов.

Охват User ID

В любом стандартном представлении, в группе отчетов «Аудитория» > «Поведение» станет доступен отчет по доле пользователей, которым был присвоен User ID. В данном отчете мы можем сравнить сегменты авторизованных и не авторизованных пользователей, посмотреть транзакции, источники, проанализировать доходность этих сегментов.

Охват User ID

Пересечение устройств

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

Также при помощи этого отчета можно объединить пользователей по типам используемых устройств и сравнить показатели эффективности для каждого типа. Например, может оказаться, что мобильные пользователи приносят меньший доход, чем пользователи заходившие с нескольких устройств.

Пересечение устройств

Пути устройств

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

Эти данные пригодятся для оптимизации стратегии таргетинга рекламных объявлений на пользователей устройств соответствующего типа.

Пути устройств

Устройство, на котором произошла конверсия

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

Устройство, на котором произошла конверсия

Идентификация конкретного пользователя

И напоследок самое важное! То, что приближает нас к сквозной аналитике, а именно идентификация конкретного пользователя.

Напоминаю, что в Google Analytics запрещено загружать персональную информацию (подробнее от ограничениях GA). Однако, никто не запрещает загружать ID клиента из вашей CRM-системы или админки сайта (в моем кейсе это ID пользователя 1С Битрикс).

Соответственно, имея идентификатор пользователя из CRM в Google Analytics, мы можем с точностью сказать что:

Роман Романчук заходил на сайт такого-то числа, из такого-то источника и купил такие-то товары.

На этом все, пользуйтесь.

30 replies on “ Как настроить User ID в Google Analytics? ”
  1. ….»Чтобы правило соблюдалось, нужно убрать проверку авторизации и тогда при выходе пользователя кука перезапишется на пустое значение»…
    Можно ли разъяснить подробнее этот пункт? Что имеется в виду под проверкой авторизации?
    Нужно убрать эту часть кода?:

    ….IsAuthorized()) //Проверяем авторизован ли пользователь.

    1. Ну тут проблема либо в том, что в куку UserID не передается значение (айдишник пользователя), тогда проблему ищите в коде сайта, который устанавливает куку.
      Либо в том, что переменная не может получить значение из куки UserID, тут проверьте в первую очередь из той ли куки вы пытаетесь получить значение, совпадает ли название (должно быть один в один в том же регистре).

  2. Приветствую, извиняюсь за глупый вопрос, но как такое реализовать если на сайте нет регистрации, от слова совсем и не предполагает регистрацию пользователей?

  3. Добрый день!
    А как реализовать данную функцию через gtag.js, если сам код gtag.js Я разместил через GTM (пользовательский HTML)

  4. Добрый день!
    А как реализовать данную функцию через gtag.js, если сам код gtag.js Я разместил через GTM (пользовательский HTML)

  5. Добрый день, Роман
    У меня в отчетах по User ID нет ни транзакций, ни доходов. При том, что остальные отчеты( Пути устройств, пересечение устройств) работают.
    В других представлениях транзакции/доход есть.
    Я посмотрел, у вас на скрине в блоке «Устройство, на котором произошла конверсия» — так же нет Дохода.
    Вопрос — транзакции и доход в представлении с UserID должны же быть?

  6. Добрый день!

    Планируем большую email рассылку по текущим клиентам и новой базе. Хотим получать стату в GA по открытиям письма.
    Насколько я понял для отслеживания открытий писем используется Measurement Protocol.
    Но не могу понятm какое значение использовать в поле Uid. Неужели необходимо вручную для каждого конкретного получателя присваивать uid и отдельно вставлять поле uid в пикселе отслеживания?

    1. Здравствуйте!
      А зачем вам использовать uid? Это необязательный параметр для Measurement Protocol.
      Используйте уже присвоенный GA параметр cid

  7. Здравствуйте, Роман. Помогите подобрать решение задачи. У нас на сайте своя система аналитики, и мы учитываем по какой метке клиент перешел на сайт. Как мы можем при авторизации клиента с другого устройства определить, что при изначальном визите на сайт по той самой метке (без авторизации), что это тот самый клиент, который авторизовался? Нам надо это на своей стороне определять, отчёт гугл аналитикс нам не подойдёт. Я так понимаю, что до авторизации юзеру присваивается client id, а после авторизации уже user id, и за счет кросс девайс функционала опредляется связь между client id и user id внутри analytics. А как нам получить эту связь на нашем сайте? Возможно ли это?

    1. Здравствуйте!
      Не представляю как это сделать без авторизации при изначальном визите.
      Разве что подарить ему какой-то промокод, при вводе которого при последующем визите подтянется источник первого визита.

      1. А внутри аналитикс будет определено в итоге, что изначально заходил юзер, которвый в дальнейшем авторизовался с другого устройства и мы его узнали? Или там определяется связь только если он на каждом устройстве авторизовался?

        1. Только если на каждом.

          Решение с промокодом должно быть реализовано примерно так:
          1) Юзер заходит первый раз на ваш сайт по рекламе.
          2) В момент захода юзера парсится UTM-метка и сохраняется в вашей базе под каким-то ID.
          3) Этот самый ID вы и показываете пользователю на сайте как промокод с обещанием скидки.
          4) Пользователь запоминает промокод и в следующий раз, при авторизации с другого устройства или даже при посещении офиса, он вводит/называет его и вы можете подтянуть первоначальный рекламный источник сохраненный в базе за этим промокодом.

  8. Роман, добрый день! Подскажите, а как будет вести себя аналитика, если пользователь в одном окне браузера залогинился сначала в один аккаунт, а потом в другой? То есть client ID не менялся, а user ID был два раза передан разный.

    Получается, что к одному clientID будет привязано два userID? Или в куку будет последовательно записываться тот userID, который был передан последним?

    И сразу же в догонку вопрос: если счетчик подключен через GTM, то как добавить в код счетчика строку отслеживания gtag(‘set’, {‘user_id’: ‘USER_ID’})? Ведь при конфигурации переменной настроек Google Analytics используется только идентификатор отслеживания.

  9. Добрый день! Насколько актуален материал на момент обновления пункта 2 в Ресурс — UserID: Гугл сам предлагает чем дополнить тэг для реализации User-ID в коде отслеживания

  10. Однако, никто не запрещает загружать ID клиента из вашей CRM-системы

    Подскажите пожалуйста
    1) Каким образом можно пушить данные ID клиента в Google Analytics
    2) Как потом просматривать отчеты с этими ID клиентов из CRM?

    1. Здравствуйте!
      > 1) Каким образом можно пушить данные ID клиента в Google Analytics
      Если кратко, то вам нужно передать ID из CRM в момент авторизации пользователя при помощи кода JavaScript в пользовательский параметр Google Analytics, чтобы получить связку CRM ID = GA ClientID.

      > 2) Как потом просматривать отчеты с этими ID клиентов из CRM?
      Можно вывести пользовательский параметр с ID как дополнительный, практически в любом отчете Google Analytics, либо создать новый специальный отчет самостоятельно.

  11. Шаг 3
    На завершающем шаге вы создаете отдельное представление с User ID.

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

    Подскажите, пожалуйста.
    Если цели были в представлении без User ID. В новое представление их нужно дублировать?

      1. Спасибо! Если цели продублировать в новое представление с User ID, в старом их нужно убрать или тоже можно оставить, или вообще удалить старое представление (без User ID)? И если можно их оставить, то просто смотреть 2 уровня отчетов с User ID и без, если это необходимо?

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

  12. Роман, вы занимаетесь внедрением USER ID? Движок Престашоп. Ищем человека, который добавит код и протестирует.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *