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

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

Инструкция по настройке расширенной электронной торговли в Яндекс Метрике

Материал обновлен 23:01:2022

Рассмотрим пример настройки расширенной электронной торговли в Яндекс Метрике на основе данных передаваемых в Google Analytics через уровень данных (dataLayer).

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

Мы имеем возможность фиксировать в Яндекс Метрике следующие действия, связанные с электронной торговлей:

  • detail — просмотр карточки товара;
  • add/remove — добавление/удаление товара в/из корзины;
  • purchase — транзакция.

Это конечно все еще уступает возможностям расширенной электронной торговле Google Analytics, но уже лучше, чем просто фиксация информации о транзакции.

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

Отчеты по электронной торговле расположены в соответствующем меню:

Отчеты по электронной торговле Яндекс Метрики

Отчеты по электронной торговле Яндекс Метрики

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

Настройка расширенной электронной торговли в Яндекс Метрике

Настройка расширенной электронной торговли в Яндекс Метрике

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

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

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

Изменения в коде Яндекс Метрики

Предположим у вас не внедрена расширенная электронная торговля Google Analytics, но вы хотите использовать эту возможность в Яндекс Метрике. Для этого вам необходимо:

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

выполнить код JavaScript, который передаст в Яндекс Метрику сведения об электронной торговле.

Перед тем как мы будем описывать действия с товарами необходимо убедиться в том, что у вас существует объект уровня данных dataLayer. Он должен быть инициализирован ДО кода Яндекс Метрики. За помощью в этом вопросе обратитесь к вашим разработчикам. Не забудьте, что инициализация объекта должна выполняться единожды на странице!

Если вы не используете Google Tag Manager, то перед кодом Яндекс Метрики разместите строку:

Код счетчика будет примерно следующим:

Код Яндекс Метрики

Обратите внимание на строку 17, это инструкция создания объекта уровня данных.

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

Первое действие — просмотр карточки товара.

Каждый товар/услугу мы можем описать следующими полями:

  • id — уникальный идентификатор;
  • name — название товара;
  • brand — бренд или торговая марка;
  • category — категория (до 5 уровней вложенности, разделяемых знаком /)
  • coupon — промокод;
  • position — позиция товара в списке;
  • price — стоимость единицы товара;
  • quantity — количество единиц товара;
  • variant — вариант товара.

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

После этого у вас появится информация о просмотрах карточек товаров в отчетах по электронной торговле Яндекс Метрики:

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

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

Добавив в описание товара параметр position, вы сможете узнать какая позиция товара в списке товаров наиболее кликабельна:

Позиция товара в списке товаров

Позиция товара в списке товаров

Пример кода описывающий товар до кода Яндекс Метрики:

Следующие действия — добавление товара в корзину / удаление товара из корзины.

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

  • add — для добавления товара в корзину;
  • remove — для удаления товара из корзины.

Также необходимо указать количество добавляемых/удаляемых товаров, это делается с помощью параметра quantity:

Пример кода для добавления товара в корзину:

После этого в отчетах по электронной торговле Яндекс Метрики появится соответствующая информация:

Товары в корзине

Товары в корзине

Заключительное действие — транзакция.

Необходимо выполнить все тоже самое, что и для фиксации просмотра карточки товара, только код должен быть следующим:

Вы можете дополнительно указать сведения о промо коде, если такой можно использовать при фиксации транзакции, параметр coupon.

После этой настройки данные будут доступны в отчетах Яндекс Метрики:

Фиксация транзакции в Яндекс Метрике

Фиксация транзакции в Яндекс Метрике

 На этом настройка электронной торговли для Яндекс Метрики может считаться завершенной.

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

dataLayer.push({
‘ecommerce’ : {
‘add’ : {
……………………..
Как привязать к кнопке «Добавить в корзину» на карточке товара событие, по которому будет передаваться выше указанный dataLayer в метрику?
Заранее большое спасибо!

    Иван
    15.10.2015 at 14:32

    Дмитрий, через событие onclick()

Дмитрий
15.10.2015 at 14:40

Спасибо за Ваш ответ!
То есть получается, что вот так?
Button 1

    Иван
    15.10.2015 at 21:59

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

Татьяна
15.10.2015 at 17:14

Эти настройки подходят только для интернет-магазинов или сервису электронной коммерции тоже подойдут?

    Иван
    15.10.2015 at 22:00

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

Максим
19.10.2015 at 11:00

Иван, добрый день!
Подскажите как лучше настроить событие на форму регистрации.

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

Цель настроить передачу события в UA по кнопке зарегистрироваться. Сейчас при повторном возврате по факту статистика регистрации искажается. Подскажи как можно сделать ? Можно ли как то отправку сделать в data layer после проверки в БД ?

Максим
21.10.2015 at 18:24

Иван, настраиваю междоменное отслеживание.
1) создал тег UA
2) в поле междоменное отсдеживание прописал домены: sait2, sait3
3) дополнительные поля
allowlinker значение true
Данные client id при переходе в строку браузера подставляются
Но в источниках событий я так же вижу реферал с первого сайта.

В чем не правильная настройка, так же вижу

analytics_debug.js:9 Linker disabled. Ignoring linker parameter

Сергей
23.10.2015 at 12:11

Всем привет! А как сделать чтобы считал доход и показывал его в разделе «Заказы»? Кол-во покупок показывает, а вот в столбике доход нули, хотя сумму заказа указывал в счетчике.

    Иван
    30.10.2015 at 20:04

    Сергей, не совсем понятен Ваш вопрос, приложите скриншот или напишите мне напочту

seoonly.ru
26.10.2015 at 08:06

Спасибо большое за инструкцию

Дмитрий
02.11.2015 at 13:13

У меня проблема название товаров и количества передаются, а колонка с «Стоимость добавленных в корзину товаров» одни нули, хотя цену отправляю и в алерте ее показывает. вот мой код

dataLayer.push({
«ecommerce»: {
«currencyCode»: «RUB»,
«add»: {
«products»: [
{
«id»: newItem.name,
«name»: newItem.nazvanie.replace(//g, «»),
«price»: newItem.price,
«quantity»: newItem.quantity
}
]
}
}
});

Дмитрий
02.11.2015 at 13:36

хотя в отчете «Популярные товары» вся стоимость отображается. Это баг метрики я так понимаю?

Иван
03.11.2015 at 11:26

У меня та же проблема, не передается стоимость. И действительно, в отчете “Популярные товары” метрика «Стоимость» показывает суммы! Но в «Доходы» отчетов суммы не идут!
Что делать??

    Иван
    03.11.2015 at 11:36

    Может быть проблемы на стороне Метрики. Функционал новый, могут быть накладки

Денис
03.11.2015 at 14:41

Добрый день, Иван!
Не могли бы вы уточнить: действие «просмотр карточки товара» описывается либо до либо после кода метрики? или и до и после?

    Иван
    04.11.2015 at 20:41

    Денис, достаточно одного описания в любом месте

Алексей
05.11.2015 at 01:04

Спасибо за статью!
Возможно стоит дописать в примеры передачу валюты
«currencyCode»: «RUB»,

Та же проблема — цену шлю а в отчетах нет данных.

Андрей
09.11.2015 at 06:16

Очень полезная статья, спасибо! Подскажите новичку пож-та — цену и все дополнительные информационные поля нужно руками прописывать? и нужно код в каждую карточку добавлять руками? или можно это ускорить?

    Иван
    10.11.2015 at 14:53

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

Михаил
19.11.2015 at 18:27

«Перед тем как мы будем описывать действия с товарами необходимо убедиться в том, что у вас существует объект уровня данных dataLayer. Он должен быть инициализирован ДО кода Яндекс Метрики.» — при использовании GTM как это реализовать?

Михаил
21.11.2015 at 21:12

Сделал всё по инструкции. В метрике данные появляются (конечно через одно место, то корзин нету то ещё чего … вобщем всё что описано выше), а вот в Google Analytics нет …
Что ему не хватает? Коммерция включена.

Михаил
21.11.2015 at 21:32

«а вот в Google Analytics нет …» — нашёл ответ тут — https://prometriki.ru/rasshirennay-torgovly-google-analytics-rekomendacii-po-vnedreniu/ , было не включено в теге сбор «необходимо в тегах типа Universal Analytics дополнительно включить соответствующий переключатель.»

Дмитрий
25.11.2015 at 00:02

Здравствуйте Иван.
Спасибо за статью.
Подскажите пожалуйста, все эти коды надо оборачивать в теги script /script ?
И где размещать коды добавления и удаления товара, на странице корзины?

    Иван
    26.11.2015 at 09:55

    Дмитрий, код JavaScript На странице обрамляется тегами . Где размещать код взаимодействия с корзиной — зависит от Вашего сайта. Общий совет: там где есть такие действия, код должен быть

    Дмитрий
    26.11.2015 at 20:58

    Спасибо попробую их разместить оба в корзине.
    А транзакция это же финал оформления? Т.е. разместить на странице «спасибо за покупку?

    Иван
    27.11.2015 at 11:51

    Все зависит от логики работы сайта, но в общем случае — да

Александр
14.12.2015 at 06:32

Товарищи, а как передать в quantity количество товара из «соседнего» поля инпут? )))

    Иван
    14.12.2015 at 17:58

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

Артур
14.01.2016 at 15:04

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

    Иван
    15.01.2016 at 15:07

    1. Нужно использовать расширенную торговлю
    2. Нужно в ЯМ активировать сбор данных по расширенной торговле
    3. Нужно использовать корректный код в правильной последовательности

    Если эти условия соблюдены — то не нужно ничего добавлять. Яндекс Метрика теперь использует код для транзакций от Google Analytics

Наталья
03.03.2016 at 12:44

подскажите, пожалуйста, при нажатии на кнопку добавления товара в корзину вызывается функция, в которой конструкция такого типа
dataLayer.push({
‘ecommerce’ : {
‘add’ : {
‘products’ : [
{
‘name’ : ‘@productName@’,
‘id’ : @productUid@,
‘price’ : @productPrice@,
‘quantity’: 1
}
]
}
}
});
}

здесь нужно использовать dataLayer.push({}) либо dataLayer = [{}] ?
почему -то данные не отображаются в отчетах(

Михаил
19.04.2016 at 23:38

Иван, добрый вечер.
Подскажите, хотим в Метрику передавать еще стоимость доставки и способ. Как их лучше передать?

    Иван
    20.04.2016 at 11:28

    Михаил, стоимость доставки — параметр shipping в описании транзакции, для способа доставки попробуйте настроить параметры визитов

Игорь
07.06.2016 at 20:56

1. Нужно использовать расширенную торговлю
2. Нужно в ЯМ активировать сбор данных по расширенной торговле
3. Нужно использовать корректный код в правильной последовательности

Если эти условия соблюдены – то не нужно ничего добавлять. Яндекс Метрика теперь использует код для транзакций от Google Analytics

А можно по подробнее раскрыть этот момент!

Если я настроил — Google Analytics — то там нет ни какого dataLayer

Это только наверное в Google Tag Manager?

    Иван
    08.06.2016 at 10:04

    Игорь, верно. Для Яндекс Метрики необходимы инструкции расширенной торговли, которые используются для Google Tag Manager

Елена
12.06.2016 at 12:43

Добрый день.
Мой код:
dataLayer.push({
‘ecommerce’ : {
‘detail’ : {
‘products’ : [
{
‘name’ : ‘product_name’, //обязательное
‘id’ : ‘product_sku’, //обязательное
‘price’ : ‘product_price’,
‘category’ : ‘category_name’,

}
]
}
}
});
В отчете Я.Метрика по товарам я вижу только одну строчку:
product_name ______визиты__просмотры __ и т.д.

Так и должно быть? А как же увидеть именно перечень товара?

    Иван
    13.06.2016 at 12:49

    Елена, какой перечень Вам необходимо увидеть?

    Елена
    15.06.2016 at 13:02

    Иван, перечень товаров.
    товар 1 ____ визиты _промотры
    товар 2____ визиты__просмотры.
    И тоже самое по категориям.
    Наверное в код нужно что-то добавить?

    Иван
    15.06.2016 at 13:06
Артем
01.07.2016 at 13:15

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

1. Нужно использовать расширенную торговлю
2. Нужно в ЯМ активировать сбор данных по расширенной торговле
3. Нужно использовать корректный код в правильной последовательности
Если эти условия соблюдены – то не нужно ничего добавлять. Яндекс Метрика теперь использует код для транзакций от Google Analytics

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

    Иван
    01.07.2016 at 14:59

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

Артем
01.07.2016 at 16:01

Может есть какой-то вариант готовый вариант внедрения с помощью GTM? Сайт shiny-diski.com.ua

Александр
20.07.2016 at 16:55

Добрый день! Подскажите пожалуйста, можно ли описывать/использовать только одно событие «Покупка (метод purchase)» на сайте? То есть без detail, добавление/удаление в корзину.

    Иван
    20.07.2016 at 20:41

    Да, возможно, только для фиксации трнзакций

Алексей Опанасенко
05.10.2016 at 20:54

Не встречали такого, чтобы учитывались не все продажи? То есть, всё работает корректно, но примерно 5% продаж в статистику не попадает. В чём может быть проблема? У вас статистика точная?

Алексей Опанасенко
07.10.2016 at 12:34

Разве е-коммерция в Метрике не только через DataLayer делается? Я не нашёл других способов.

    Иван
    09.10.2016 at 19:18

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

Алексей Опанасенко
10.10.2016 at 20:12

Спасибо за ответ. В том то и дело, что не могу найти закономерностей.
Думал, есть какие-то соображения на этот счёт.

Андрей
03.12.2016 at 12:55

Здравствуйте. Подскажите пожалуйста можно ли реализовать на insales электронную коммерцию? очень надо. Не нахожу инструкций в интернете, видимо никто до этого не делал.

    Иван
    03.12.2016 at 22:02

    Здравствуйте. Я не занимаюсь работой с кодом сайта при внедрении расширенной торговли, по этой причине ответить Вам не смогу

Влад
25.04.2017 at 21:20

Здравствуйте! Подскажите пожалуйста как сделать чтобы в purchase передавались все товары? У меня передается только 1 товар. Гугл аналитикс схватывает все позиции через foreach, а метрика только первый. Не пойму куда копать.

Антон
26.05.2017 at 12:43

Здравствуйте!
Какой ID надо поставит в «actionField»: {«id» : » ??????? «} ?
Правильно ли поставил в » goal_id » номер цели ?
И сделать так что бы отчеты платежей видно было в Электронной коммерция -> Заказы ?
За ранее спасибо .

    Иван
    27.05.2017 at 21:20

    Антон, в параметре actionField -> id необходимо указать идентификатор транзакции, который присваивается Вашей системой учета заказов. Если Вам необходимо отслеживать цель на совершение покупки, то это возможно настройкой цели на посещение определенной страницы или JavaScript событие

    Антон
    29.05.2017 at 11:46

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

    Иван
    30.05.2017 at 00:34

    Антон, если у Вас нет информации о расширенной торговле то необходимо:

    • — включить опцию в настройках кода Метрики
    • — код на сайте, описывающий данные о товарах, должен быть для Google Tag Manager

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

Макс
26.05.2017 at 12:48

Мне тоже очень интересен вопрос Антона. В документации не нашел ответа.

Никита
21.07.2017 at 00:09

В GA можно скармливать dataLayer данные вызвав какое-нибудь событие через dataLayer. Пройдёт ли это с метрикой?

    Иван
    21.07.2017 at 22:48

    Уточните свой вопрос

Юрий
16.10.2017 at 23:58

Здравствуйте, Иван! Помогите, пожалуйста, разобраться:

Я подключил Электронную Коммерцию Метрики, как у вас это описано. В начале сайта у меня грузится счетчик Метрики со строкой window.dataLayer = window.dataLayer || []; в середине страницы через dataLayer.push отправляются данные о заказе.
Все работает.
Тогда я решил подключить еще и Электронную Торговлю Гугл Аналитикс. Сделал и настроил аккаунт в Тэг Менеджере, В КОНЕЦ СТРАНИЦЫ прописал 3 блока кода Гугл — один от Аналитикса и два — от ТэгМенеджера.
В середине страницы сделано добавление данных о транзакции для Гугл, но через dataLayer = [ ], так как для Гугла описан этот метод в их документации.

Гугл заработал, но в Метрику данные перестали передаваться.

У меня есть подозрение, что это из-за контейнеров Тэг Менеджера — там видимо происходит повторная инициализация объекта window.dataLayer = window.dataLayer || [] и данные Метрики затираются… Удаляю всю часть от Гугл — работает Метрика, добавляю Гугл — он работает, но Метрика перестает.

Помогите, пожалуйста, понять, в какой последовательности располагать код, в какой момент инициализировать window.dataLayer = window.dataLayer || [], чтобы работал и гугл и метрика. Буду бесконечно благодарен!

Юрий
17.10.2017 at 00:21

Методом проб и ошибок я дошел до того, что, насколько я понимаю, это не коды от Метрики и Гугла конфликтуют, получается, что я, подряд вызывая два скрипта по передаче заказов в системы статистики, видимо, затираю данные?

Я сначала пишу данные для Метрики:

dataLayer.push({
‘ecommerce’: {
‘purchase’: {
‘actionField’: {
‘id’ : ‘Metrika001’
},
‘products’: [{…}]
} } });

а потом для Гугл:

dataLayer = [{
‘transactionId’: ‘Googl001’,

‘transactionProducts’: [{…}]
}];

Вот это вот и затирает одно другое? Как же сделать, чтобы и Гугл и Яндекс передавались?

    Иван
    20.10.2017 at 23:49

    Юрий, для Google Analytics и Яндекс Метрики нужно использовать один фрагмент кода. Метрика сама все «подтянет» , а для Google Analytics потребуется дополнительно создать тег в Google Tag Manager. Место размещения — я бы рекомендовал ПОСЛЕ кода контейнера

Андрей
11.04.2022 at 14:54

Только непонятно как на вордпрессе менять код сайта?

    promet
    24.04.2022 at 10:14

    Можно использовать плагины либо обратиться к разработчикам

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

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