Настройка Яндекс Метрики для использования с dataLayer
При отслеживании действий пользователя мы используем различные свойства, которыми помечаем некоторые группы посетителей для удобства сегментирования.
В Google Analytics для этих целей используются пользовательские параметры и показатели, в Яндекс Метрике параметры визитов. Параметры визита описываются следующим образом:
В качестве имени переменной yaParams может быть использовано любое другое.
Давайте посмотрим, как выглядят данные передаваемые в качестве параметров визитов в консоли браузера. В исходном коде страницы параметры описаны следующим образом:
После того, как страница загружена в браузер пользователя:
Для того, чтобы эти данные "попали" в Яндекс Метрику необходимо в исходный код счетчика добавить всего одну строчку:
После этого данные будут доступны в отчетах. Найти нужный отчет можно следующим образом (см. ниже), а также использовать из при подготовке нужного сегмента:
Данные отображаются в отчетах:
Зачастую на сайте используется две системы аналитики Яндекс Метрика и Google Analytics. Сейчас практически все новые внедрения Google Analytics на сайт выполняются с помощью Google Tag Manager, это значительно упрощает процесс внедрения, снижает зависимость от разработчиков и позволяет оперативно вносить изменения в настройки Google Analytics. При настройке отслеживания действий пользователя на сайте, если используется Google Tag Manager, если необходимо передать дополнительную информацию, применяют возможности уровня данных или dataLayer.
Чтобы передать сведения в уровень данных используется конструкция вида:
dataLayer.push({'param':'value'});
После этого в Google Tag Manager можно настроить получение соответствующих параметров и их значений. Помимо описанной выше конструкции (которая используется ПОСЛЕ кода контейнера Google Tag Manager), есть возможность описать уровень данных ДО кода контейнера, в этом случае код выглядит следующим образом:
dataLayer = [{'param':'value'}];
Давайте предположим, что мы используем пометку посетителя, который является авторизованным пользователем нашего сайта и он отнесен к категории лучших покупателей. При этом каждый пользователь нашего сайта имеет уникальную скидку, которая рассчитывается исходя из его прошлых покупок.
Итак, у нас есть три параметра, которые мы хотим передать в Яндекс Метрику и Google Analytics:
- признак, что пользователь авторизован;
- категория пользователя - лучший пользователь;
- индивидуальная скидка пользователя, для примера 25%.
Передаем параметры в Яндекс Метрику:
Передаем параметры в Google Analytics (он у нас настроен через Google Tag Manager и мы используем уровень данных для передачи данных):
Теперь посмотрим, какие данные доступны для передачи:
Как видите несмотря на то, что мы использовали несколько отличающиеся варианты описания параметров, с технической точки зрения они выглядят одинаково. Раз это так зачем нам использовать два описания одного и того-же? Нужно убрать один из вариантов, но какой?
Если мы уберем второй вариант, где параметры описаны через уровень данных, а вместо этого попробуем передать в Google Tag Manager переменную yaParams, то у нас ничего не выйдет. Но если мы уберем yaParams и вместо него в коде счетчика будем использовать dataLayer, то у нас может получится то, что нужно.
Важно! Описание параметров в dataLayer должно быть ДО кода контейнера Google Tag Manager и ДО кода Яндекс Метрики.
Внесем изменения в код счетчика Яндекс Метрики, вместо строки:
укажем строку:
Теперь мы имеем (в порядке следования в исходном коде сайта, п. 2 и п. 3 могут меняться местами):
1. описание уровня данных или dataLayer; 2. код Google Tag Manager; 3. код Яндекс Метрики (он может быть также размещен в Google Tag Manager).
Посетим страницу сайта и посмотрим на информацию в отчете Яндекс Метрики:
Если посмотреть на отладчик Google Tag Manager, то в нем также присутствует необходимая нам информация, которую теперь легко передать в Google Analytics использую пользовательские параметры:
Описанный способ демонстрирует возможность использования dataLayer или уровень данных Google Tag Manager в Яндекс Метрике, но есть несколько важных замечаний:
1. Если вы обратили внимание, то мы передавали в Яндекс Метрику уровень данных в виде dataLayer[0]. В нашем случае ноль, это первая "порция" данных отправленных в уровень данных. Если у вас будет использоваться конструкция вида dataLayer.push(), то вместо 0 должен быть использовать соответствующий индекс, который равен порядковому номеру минус 1, передачи данных в уровень данных. В материале есть ссылка на описание уровня данных, обратите на нее внимание, чтобы понять принцип его работы.
2. Использовать передачу параметров визитов можно не только при инициализации счетчика, по этой причине также вместо 0 необходимо использовать соответствующий индекс.