
Электронная коммерция в Метрике отвечает на вопрос, на который обычный счётчик ответить не может: не «сколько было заказов», а на каком именно шаге из корзины утекают деньги. Разница принципиальная. Цель «спасибо за заказ» показывает финальную цифру — триста заказов за месяц. Включённая электронная коммерция показывает, что карточки товаров открыли десять тысяч раз, в корзину положили тысячу двести, до оформления дошли четыреста двадцать, а оплатили двести десять — и дальше уже видно, где чинить. Ниже — что именно сайт обязан передавать в счётчик, кто это делает на WooCommerce и на конструкторах, как убедиться, что данные действительно уходят, и как читать получившуюся воронку, не делая типовых ошибок.
Названия действий, полей и ограничения я сверил со справкой Метрики, а часть про магазин на WordPress — с документацией WooCommerce; ссылки на первоисточники стоят в конце. Конкретных плагинов не называю: они меняются, а механика — нет.
Что даёт включённая электронная коммерция кроме числа заказов
После того как данные пошли, в Метрике появляется отдельная группа отчётов. Их имена стоит знать заранее, потому что половина пользы в том, чтобы открыть правильный.
Популярные товары и Популярные категории и бренды — что вообще смотрят и покупают. Заказанные товары — что реально куплено. Товары в корзине — что положили, но не купили: самый недооценённый отчёт из всех. Содержимое заказов — состав покупок, то есть что с чем берут вместе. Источники заказов — доход по каналам, а не заявки по каналам. Списки товаров — как работают подборки. Промокоды и Промокампании — отдача от акций и внутренних баннеров.
Главное отличие от целей: здесь появляются деньги и товары. Цель говорит «заказ был». Электронная коммерция говорит «заказ был на 14 300 рублей, в нём три позиции, пришёл он из поиска, а вот эти два товара кладут в корзину чаще всех и почти никогда не покупают».
Последнее — тот самый отчёт «Товары в корзине». Если позиция стабильно попадает в корзину и стабильно не доезжает до оплаты, причина обычно не в товаре: срок доставки, неожиданная доплата, «нет в наличии» на шаге оформления. Без этого отчёта вы увидите только общее падение конверсии и будете искать причину не там.
Что именно сайт должен передавать
Механика простая на словах и требует аккуратности в реализации. В настройках счётчика включается опция электронной коммерции, после чего в код счётчика добавляется контейнер данных — по умолчанию он называется dataLayer. Дальше сайт на каждое значимое действие покупателя кладёт в этот контейнер объект заданного формата, а счётчик его забирает.
Справка перечисляет действия, которые Метрика понимает, вот их точные названия:
impressions — просмотр списка товаров. click — клик по товару в списке. detail — просмотр товара. add — добавление в корзину. remove — удаление из корзины. purchase — покупка. promoView и promoClick — просмотр и клик по внутренней рекламе.
Малому магазину для рабочей воронки достаточно трёх: detail, add и purchase. Остальные добавляют глубины, но без первых трёх бесполезны.
У каждого товара в объекте есть набор полей: id, name, brand, category, coupon, discount, list, position, price, quantity, variant. Обязательным справка называет одно условие: нужно указать либо id, либо name. Валюта задаётся параметром currencyCode.
И ограничение, о которое спотыкаются магазины с большими заказами: контейнер данных не должен содержать больше 8192 символов. Если заказ крупный и в него входит много позиций, справка предлагает разбивать его на части с подномерами. Для магазина, где в заказе две-три позиции, это неактуально; для оптовика с корзиной на сорок наименований — прямая причина, почему часть покупок не долетает до отчётов.
Кто это делает на WooCommerce
Сразу к сути: из коробки WooCommerce ничего в Метрику не передаёт. Нужен либо плагин-интеграция, либо код, который вешается на события магазина. Оба пути рабочие, у обоих есть свои грабли.
Если идти кодом, точки подключения в WooCommerce документированы. Страница благодарности после оплаты собирается шаблоном thankyou.php, в котором есть хук woocommerce_thankyou — это штатное место для кода, отправляющего purchase. Форма оформления заказа выводится шаблоном form-checkout.php с хуком woocommerce_before_checkout_form. Добавление товара в корзину отслеживается действием woocommerce_add_to_cart.
Документация WooCommerce отдельно предупреждает: шаблоны нельзя править прямо в папке плагина, потому что «любые изменения будут удалены при обновлении плагина или темы». Правильный путь — скопировать нужный шаблон в дочернюю тему, в папку woocommerce внутри неё, и менять уже там. Ровно по этой причине у половины магазинов аналитика умирает после очередного обновления: код вставляли в файл плагина.
Вторая ловушка — блочные корзина и оформление заказа. В документации WooCommerce по блокам сказано прямо: перечисленные там действия и фильтры выполняются на стороне сервера, и блоки на стороне клиента не обязательно изменятся в ответ на обработчик, повешенный на серверный хук. На человеческом языке это значит: если у вас корзина собрана блоками, а не старым шорткодом, то привычный способ «повесимся на серверное событие и выведем скрипт» может просто не сработать — блок перерисовывается в браузере, а сервер об этом не знает. Проверять нужно фактически, а не по инструкции из статьи трёхлетней давности.
Отсюда практический вывод для владельца: работу должен делать тот, кто умеет открыть консоль браузера и убедиться, что событие ушло. Это не задача контент-менеджера. Если своего разработчика нет, такие вещи делаются в рамках доработки сайта — там же обычно чинятся и сопутствующие поломки вроде дублей счётчика.
Конструкторы и коробочные движки
На популярных российских платформах для магазинов передача данных электронной коммерции чаще всего уже встроена: в настройках интеграции с Метрикой достаточно указать номер счётчика и поставить галочку. Звучит идеально, но проверять всё равно надо, и вот почему.
Во-первых, встроенные интеграции передают базовый набор действий, и какой именно — зависит от платформы. Бывает, что purchase уходит, а detail и add нет, и вместо воронки вы получаете ту же одну цифру заказов, только теперь с суммой.
Во-вторых, имя контейнера данных должно совпадать с тем, которое указано в настройках счётчика. Если платформа кладёт данные в свой контейнер, а счётчик слушает dataLayer, данные будут уходить в пустоту — при этом нигде не появится ни одной ошибки.
В-третьих, на конструкторах часто стоит одностраничное оформление, где «шага корзины» как отдельной страницы нет: воронка выглядит короче, и сравнивать её с чужими цифрами бессмысленно.
Как убедиться, что данные уходят
Проверка занимает пять минут и описана в справке. Добавьте к адресу любой страницы параметр _ym_debug=1 и откройте консоль браузера сочетанием Ctrl + Shift + J. Затем выполните действие — например, положите товар в корзину. В консоли должна появиться запись с параметром ecommerce и вложенным действием add.
Параллельно проверьте сам код счётчика: в нём должен присутствовать параметр ecommerce:true либо ecommerce:"имя контейнера", по умолчанию ecommerce:"dataLayer". Имя обязано совпадать с указанным в настройках счётчика — это самая частая и самая незаметная ошибка внедрения.
Контрольный прогон делается руками: открыли карточку, положили в корзину, удалили, положили снова, оформили тестовый заказ. Четыре действия — четыре записи в консоли. Если на каком-то шаге пусто, чинить надо именно его, а не «всю аналитику».
И отдельно: тестовый заказ попадёт в отчёты как настоящий и испортит статистику дня. Делайте его либо в заведомо спокойное время, либо сразу договоритесь, что данные за этот день вы в расчёты не берёте.
Как читать воронку: где обрыв и почему
Дальше начинается то, ради чего всё делалось. Воронка магазина в упрощённом виде — четыре шага: открыл карточку, положил в корзину, пошёл оформлять, оплатил. На каждом переходе часть людей отваливается, и у каждого обрыва свой набор типовых причин.
| Шаг воронки | Что обычно ломается | Что проверить в первую очередь |
|---|---|---|
| Карточка → корзина | Не видно цены или наличия, нет условий доставки, фото одно и плохое, кнопка ниже сгиба на мобильном | Открыть карточку на телефоне и посчитать, сколько прокруток до кнопки. Проверить отчёт «Популярные товары»: если открывают много, а кладут мало — проблема в самой карточке |
| Корзина → оформление | Сумма выросла из-за доставки, всплыло «нет в наличии», непонятно, что будет дальше | Отчёт «Товары в корзине»: какие позиции кладут и не покупают. Сравнить цену в карточке с итогом в корзине глазами покупателя |
| Оформление → оплата | Слишком много обязательных полей, требуется регистрация, нет нужного способа оплаты, форма ругается и не говорит на что | Пройти оформление самому с телефона до последнего шага. Посчитать поля. Проверить, работает ли автозаполнение |
| Оплата → заказ не дошёл | Платёжная система вернула человека не туда, страница благодарности не открылась, событие покупки не отправилось | Проверить возврат из платёжной системы и наличие записи purchase в консоли на странице благодарности |
Последняя строка коварнее остальных. Заказ есть в админке магазина, а в Метрике его нет — и владелец полгода считает конверсию заниженной вдвое. Сверка простая: возьмите число заказов из админки за неделю и сравните с числом покупок в отчётах Метрики. Расхождение до нескольких процентов нормально, расхождение в разы означает, что событие покупки не доезжает.
Если полноценную электронную коммерцию внедрить некому, промежуточный вариант — составная цель. По справке, в неё можно задать до пяти шагов, в каждом шаге до десяти условий, условия внутри шага объединяются оператором ИЛИ, а сами шаги должны выполняться в строгой последовательности в рамках одного визита. Воронку в товарах это не даст, но покажет, на каком этапе люди осыпаются, — и часто этого достаточно, чтобы найти поломку.
Почему «средняя конверсия магазина» — бесполезная цифра
Когда воронка собрана, появляется соблазн сравнить себя с рынком. Не с чем сравнивать: у одного магазина корзина в два шага, у другого в четыре, у одного половина трафика из рекламы, у другого из поиска по названию бренда. Общая конверсия — производная от этих различий, а не мера качества.
Единственное осмысленное сравнение — с самим собой. Посчитаем на условном примере, чтобы стало видно, какой шаг чинить. Числа взяты для иллюстрации механики, это не чей-то реальный магазин.
| Шаг | Сейчас | Проходимость | Станет при +5 п.п. на этом шаге | Заказов вместо 210 |
|---|---|---|---|---|
| Просмотры карточек | 10 000 | — | — | — |
| Карточка → корзина | 1 200 | 12% | 17% | 298 заказов (+42%) |
| Корзина → оформление | 420 | 35% | 40% | 240 заказов (+14%) |
| Оформление → оплата | 210 | 50% | 55% | 231 заказ (+10%) |
Итоговая конверсия в примере — 2,1% от просмотра карточки до оплаты. Таблица показывает соблазнительную вещь: самый верхний шаг даёт самый большой прирост. Но здесь нужна честность. Пять процентных пунктов на шаге с базой 12% — это улучшение почти в полтора раза, а те же пять пунктов на шаге с базой 50% — прирост на десятую часть. Сравнивать так некорректно.
Честное сравнение — относительное. Если улучшить любой из трёх шагов на 10% от его текущего значения, итог будет одинаковым: 231 заказ вместо 210. То есть математически шаги равноценны, и выбирать нужно не по «весу в воронке», а по тому, где поломка очевиднее и дешевле в починке. Обычно это оформление заказа: убрать три обязательных поля проще, чем переделать все карточки каталога.
Про то, как эти же шаги выглядят со стороны поведения людей, а не цифр, есть отдельный разбор — поведенческие факторы для интернет-магазина. А общий свод приёмов по работе с корзиной собран в материале про то, как увеличить конверсию в интернет-магазине.
Когда это не нужно и когда нужен человек
Заказов единицы. При пяти-десяти покупках в месяц воронка не наберёт статистики: любое изменение будет выглядеть как скачок. Здесь полезнее разговаривать с покупателями, чем считать проценты.
Сайт не магазин. Если оформления заказа на сайте нет, а обращения идут формой и звонками, электронная коммерция вам не нужна вовсе. Нужны цели и разбор заявок — а если хочется видеть деньги, а не заявки, это уже разговор про сквозную аналитику и кому она реально нужна.
Платформа не даёт доступа к коду. Часть закрытых решений не позволяет ни вставить свой скрипт, ни изменить шаблон. Тогда остаётся то, что даёт встроенная интеграция, и с этим приходится жить.
Проблема не в воронке. Если товара нет в наличии, доставка дороже товара, а цена вдвое выше маркетплейса — воронка честно покажет обрыв на оформлении, но чинить нужно не форму.
И самое частое: данные собраны, воронка построена, а что с ней делать — непонятно. Обрыв на оформлении может означать пять разных вещей одновременно, и выбор между ними — не работа аналитики. Это работа человека, который видел десятки таких воронок и знает, что в девяти случаях из десяти дело в одном конкретном пункте. В SEO магазина воронка вообще первична: гнать трафик в дырявую корзину дороже, чем её залатать.
Частые вопросы
Нужно ли передавать remove, если в корзине почти не удаляют
Не обязательно. Без него воронка соберётся, просто в отчёте «Товары в корзине» картина будет чуть грубее: позиции, которые положили и убрали, останутся в составе корзины. Если корзина у вас редактируется часто — передавать стоит, иначе сумма «в корзине» будет систематически завышена.
Заказы в Метрике не совпадают с заказами в админке магазина
Небольшое расхождение — норма: блокировщики, закрытая вкладка до загрузки страницы благодарности, заказы по телефону. Расхождение в разы означает ошибку внедрения. Проверяйте по шагам: уходит ли purchase при оплате картой и при оплате при получении, открывается ли страница благодарности после возврата из платёжной системы, не режет ли кэш скрипт на этой странице.
Почему в отчётах есть покупки, но нет добавлений в корзину
Почти всегда потому, что передаётся только purchase. Так делают встроенные интеграции и так делают в спешке при ручном внедрении: страница благодарности одна, повесить на неё скрипт просто, а добавление в корзину происходит без перезагрузки страницы и требует отдельной обработки. Воронки в таком виде нет — есть только итог.
Коротко
Электронная коммерция превращает одну цифру «заказов столько-то» в воронку с товарами и деньгами. Включается опцией в настройках счётчика, после чего сайт кладёт объекты заданного формата в контейнер данных — по умолчанию dataLayer.
Метрика понимает действия impressions, click, detail, add, remove, purchase, promoView и promoClick. Малому магазину для рабочей воронки хватает трёх: просмотр товара, добавление в корзину, покупка. У товара обязательно указывается либо id, либо name, а весь контейнер ограничен 8192 символами.
WooCommerce из коробки в Метрику ничего не передаёт. Точки подключения — документированные хуки шаблонов, но правится это только через дочернюю тему, иначе код исчезнет при обновлении. С блочными корзиной и оформлением серверные хуки могут не давать нужного результата на стороне браузера, поэтому проверяют фактически.
Проверка занимает пять минут: параметр _ym_debug=1, консоль браузера, четыре действия руками. В коде счётчика должно стоять ecommerce:true или имя контейнера, совпадающее с настройками, — несовпадение имени тихо обнуляет всю передачу.
Читать воронку нужно по шагам, а не по итоговому проценту. «Средней конверсии магазина» не существует: она производная от длины корзины и состава трафика. Сравнивать имеет смысл только с собой, и не в процентных пунктах, а относительно текущего значения шага — тогда видно, что шаги математически равноценны и выбирать надо по дешевизне починки.
Инструмент бесполезен при нескольких заказах в месяц, на сайтах без оформления заказа и там, где проблема не в воронке, а в цене, наличии или доставке.
Если воронка собрана, а решение по ней не складывается — это нормальная точка, чтобы позвать взгляд со стороны. Я разбираю отчёты магазинов с 2005 года и за час разговора обычно называю два-три места, где деньги теряются быстрее всего: приходите на консультацию по продвижению с доступом к Метрике. Если сначала нужно понять, всё ли в порядке с самим сайтом, начните с бесплатного аудита сайта, а дальше уже решим, нужна ли системная работа по SEO: продвижение интернет-магазина в Яндексе без нормально собранной воронки превращается в трату бюджета вслепую. Первоисточники, по которым стоит сверяться: передача данных об электронной коммерции в справке Метрики и раздел о структуре шаблонов в документации WooCommerce.
Увеличьте позиции и продажи вашего сайта
Профессиональное SEO-продвижение с гарантией результата. Выберите подходящую услугу:
Остались вопросы по продвижению?
Меня зовут Анатолий Кузнецов, я SEO-оптимизатор с 20-летним стажем. Разберу ваш сайт, отвечу на вопросы и подскажу, что улучшить для роста позиций в Яндексе и Google.
Связаться со мной →
Комментарии
Софья
Сверила заказы в админке с покупками в Метрике за месяц: 186 против 94. Почти вдвое. Плагин интеграции стоит, галочка включена. Куда копать?
Анатолий Кузнецов автор
Разница ровно вдвое почти всегда означает, что не долетает какой-то один способ оплаты. Сделайте два тестовых заказа: один с оплатой картой через платёжную систему, второй с оплатой при получении. Откройте консоль с параметром отладки и посмотрите, на каком из них запись о покупке не появилась. В девяти случаях из десяти виноват возврат из платёжной системы: человек попадает не на страницу благодарности, а на какой-то промежуточный адрес, где скрипта нет. Второй кандидат — кэш на странице благодарности, тогда событие уходит один раз и с чужими данными. Проверяется за двадцать минут.
Семён
У меня магазин на WooCommerce, корзину недавно перевели на блоки. Отслеживание добавления в корзину перестало работать ровно после этого. Читал вашу статью и понял, что это не совпадение.
Анатолий Кузнецов автор
Не совпадение. В документации WooCommerce по блокам прямо сказано, что перечисленные действия и фильтры выполняются на стороне сервера и блоки на стороне клиента не обязательно изменятся в ответ на обработчик серверного хука. Старая схема с шорткодом перезагружала страницу, и серверный код успевал вывести нужный скрипт. Блочная корзина обновляется в браузере, никакой перезагрузки нет, и вешаться надо на клиентские события. Это уже задача для разработчика, самостоятельно тут почти не починить. Пока чинится — проверьте хотя бы, что покупка передаётся: без неё вы теряете вообще всё.
Тарас
Про ограничение в 8192 символа — вот это реально спасло. У меня опт, в заказе бывает по сорок позиций, и часть крупных заказов в отчётах не появлялась. Думал, что глюк Метрики.
Тихон
Не соглашусь с тем, что средней конверсии не существует. Отраслевые бенчмарки публикуют, ими пользуется весь рынок. Как понять, хорошо у тебя или плохо, если не с чем сравнить?
Анатолий Кузнецов автор
Бенчмарки существуют, спорить не буду. Возражение у меня к тому, как ими пользуются. В такой цифре не видно ни длины корзины, ни состава трафика, ни доли брендового спроса, ни способа считать — от визита, от посетителя или от просмотра карточки. Два магазина с одинаковой цифрой могут быть устроены совершенно по-разному. Сравнение полезно для одного: понять порядок величины и не паниковать, увидев 1,5%. Для решений оно не годится, потому что не отвечает на вопрос, что менять. Ваша собственная воронка на этот вопрос отвечает прямо.
Трофим
Тихон, у меня две ниши на одном движке. В одной конверсия 0,8%, в другой 4,3%. Один и тот же сайт, один и тот же движок, одна и та же корзина. Бенчмарк тут не помог бы ничем.
Феликс
Вопрос по отчёту «Товары в корзине». У меня там первые пять позиций — самые дешёвые товары. Это значит, что дешёвое кладут и не покупают? Или я неправильно читаю?
Анатолий Кузнецов автор
Читаете правильно, но вывод делать рано. Сначала посмотрите, не они ли вообще лидируют по добавлениям в корзину: если дешёвый товар кладут в десять раз чаще остальных, он и в несостоявшихся заказах будет первым — это арифметика, а не проблема. Сравнивать надо долю: сколько добавлений и сколько покупок по каждой позиции. Вот если у дешёвого товара доля выкупа заметно ниже, чем у остальных, — причина обычно одна и очень простая: доставка стоит дороже товара. Человек кладёт в корзину, видит итог и уходит. Лечится либо порогом бесплатной доставки, либо честным показом её стоимости прямо в карточке.
Филипп
Совет проверять контрольным прогоном в четыре действия забрал себе в чеклист. Раньше проверял только оформление и был уверен, что всё работает.
Эдуард
А что делать, если платформа кладёт данные в свой контейнер с другим именем? Переименовать можно?
Анатолий Кузнецов автор
Переименовывать контейнер платформы не надо, это чревато поломкой её собственных механизмов. Правильнее указать счётчику, какое имя слушать: в коде счётчика имя контейнера задаётся параметром, а в настройках счётчика оно должно быть таким же. Два места, одно значение. Именно рассинхрон между ними чаще всего и даёт картину «всё настроено, а данных нет». Сначала выясните точное имя контейнера у поддержки платформы, потом пропишите его в обоих местах и проверьте отладкой в консоли.
Эльвира
Тестовый заказ и правда попал в отчёты и испортил день. Хорошо, что предупредили про это в статье, а не то я бы искала, откуда взялась покупка на 100 рублей.
Юрий
Про составную цель как временное решение — хороший ход. У меня самописный движок, программиста нет, а воронку увидеть хочется. Пять шагов мне хватит с запасом.
Ярослав
Таблица с относительным приростом переубедила. Я полгода переделывал карточки, потому что «там самый большой потенциал». А поля в оформлении так и не тронул, хотя их там одиннадцать штук.
Савелий
Ярослав, одиннадцать полей — это очень много. У меня было девять, убрал до пяти, остальное спрашиваем в мессенджере после заказа. Стало заметно живее, хотя точных цифр не считал.