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

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

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

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

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

В Google Analytics для этих целей используются пользовательские параметры и показатели, в Яндекс Метрике параметры визитов. Параметры визита описываются следующим образом:

В качестве имени переменной yaParams может быть использовано любое другое.

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

Параметры вызитов в исходном коде

Параметры вызитов в исходном коде

После того, как страница загружена в браузер пользователя:

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

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

Для того, чтобы эти данные «попали» в Яндекс Метрику необходимо в исходный код счетчика добавить всего одну строчку:

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

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

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

Доступ к отчету с параметрами витов в Яндекс Метрике

Доступ к отчету с параметрами витов в Яндекс Метрике

Данные отображаются в отчетах:

Информация в отчете

Информация в отчете

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

Чтобы передать сведения в уровень данных используется конструкция вида:

После этого в Google Tag Manager можно настроить получение соответствующих параметров и их значений. Помимо описанной выше конструкции (которая используется ПОСЛЕ кода контейнера Google Tag Manager), есть возможность описать уровень данных ДО кода контейнера, в этом случае код выглядит следующим образом:

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

Итак, у нас есть три параметра, которые мы хотим передать в Яндекс Метрику и Google Analytics:

  • признак, что пользователь авторизован;
  • категория пользователя — лучший пользователь;
  • индивидуальная скидка пользователя, для примера 25%.

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

Передаем параметры в Google Analytics (он у нас настроен через Google Tag Manager и мы используем уровень данных для передачи данных):

Теперь посмотрим, какие данные доступны для передачи:

Данные для передачи

Данные для передачи

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

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

Важно! Описание параметров в dataLayer должно быть ДО кода контейнера Google Tag Manager и ДО кода Яндекс Метрики.

Внесем изменения в код счетчика Яндекс Метрики, вместо строки:

Исходный код счетчика

Исходный код счетчика

укажем строку:

Измененный код счетчика Яндекс Метрики

Измененный код счетчика Яндекс Метрики

Теперь мы имеем (в порядке следования в исходном коде сайта, п. 2 и п. 3 могут меняться местами):

  • описание уровня данных или dataLayer;
  • код Google Tag Manager;
  • код Яндекс Метрики (он может быть также размещен в Google Tag Manager).

Посетим страницу сайта и посмотрим на информацию в отчете Яндекс Метрики:

Переданные данный из dataLayer в отчете Яндекс Метрики

Переданные данный из dataLayer в отчете Яндекс Метрики

Если посмотреть на отладчик Google Tag Manager, то в нем также присутствует необходимая нам информация, которую теперь легко передать в Google Analytics использую пользовательские параметры:

Данные в Google Tag Manager

Данные в Google Tag Manager

Описанный способ демонстрирует возможность использования dataLayer или уровень данных Google Tag Manager в Яндекс Метрике, но есть несколько важных замечаний:

  1. Если вы обратили внимание, то мы передавали в Яндекс Метрику уровень данных в виде dataLayer[0]. В нашем случае ноль, это первая «порция» данных отправленных в уровень данных. Если у вас будет использоваться конструкция вида dataLayer.push(), то вместо 0 должен быть использовать соответствующий индекс, который равен порядковому номеру минус 1, передачи данных в уровень данных. В материале есть ссылка на описание уровня данных, обратите на нее внимание, чтобы понять принцип его работы.
  2. Использовать передачу параметров визитов можно не только при инициализации счетчика, по этой причине также вместо 0 необходимо использовать соответствующий индекс.
Рассылка бесплатных кейсов, инструкций, обзоров
Нажимая на кнопку, вы даете согласие на обработку персональных данных и соглашаетесь c политикой конфиденциальности
Ежедневные новости из мира аналитики в Telegram канале
Настройки, интеграции, примеры реальных задач, пошаговые инструкции
материалы ПО ТЕМЕ:
ОБСУЖДЕНИЕ:
Сергей
09.09.2015 at 18:30

Иван, спасибо очень помогли!

На основании материала этой статьи можно передать в GA поисковые запросы из Яндекса. Ассоциировать пользователя по ID, экспортировать из Яндекса и передать в GA по measurement protocol. Надеюсь напишите материал на эту тему.

Виктор
10.11.2015 at 13:23

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

Подскажите, пожалуйста, можно при установке кода поставить вначале код tag manager, потом код метрики с добавленным параметром params:window.dataLayer [0] , а код datalayer не ставить самым первым, ведь он уже и так указан в коде tag manager Как я понимаю его ставят самым первым только на определенных страницах, где мы явно хотим указать определенные значения, которые надо положить в dataLayer Я делаю настройку первый раз и пока все эти значения для отслеживания планирую настраивать через панель управления tag manager. Соответственно если код tag manager стоит перед кодом метрики, то и данные уже будут в dataLayer и будут корректно отправляться в метрику.

    Иван
    10.11.2015 at 14:57

    Виктор, дело в том, где и как определяется уровень данных, какие манипуляции с ним выполняются до его использования

Дмитрий
12.11.2015 at 18:32

Здравствуйте! Как настроить отслеживание значений, которые заполняются в фильтре. Например, указываю промежуток значений для выбора товара и нажимаю на кнопку «подобрать». Можно ли вообще это отследить? Спасибо

    Иван
    17.11.2015 at 11:34

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

Александр
27.11.2015 at 15:13

подскажите, а как можно передавать спец. параметры после инициализации счетчика? То есть, когда происходит в таком порядке: сначала грузится GTM, потом переменным, которые мы передаем в GA, присваиваются значения, потом через datalayer мы передаем эти значения переменных в GTM…

    Иван
    30.11.2015 at 10:00

    Способ передачи не зависит от места определения значения. Передаются любым типом хита

Александр
03.12.2015 at 12:06

Иван, здравствуйте! Сделал передачу данных по вашей статье: у меня сначала стоит код GTM, потом на сайте описываются переменные c2n.me/3rc1iG2.png, счетчик га и яндекс метрики вызывается триггером «модель DOM готова» , прописал строчку в счетчик метрики c2n.me/3rc1ziy.png , но данные в метрику почему-то не идут (в ГА передаются). Подозреваю, что строчку в счетчике метрики нужно как-то изменить…

    Иван
    08.12.2015 at 09:08

    Александр, у Вас не правильно «активирована» расширенная торговля в Яндекс Метрике. На одном из скриншотов выше есть строчка, которая должна быть внесена в код отслеживания Яндекс Метрики

Александр
09.12.2015 at 12:06

Поправил код по расширен. торговли http://c2n.me/3rt3hSJ.png, но данных о кастомных параметрах все равно нет http://c2n.me/3rt2NdJ.png . До этого у меня передавались кастомные параметры в метрику корректно http://c2n.me/3rt3E8q.png, но тогда у меня параметры описывались до кода GTM . Сейчас у меня параметры описываются после кода GTM и вот наблюдается проблема. Может с этим параметром что-то не так http://c2n.me/3rt3tLb.png ?

    Иван
    12.12.2015 at 23:35

    Александр, для поиска проблемы необходимо работать с конкретной страницей сайта, поскольку причин может быть много

Сергей
23.03.2018 at 12:32

Здравствуйте.
А будет ли работать передача параметров визитов в метрике, если их передавать прямо через ГТМ, при этом сам счетчик метрики установлен на прямую в код.

Такой код, например, передавать через гтм

var yaParams = {имя_параметра:’значение параметра’};

    Иван
    17.05.2018 at 22:38

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

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

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