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

Рассмотрим пример настройки расширенной электронной торговли в Яндекс Метрике на основе данных передаваемых в 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.

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

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

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

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

Кейсы и инструкции по настройке в вашем ящике. Подпишитесь сейчас!
я даю согласие на обработку персональных данных

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

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

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

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

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

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

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

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

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

    analytics_debug.js:9 Linker disabled. Ignoring linker parameter

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

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

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

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

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

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

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

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

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

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

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

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

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

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

      • Дмитрий 26.11.2015 в 20:58 -

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  24. Алексей Опанасенко 05.10.2016 в 20:54 - Ответить

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

  25. Алексей Опанасенко 07.10.2016 в 12:34 - Ответить

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

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

  26. Алексей Опанасенко 10.10.2016 в 20:12 - Ответить

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

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

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

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

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

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

      • Антон 29.05.2017 в 11:46 -

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Добавить комментарий для Иван Отменить ответ

Current month ye@r day *