Как я включаю электронную коммерцию в Яндекс Метрике

14.10.2026 · 8 мин чтения
Тёмный пакет и панель с коралловой кромкой на почти чёрном фоне
Я включаю электронную коммерцию в Яндекс Метрике, когда магазину нужно отдать Директу покупку с товарами и суммой. Обычная цель фиксирует факт: человек открыл страницу благодарности или отправил форму. Сумму заказа передаёт событие purchase. Контейнер dataLayer забирает действие, состав корзины и деньги. Дальше три шага: переключатель в счётчике, события со страниц и проверка, что покупка дошла до кабинета.

Как я включаю режим в счётчике

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

Что меняется в коде счётчика

  1. Открываю нужный счётчик и захожу в настройки.
  2. В разделе электронной коммерции включаю опцию.
  3. В код попадает параметр ecommerce со значением dataLayer. При инициализации скриптом то же поле бывает true.
  4. До загрузки счётчика создаю массив window.dataLayer. Иначе push не находит контейнер, и в консоли пустота или dataLayer is not defined.
Массив создаю до счётчика на каждой странице воронки. Заготовка такая: window.dataLayer равен самому себе или пустому массиву. Если строка стоит ниже счётчика, первое событие уходит в пустоту, хотя опция в настройках уже включена.
После сохранения автоцель появляется на первом живом событии add или purchase. Обычно это сутки или двое. Переключатель сам событие не создаёт.
Тёмная консоль с коралловым переключателем на чёрном фоне
Переключатель в счётчике включает приём событий. Саму покупку кладёт код страницы.

Какие события я отправляю с сайта

Со страницы я вызываю window.dataLayer.push и кладу объект с ключом ecommerce. Один контейнер совпадает с привычной товарной разметкой, Метрика читает его сама.
СобытиеКогда отправляюЧто обязано совпасть
detailОткрыли карточку товараid и name товара
addПоложили товар в корзинуте же id и name
removeУбрали товар из корзиныте же id и name
purchaseЗаказ уже подтверждёнactionField.id и price
impressionsПоказали список товаровid позиций списка
clickКликнули товар в спискеid этой позиции
Событие purchase отправляю, когда заказ подтверждён. Кнопка оформления ещё не покупка: человек может закрыть форму. В actionField ставлю уникальный id транзакции, чтобы обновление страницы не стало вторым заказом.
  • actionField.id — номер транзакции, один на заказ
  • products — позиции с id, name, price, brand, category и quantity
  • currency в actionField — для магазина в рублях ставлю RUB
У одного товара в detail, add и purchase совпадают id и name. Я прогоняю тестовую позицию от карточки до подтверждения. Чужой идентификатор на покупке рвёт отчёт популярных товаров, и похожая аудитория в Директе собирается на разных карточках.
Промоблоки размечаю отдельно. promoView уходит, когда блок попал на экран. promoClick уходит по клику. Для суммы в стратегии они событие purchase не заменяют.
Четыре тёмных предмета с коралловой кромкой на чёрном подносе
Карточка, корзина, подтверждение и упакованный заказ идут одной цепочкой.

Как цель покупки попадает в Директ

В стратегии Директа для дохода я выбираю автоцель покупки электронной коммерции: в сумму идёт price из purchase. Корзину в метрику дохода не ставлю, туда попали бы товары без заказа. Доход и ценность конверсий Директ считает раздельно, ручная ценность микроцели сумму заказа не подменяет. Параметр goal_id для дохода не использую, сумма идёт через автоцель.

Что нужно товарной кампании от этих событий

Товарная кампания и товарные объявления берут карточки из каталога, их запуск живёт отдельной настройкой. От электронной коммерции им нужен один и тот же id: в detail, add, purchase и в каталоге. Тогда покупка в Метрике и карточка в кампании относятся к одной позиции.

Как я проверяю, что покупка дошла до Директа

Заказ в админке магазина для рекламы ещё не доказательство. Иду по цепочке: контейнер в браузере, автоцель в Метрике, отчёт заказов, колонка дохода в кампании.
  1. К адресу страницы добавляю параметр _ym_debug=1 и открываю панель отладки.
  2. В консоли выполняю JSON.stringify по dataLayer и смотрю объект ecommerce.
  3. В расширении Метрики на вкладке целей ловлю срабатывание покупки.
  4. В отчётах Метрики открываю электронную коммерцию, затем заказы.
  5. Сверяю номер и сумму тестового заказа с админкой магазина.
  6. В кампании Директа выбираю цель покупки со счётчиком этого магазина.
  7. В настройке метрики дохода оставляю только покупку и жду сумму вместо прочерка.
При первом add Метрика сама создаёт цель добавления в корзину. При первом purchase создаёт цель покупки. Блок автоматических целей в счётчике для этого не нужен. В кабинете цель видна как покупка электронной коммерции с номером счётчика. В статистике кампании сумма обычно появляется через несколько часов после первой корректной покупки. Для обучения автостратегии Яндекс указывает ориентир от 10 покупок в неделю. Пока колонка дохода пустая, бюджет не увеличиваю.
После связки счётчика кабинет забирает из Метрики три вещи. Конверсии — срабатывания целей покупки и корзины. Доход — сумма заказов по целям из настройки метрики дохода, по умолчанию это покупка электронной коммерции. Ценность конверсий считается отдельно: туда может войти ручная ценность микроцели. В колонке дохода я жду сумму заказа.
В списке целей кампании строка называется покупкой электронной коммерции и показывает номер счётчика. Номер сверяю с тем счётчиком, который стоит на сайте. Чужой номер оставляет колонку дохода пустой, хотя заказы в Метрике уже есть.
Посылка, коралловые метки и тёмный шкаф на чёрном столе
Покупка дошла, когда заказ виден в Метрике и сумма есть в колонке дохода.

Если страница благодарности не открылась

Код в браузере молчит, когда оплата уводит на сторону банка и человек не возвращается на подтверждение. Покупку тогда отправляет сервер, Measurement Protocol, на адрес mc.yandex.ru/collect. В запрос ставлю pa со значением purchase, ti как номер транзакции из учёта, tr как сумму заказа и cid как ClientID посетителя. Событие можно отправить за прошедшие 12 часов, так я закрываю ночную синхронизацию. Повторно известный id не шлю: страница и сервер вместе записали бы один заказ дважды.

Где сумма заказа обычно теряется

Что на сайтеЧто вижу в ДиректеКак ловлю
Пустой dataLayerНет автоцели покупкиОтладка и консоль
purchase без priceКолонка дохода пустаяОтчёт заказов
Повтор id транзакцииСумма выше учёта заказовСверка номеров
Разные id товараТоварные отчёты пустыеСравнение detail и purchase
Чужая валютаДоля расходов съезжаетПоле currency в actionField
Пустой контейнер виден по ошибке: dataLayer не определён или push читает пустоту. Покупка без price даёт конверсию и оставляет выручку для стратегии невидимой. Повтор транзакции бывает при обновлении страницы подтверждения, при двух счётчиках и при двойной отправке с сайта и с сервера. Разные id в карточке и в покупке ломают товарные отчёты. Валюту держу одной на всей воронке.
Небольшое расхождение с учётом заказов бывает из-за блокировщиков и отказа от cookies. Если разрыв уже заметный, проверяю серверную отправку, цел ли ClientID и не слишком ли старые события. Свежая покупка кормит стратегию лучше запоздавшей.
Дальше смотрю семь отчётов электронной коммерции: заказы, содержимое заказов, популярные категории и бренды, популярные товары, товары в корзине, заказанные товары и промокоды. Для проверки рекламы мне хватает заказов и популярных товаров: видна сумма и карточка, которая её принесла. Корзина без покупки намекает на доставку, цену или форму оформления. Расходы Директа рядом с доходом открываю в источниках, в отчёте по Директу. Если в кампании выбрана другая цель, чем в отчёте Метрики, картины окупаемости расходятся. Сверяю цель кампании и фильтр отчёта.
SEO

Проверю покупки в Метрике

Пройду счётчик, события purchase и колонку дохода в Директе и покажу, дошла ли покупка или оборвалась на сайте.
SEO-специалист и автор материала
Читайте также