При отслеживании действий пользователя мы используем различные свойства, которыми помечаем некоторые группы посетителей для удобства сегментирования.
В Google Analytics для этих целей используются пользовательские параметры и показатели, в Яндекс Метрике параметры визитов. Параметры визита описываются следующим образом:
1 2 3 |
<script type="text/javascript"> var yaParams = {имя_параметра:'значение параметра'}; </script> |
В качестве имени переменной yaParams может быть использовано любое другое.
Давайте посмотрим, как выглядят данные передаваемые в качестве параметров визитов в консоли браузера. В исходном коде страницы параметры описаны следующим образом:
После того, как страница загружена в браузер пользователя:
Для того, чтобы эти данные “попали” в Яндекс Метрику необходимо в исходный код счетчика добавить всего одну строчку:
После этого данные будут доступны в отчетах. Найти нужный отчет можно следующим образом (см. ниже), а также использовать из при подготовке нужного сегмента:
Данные отображаются в отчетах:
Зачастую на сайте используется две системы аналитики Яндекс Метрика и Google Analytics. Сейчас практически все новые внедрения Google Analytics на сайт выполняются с помощью Google Tag Manager, это значительно упрощает процесс внедрения, снижает зависимость от разработчиков и позволяет оперативно вносить изменения в настройки Google Analytics. При настройке отслеживания действий пользователя на сайте, если используется Google Tag Manager, если необходимо передать дополнительную информацию, применяют возможности уровня данных или dataLayer.
Чтобы передать сведения в уровень данных используется конструкция вида:
1 |
dataLayer.push({'param':'value'}); |
После этого в Google Tag Manager можно настроить получение соответствующих параметров и их значений. Помимо описанной выше конструкции (которая используется ПОСЛЕ кода контейнера Google Tag Manager), есть возможность описать уровень данных ДО кода контейнера, в этом случае код выглядит следующим образом:
1 |
dataLayer = [{'param':'value'}]; |
Давайте предположим, что мы используем пометку посетителя, который является авторизованным пользователем нашего сайта и он отнесен к категории лучших покупателей. При этом каждый пользователь нашего сайта имеет уникальную скидку, которая рассчитывается исходя из его прошлых покупок.
Итак, у нас есть три параметра, которые мы хотим передать в Яндекс Метрику и Google Analytics:
Передаем параметры в Яндекс Метрику (для передачи сведений о категории пользователя и скидке можно использовать параметры посетителей Яндекс Метрики, а не параметры визита):
1 2 3 |
<script type="text/javascript"> var yaParams = { auth:'yes', type:'best', discount:'25%' }; </script> |
Передаем параметры в Google Analytics (он у нас настроен через Google Tag Manager и мы используем уровень данных для передачи данных):
1 2 3 |
<script type="text/javascript"> var dataLayer = [{ 'auth':'yes', 'type':'best', 'discount':'25%' }]; </script> |
Теперь посмотрим, какие данные доступны для передачи:
Как видите несмотря на то, что мы использовали несколько отличающиеся варианты описания параметров, с технической точки зрения они выглядят одинаково. Раз это так зачем нам использовать два описания одного и того-же? Нужно убрать один из вариантов, но какой?
Если мы уберем второй вариант, где параметры описаны через уровень данных, а вместо этого попробуем передать в Google Tag Manager переменную yaParams, то у нас ничего не выйдет. Но если мы уберем yaParams и вместо него в коде счетчика будем использовать dataLayer, то у нас может получится то, что нужно.
Важно! Описание параметров в dataLayer должно быть ДО кода контейнера Google Tag Manager и ДО кода Яндекс Метрики.
Внесем изменения в код счетчика Яндекс Метрики, вместо строки:
укажем строку:
Теперь мы имеем (в порядке следования в исходном коде сайта, п. 2 и п. 3 могут меняться местами):
Посетим страницу сайта и посмотрим на информацию в отчете Яндекс Метрики:
Если посмотреть на отладчик Google Tag Manager, то в нем также присутствует необходимая нам информация, которую теперь легко передать в Google Analytics использую пользовательские параметры:
Описанный способ демонстрирует возможность использования dataLayer или уровень данных Google Tag Manager в Яндекс Метрике, но есть несколько важных замечаний:
Настройки, интеграции, примеры реальных задач, пошаговые инструкции
Иван, спасибо очень помогли!
На основании материала этой статьи можно передать в GA поисковые запросы из Яндекса. Ассоциировать пользователя по ID, экспортировать из Яндекса и передать в GA по measurement protocol. Надеюсь напишите материал на эту тему.
Иван, добрый день!
Подскажите, пожалуйста, можно при установке кода поставить вначале код tag manager, потом код метрики с добавленным параметром params:window.dataLayer [0] , а код datalayer не ставить самым первым, ведь он уже и так указан в коде tag manager Как я понимаю его ставят самым первым только на определенных страницах, где мы явно хотим указать определенные значения, которые надо положить в dataLayer Я делаю настройку первый раз и пока все эти значения для отслеживания планирую настраивать через панель управления tag manager. Соответственно если код tag manager стоит перед кодом метрики, то и данные уже будут в dataLayer и будут корректно отправляться в метрику.
Виктор, дело в том, где и как определяется уровень данных, какие манипуляции с ним выполняются до его использования
Здравствуйте! Как настроить отслеживание значений, которые заполняются в фильтре. Например, указываю промежуток значений для выбора товара и нажимаю на кнопку “подобрать”. Можно ли вообще это отследить? Спасибо
Дмитрий, можно настроить практически любое взаимодействие с фильтром. Для этого нужно проработать схему учета данных, а затем с помощью JavaScript реализовать
подскажите, а как можно передавать спец. параметры после инициализации счетчика? То есть, когда происходит в таком порядке: сначала грузится GTM, потом переменным, которые мы передаем в GA, присваиваются значения, потом через datalayer мы передаем эти значения переменных в GTM…
Способ передачи не зависит от места определения значения. Передаются любым типом хита
Иван, здравствуйте! Сделал передачу данных по вашей статье: у меня сначала стоит код GTM, потом на сайте описываются переменные c2n.me/3rc1iG2.png, счетчик га и яндекс метрики вызывается триггером “модель DOM готова” , прописал строчку в счетчик метрики c2n.me/3rc1ziy.png , но данные в метрику почему-то не идут (в ГА передаются). Подозреваю, что строчку в счетчике метрики нужно как-то изменить…
Александр, у Вас не правильно “активирована” расширенная торговля в Яндекс Метрике. На одном из скриншотов выше есть строчка, которая должна быть внесена в код отслеживания Яндекс Метрики
Поправил код по расширен. торговли http://c2n.me/3rt3hSJ.png, но данных о кастомных параметрах все равно нет http://c2n.me/3rt2NdJ.png . До этого у меня передавались кастомные параметры в метрику корректно http://c2n.me/3rt3E8q.png, но тогда у меня параметры описывались до кода GTM . Сейчас у меня параметры описываются после кода GTM и вот наблюдается проблема. Может с этим параметром что-то не так http://c2n.me/3rt3tLb.png ?
Александр, для поиска проблемы необходимо работать с конкретной страницей сайта, поскольку причин может быть много
Здравствуйте.
А будет ли работать передача параметров визитов в метрике, если их передавать прямо через ГТМ, при этом сам счетчик метрики установлен на прямую в код.
Такой код, например, передавать через гтм
var yaParams = {имя_параметра:’значение параметра’};
Здравствуйте, Ваш код не передает, а только описывает параметры. Если сам код счетчика Яндекс Метрики размещен в коде страницы, а например, reachGoal используется в Google Tag Manager, то все должно работать корректно