Обратная связь
Введите ваши данные, и я свяжусь с вами!
Какой у вас вопрос?

Нажимая на кнопку, вы даете согласие на обработку персональных данных и соглашаетесь c обработкой персональных данных

Как настроить параметры посетителей Яндекс Метрики в Google Tag Manager

Материал обновлен 04:01:2022
Примеры реальных задач, пошаговые инструкции по BI, DWH и DE в моем телеграм канале подпишитесь сейчас!

Новая возможность Яндекс Метрики позволяющая дополнять сведения о посещениях конкретными данными о реальных пользователях.

Не так давно в Яндекс Метрике появилась возможность, которая позволяет этому инструменту идти в ногу со временем и быть не хуже его основных конкурентов. Речь идет о параметрах посетителей.

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

После установив кода отслеживания сервиса веб-аналитики (Яндекс Метрики,  Google Analytics и т.п.) на сайт, при загрузке страниц вашего сайта в браузерах пользователей происходит проверка на наличие специального cookie файла, который устанавливает система веб-аналитики.

Если такого файла система не обнаруживает, то она принимает решение, что это новый посетитель и устанавливает cookie, если же cookie файл был установлен ранее, то система «понимает», что вы уже были на этом сайте.

В таких cookie файлах может содержаться разнообразная информация, но в последнее время происходит тенденция в направлении того, чтобы в cookie хранить только идентификатор клиента. Этот идентификатор «ключ» ко всем данным, которые соберет о вас ситема веб-аналитики. Но для таких «ключей» есть один существенный недостаток, связан он с тем, что на каждом устройстве, в каждом браузере для вас будет свой уникальный «ключ», а для системы веб-аналитики такие ключи это отдельные пользователи, хотя по факту, это может быть один единственный реальный человек.

Каким образом системы веб-аналитики решают данную проблему? Они стали вводить помимо понятия идентификатор клиента еще одно, более широкое — идентификатор пользователя. Сайт может присвоить вам такой идентификатор, например после авторизации, используя свою внутреньную систему учета пользователей. После его использования все идентификаторы клиента «привязываются» или «склеиваются» в единую последовательность действий конкретного пользователя (реального человека).

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

Итак, мы разобрались, что каждое посещение сайта, в каждом браузере на разных устройствах для системы веб-аналитики это уникальный пользователь (который имеет свой уникальный идентификатор клиента, присвоенный системой веб-аналитки), но мы можем «подсказать» системе веб-аналитики, что это все один реальный человек передав ей его идентификатор из нашей системы учета пользователей сайта (идентификатор пользователя).

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

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

Итак, данные собраны, система веб-аналитики настроена, принимаем решение, что будем передавать в систему дополнительные сведения о пользователе (конкретном человеке).

Далее механизм реализации зависит от выбранного инструмента, все, что будет описано ниже, относится к Яндекс Метрике (для Google Analytics можете ознакомиться с материалами про настройку userID или использование пользовательских параметров и показателей).

Для фиксации сведений о пользователе будем использовать схему:

  • тип пользователя:
    • бронзовый, серебрянный или золотой;
    • количество бонусных баллов в текущий момент.
  • интересы пользователя (выбираются чекбоксами при регистрации);
  • средний доход в месяц (один из вариантов в выпадающем списке);
  • наличие автомобиля (да или нет).

Предположим, что есть некоторый пользователь А, который зарегистрирован в вашей системе, он интересуется спортом и автомобилями, пока что его уровень бронзовый и у него 100 бонусных баллов, его доход от 50 до 70 т.р. в месяц и у него есть автомобиль.

Итак, приступаем к настройке передачи параметров посетителя в Яндекс Метрику. Сделать это мы можем двумя способами:

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

Передача параметров посетителей в Яндекс Метрику на сайте сводится к размещению на странице сайта специального кода отслеживания. Опишем нашего пользователя:

В примере выше четыре ключа и их значения, например, третий ключ revenue принимает значение от 50 до 70 т.р.. Ключи и их значения записываются по схеме: ключ : значение, для тех, кто знаком с Google Tag Manager это полная аналогия использования уровня данных (dataLayer).

Остановимся на том, какие типы значений могут быть использованы:

  • объект — пример, описание пользователя, ключ user;
  • строка — используется для ключа revenue;
  • число — в пояснении не нуждается, пример отсутствует;
  • логическое значение — варианты true, false или null (если не подходит true или false), ключ car.

Итак, мы описали нашего пользователя можно передать данные в Яндекс Метрику. Как это сделать? С помощью добавления фрагмента кода, который приведен выше в исходный код страницы сайта.

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

Пример для загрузки страницы (с использованием jQuery):

Пример для события onclick (с использованием jQuery):

После настройки передачи нужных нам параметров перейдем в соответствующий раздел отчетов Яндекс Метрики:

Отчет содержащий параметры посетителей

Отчет содержащий параметры посетителей

Если все было сделано верно, то вы увидите переданные параметры:

Переданные значения параметров посетителей

Переданные значения параметров посетителей

Далее можно посмотреть значения раскрыв список слева от интересующего параметра:

Просмотр значений параметров посетителей

Просмотр значений параметров посетителей

Если у вас не отображаются параметры посетителей или отсутствуют некоторые значения, то вы можете проверить корректность передачи данных воспользовавшись отладчиком Яндекс Метрики. Для этого необходимо на странице, которая передает параметры посетителей в Яндекс Метрику, добавить в URL дополнительный параметр _ym_debug=1, после этого в консоли браузера появится информация передаются ли параметры или есть ошибки. В случае успешной передачи вы увидите примерно следующее:

Пример проверки в консоли браузера

Пример проверки в консоли браузера

Помимо того, что можно использовать код отслеживания, параметры посетителей могут быть переданы в Яндекс Метрику с помощью настройки через Google Tag Manager. Здесь также может быть несколько вариантов реализации.

Важно! Я использовал имена параметров и переменных для более наглядных примеров, вы можете использовать свои собственные.

Самый простой вариант (первый) если разработчики вашего сайта организуют вывод в код страницы сайта небольшого блока JavaScript кода, в котором некоторой переменной присвоят нужное вам значение:

После этого в Google Tag Manager можно создать тег типа Пользовательский HTML, в котором указать код Яндекс Метрики передающий параметр посетителя, в качестве значения которого передать ранее созданную переменную JavaScript:

Передача парметра пользователя в Яндекс Мектрику

Передача парметра пользователя в Яндекс Мектрику

В примере я использовал параметр посетителя с именем js_param, которому присвоил значение содержащееся в переменной JavaScript ym_user_params. Ранее я присвоил значение равное «ваше значение». Результат выполнения настройки:

Передача параметра из JavaScript переменной

Передача параметра из JavaScript переменной

Обратите внимание, что сам код Яндекс Метрики я также внедрил через Google Tag Manager (см. настройка Яндекс Метрики в Google Tag Manager) со следующими настройками тега:

Код Яндекс Метрики в Google Tag Manager

Код Яндекс Метрики в Google Tag Manager

Важно! Чтобы тег, передающий данные в Яндекс Метрику сработал корректно у него необходимо указать триггер со следующими настройками:

Триггер активации тега для передачи параметров в Яндекс Метрику

Триггер активации тега для передачи параметров в Яндекс Метрику

Связано это с тем, что для передачи параметров, код Яндекс Метрики с методом userParams должен срабатывать ПОСЛЕ основного кода счетчика. Показанная настройка триггера срабатывает на каждой странице ПОСЛЕ выполнения основного кода счетчика Яндекс Метрики. Также можно настроить триггеры для фиксации действий пользователя по определенным условиям, например по кликам на некоторых кнопках и т.п.

Описанный выше способ можно «усовершенствовать» дополнительно создав в Google Tag Manager переменную типа Переменная JavaScript, в которую «записывать» значение, а ее затем использовать в теге Google Tag Manager.

Удобство Google Tag Manager заключается в том, что вы можете самостоятельно настроить активацию тега на определенное действие пользователя, вам понадобятся разработчики только лишь для того, чтобы реализовать передачу данных о пользователе на страницу, причем помимо описанного выше варианта можно использовать также и уровень данных или dataLayer.

Собственно второй способ передачи параметров посетителей Яндекс Метрики с помощью Google Tag Manager заключается в использовании уровня данных. Схема реализации выглядит следующим образом:

  1. настроить передачу данных из внутренней системы в уровень данных на странице сайта;
  2. создать переменную Google Tag Manager получающую значение со страницы через уровень данных;
  3. создать тег с кодом Яндекс Метрики, который передаст параметры посетителя.

Давайте рассмотрим описанный алгоритм для некоторого посетителя, который характеризуется следующим набором характеристик:

  • наличие карты постоянного клиента у посетителя;
  • предпочтительный район доставки.

Теперь с помощью уровня данных (dataLayer) выполним описание пользователя:

После того, как описание уровня данных добавлено на страницы сайта необходимо создать переменную в Google Tag Manager, которая «получит» эти данные со страницы, чтобы они стали доступны для работы в нем. Создаем переменную со следующими настройками:

Настройка переменной в Google Tag Manager для Яндекс Метрики

Настройка переменной в Google Tag Manager для Яндекс Метрики

После этого создадим (внесем изменения) в ранее созданный тег, передающий значения параметров посетителей в Яндекс Метрику:

Тег передающий параметры посетителей через уровень данных

Тег передающий параметры посетителей через уровень данных

Обратите внимание, что в качестве значения для параметра пользователя dataLayer_params используется имя ранее созданной переменной Google Tag Manager в двойных фигурных скобках {{DL — YM User Params}}.

Теперь можно запустить отладчик Google Tag Manager , открыть консоль браузера и посмотреть на результаты:

Сведения из отладчика и консоли

Сведения из отладчика и консоли

Спустя некоторое время данные появятся в отчетах Яндекс Метрики:

Сведния в Яндекс Метрике

Сведния в Яндекс Метрике

На что нужно обратить внимание при такой реализации! Все переданные нами параметры расположены на уровне 2 основного параметра пользователя в Яндекс Метрике:

  • основной параметр «контейнер»: dataLayer_params;
  • параметры с конкретным описанием пользователя: user_card и user_delivery.

Чтобы параметры описывающие пользователя стали параметрами первого уровня, необходимо немного изменить тег передающий данные в Яндекс Метрику:

Изменение настройки тега Google Tag Manager

Изменение настройки тега Google Tag Manager

После этого данные, которые отправляются в Яндекс Метрику, выглядят следующим образом:

Сведения из отладчика Яндекс Метрики

Сведения из отладчика Яндекс Метрики

Проверим сведения в отчетах:

Параметры в отчетах

Параметры в отчетах

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

  • первый, когда из уровня данных передаем значение для параметра первого уровня, как объекта: dataLayer_params: {{DL — YM User Params}}
  • второй, когда из уровня данных получаем значение для каждого параметра, например: dataLayer_user_card : {{DL — YM User Params}}.user_card
Различия в реализации

Различия в реализации

При этом нет большой разницы в использовании этих данных в Яндекс Метрике:

Доступ к параметрам пользователя второго уровня в Яндекс Метрике

Доступ к параметрам пользователя второго уровня в Яндекс Метрике

Для параметров первого уровня:

Доступ к параметрам первого уровня

Доступ к параметрам первого уровня

Я бы рекомендовал при использовании уровня данных Google Tag Manager, для набора данных описывающих пользователя в уровне данных, выделять отдельное имя, например, ym_user_params (пример описания в коде см. выше). В этом случае все последующие обращения к нужному набору данных упрощаются. Вы сможете передавать параметры как целым объектом, так и отдельными значениями из него не прибегая к созданию дополнительных переменных в Google Tag Manager.

Мы рассмотрели с вами вариант передачи параметров посетителей Яндекс Метрики через код отслеживания, а также с помощью Google Tag Manager, но существует также еще один способ сообщить Яндекс Метрике, что вам необходимы дополнительные данные в отчетах — это загрузка данных, об этом способе в одном из следующих материалов. Чтобы узнать первым о его выходе подпишитесь на рассылку!

Рассылка бесплатных кейсов, инструкций, обзоров
Нажимая на кнопку, вы даете согласие на обработку персональных данных и соглашаетесь c политикой конфиденциальности
Ежедневные новости из мира аналитики в Telegram канале
Настройки, интеграции, примеры реальных задач, пошаговые инструкции
материалы ПО ТЕМЕ:
ОБСУЖДЕНИЕ:
Юрий
17.09.2016 at 02:45

Все разложено по полочкам. … но объясните пожалуйста зачем это нужно для каких целей?

    Вадим
    19.09.2016 at 02:39

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

    Иван
    21.09.2016 at 00:47

    Юрий, как один из вариантов — создание сегментов пользователей для проведения рекламных кампаний

Владимир
14.11.2016 at 06:20

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

    Иван
    20.11.2016 at 18:43

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

Sergey
15.11.2016 at 15:49

Здравствуйте. Почитал почти все статьи на вашем сайте по данной тематике, но так и получил ответа на свой вопрос — Google Client ID это уникальный идентификатор пользователя генерируемый гуглом в пределах этого сайта или всей эко-системы гугла? Допустим клиент зашедший на сайт с компа, и тот же клиент зашедший с телефона андроида или с залогиненного хрома будет индентифицирован как один пользователь? У них будет один и тот же clien id ?

    Иван
    20.11.2016 at 18:45

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

Андрей
22.11.2016 at 23:27

Добрый день!
Подскажите,а можно собрать параметры посетителей из метрики,а потом в гугле делать ремаркетинг на этих посетителей?

    Иван
    30.11.2016 at 22:03

    Добрый день! Сама Яндекс Метрика не содержит параметров посетителей, Вы организуете их передачу самостоятельно, параллельно можно настроить передачу данных и в Google Analytics

Андрей
05.02.2017 at 20:46

Здравствуйте!

1.Подскажите пожалуйста как быстро у вас уходят данные в метрику «параметры пользователей «?
У меня уже прошло больше 4-5 часов и что-то глухо, в логах все было отображено верно, js объект появился со своими значениями. А вот параметры визитов почти через 10-15 минут появляются почему-так?
2. Тесты проводились в отдельном браузере где нету адблоков, но как как правильно будут собраны данные в случае если у пользователя есть блокировщики реклам?

    Иван
    05.02.2017 at 21:00

    Андрей, данные появились в отчетах в течении нескольких минут. Если блокировщик режет код Яндекс Метрики, то ничего не сработает, но не все блокировщики убирают системы веб аналитики

Виктор
08.03.2017 at 21:07

Иван, добрый вечер!

Подскажите, пожалуйста, можно ли другим способом передавать данные. Я в качестве переменной для указания userid использую элемент уровня DOM, который явно указывается на сайте. Он легко попадает в tag manager и записывается в качестве переменной, и я его использую для гугл аналитикс. Решил попробовать отправить его в яндекс, добавив тег в tag manager:

yaCounter*******.userParams({
dataLayer_params : {{Bizuserid}}
});

Сработает или нет?
Или надо вот так:

yaCounter*******.userParams({
user : {{Bizuserid}}
});

Через отладчик tag manager не понятно, что происходит, он пишет:

​’yaCounter*****.userParams({dataLayer_params:go
ogle_tag_manager[«GTM-NGX7PX»].macro(\’gtm15\’)});’
‘yaCounter*****.userParams({dataLayer_params:go
ogle_tag_manager[«GTM-NGX7PX»].macro(\’gtm15\’)});’

Антон
15.03.2017 at 15:06

Здравствуйте!Спасибо за статью!
Не подскажите куда конкретно вставлять эту часть кода?
$('#btnClick').click(function(){
yaCounterВАШ_СЧЕТЧИК.userParams({
user : { // описание пользователя
type : 'bronze', // бронзовый уровень
bonus : 100 // 100 бонусных баллов
},
interests: { // интересы
1 : 'спорт',
2 : 'автомобили'
},
revenue : 'от 50 до 70 т.р.', // средний доход в месяц
car : true // наличие машины
});
});

Если у меня WordPress и плагин GoogleTagManager, я кликнул на изменить код плагина, там такой код:

google_tag_manager::go();

Т.е. я так понимаю надо добавить данные после window в этой строчке (window,document,'script','dataLayer','’);

Помогите разобраться!

    Иван
    17.03.2017 at 08:45

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

Кирилл
09.02.2018 at 15:49

Слов нет, статья бомба, столько новой информации, секреты века раскрыты.

    Иван
    23.02.2018 at 04:02

    Спасибо за интерес к блогу

Эрик Акопян
10.02.2018 at 09:40

Просто преклоняюсь перед вами, это огромный труд! Спасибо что поделились бесплатно.

    Иван
    23.02.2018 at 04:02

    Спасибо!

Костя
12.02.2018 at 15:51

Пишет, что не «Не удалось подтвердить, что вы являетесь владельцем сайта» при выборе варианта подтвердить через GTM. Логин тот же. Есть еще какие то варианты?

    Иван
    23.02.2018 at 04:01

    Вероятно где-то допущена ошибка, проверьте еще раз и повторите попытку

Илья
16.02.2018 at 01:02

Т.е. например пользовательский показатель можно настроить (использовать) в качестве цели (конверсии), например, если все 20 целей уже заняты в представлении? Еще вопрос немного не по теме. Когда создаю пользовательский отчет, на одной вкладке (группа показателей) дает разместить только 10 показателей, как быть, если мне нужно разместить больше?

    Иван
    23.02.2018 at 04:00

    Илья, Вы не можете использовать пользовательский параметр в качестве цели, он дополнит цель информацией о пользователе, но не заменит саму цель. Цель — это событие на сайте. По второму вопросу — есть лимиты на использование параметров, вероятно Вы пытаетесь его превысить

Максим
24.02.2018 at 20:19

Отличная статья!

Павел
09.04.2018 at 18:10

Иван, добрый день! Я сделал, как описано, но данные не появляются, а в отладчике хрома есть такое сообщение «yaCounter46761690 is not defined». Тег активируется после тега с метрикой. Скажите, пожалуйста, в чем может быть проблема.

    Иван
    17.05.2018 at 22:42

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

Александр
16.04.2019 at 15:48

Правильно ли я понял, что код счетчика метрики должен стоять ДО кода с передачей параметров?

    Иван
    11.05.2019 at 18:39

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

Оставить комментарий
Для добавления комментария — заполните форму!

Нажимая на кнопку, вы даете согласие на обработку персональных данных и соглашаетесь c обработкой персональных данных