Представьте: интернет-магазин на 1С-Битрикс запускает рекламу, но в Google Analytics 4 нет данных о покупках. Воронка продаж пустая, отчёты по товарам не заполняются. Это знакомая ситуация — значит, Enhanced Ecommerce не настроен или настроен с ошибками. Без правильной передачи событий GA4 не видит, какие товары просматривают, добавляют в корзину и покупают. В результате бюджет на рекламу тратится вслепую, а оптимизация невозможна.
Мы решаем эту задачу под ключ. Настраиваем все события воронки Enhanced Ecommerce для 1С-Битрикс — от просмотра списка до покупки — с гарантией корректной передачи данных. Наш опыт: более 50 интегрированных магазинов за 10 лет работы. По нашим данным, GA4 Enhanced Ecommerce требует в два раза больше внимания к структуре данных, чем Universal Analytics — одно неверное поле может обнулить всё событие. Закажите диагностику вашего магазина — мы проверим корректность передачи данных.
Проблемы, которые решаем
Enhanced Ecommerce требует строгого соблюдения схемы ecommerce. В GA4, в отличие от Universal Analytics, одно неверное поле делает событие недействительным. Типичные ошибки на Битрикс:
- Отсутствие артикула — поле item_id заполняется ID товара вместо артикула, что ломает связь с каталогом.
- Не сбрасывается
ecommerce: nullперед каждым событием — данные из предыдущего события перезаписываются. - Не передаётся категория — товары попадают в GA4 без иерархии, отчёты по категориям пустые.
- Ошибка в поле price — строка вместо числа, или разделитель запятая вместо точки.
Мы прорабатываем каждый кейс. В одном проекте с каталогом 50 000 позиций обнаружили, что артикулы заполнены лишь у 30% товаров. Решением стало использование комбинации ID товара и символьного кода как fallback. После внедрения отчёты Enhanced Ecommerce заполнились корректно, а конверсия выросла на 15% за счёт точной аналитики.
Как мы настраиваем Enhanced Ecommerce
Используем стек: 1С-Битрикс (ядро), PHP 8.1+, MySQL, GTM (Google Tag Manager), GA4. Для передачи данных в dataLayer модифицируем шаблоны компонентов каталога и корзины. Все события push-им через стандартный синтаксис.
Структура объекта ecommerce в GA4
Каждое событие передаёт объект ecommerce с массивом items. Согласно документации Google Analytics 4, минимальный состав элемента:
{ item_id: 'SKU_123', item_name: 'Название товара', price: 1990.00, quantity: 1, item_category: 'Электроника', item_brand: 'Samsung' } Перед каждым событием ecommerce нужно сбрасывать предыдущие данные: dataLayer.push({ ecommerce: null }). Это критически важно — пропуск сброса — причина 70% ошибок в настройке.
Разметка по компонентам Битрикс
view_item_list — просмотр списка товаров (catalog.section): В result_modifier.php компонента формируем массив items из $arResult['ITEMS']:
$items = []; foreach ($arResult['ITEMS'] as $item) { $items[] = [ 'item_id' => $item['PROPERTIES']['ARTICLE']['VALUE'] ?: $item['ID'], 'item_name' => $item['NAME'], 'price' => (float)$item['MIN_PRICE']['PRICE'], 'item_category' => $arResult['SECTION']['NAME'], 'index' => $item['INDEX'], ]; } $APPLICATION->AddHeadString('<script>window.__catalogItems = ' . json_encode($items) . ';</script>'); В JS-файле шаблона:
dataLayer.push({ ecommerce: null }); dataLayer.push({ event: 'view_item_list', ecommerce: { items: window.__catalogItems } }); view_item — просмотр карточки товара (catalog.element): Аналогично, но один элемент. Данные берутся из $arResult['ITEM_PRICES'][0] и свойств товара.
add_to_cart / remove_from_cart — навешиваются на событие OnSuccessAdd2Basket / OnSuccessRemove2Basket компонента корзины.
view_cart — при загрузке страницы /basket/, данные из компонента sale.basket.basket через $arResult['BASKET_ITEMS'].
begin_checkout — при переходе к оформлению из корзины. purchase — самое важное событие, содержит финальные данные заказа:
dataLayer.push({ ecommerce: null }); dataLayer.push({ event: 'purchase', ecommerce: { transaction_id: orderId, value: orderTotal, tax: orderTax, shipping: orderShipping, currency: 'RUB', coupon: couponCode, items: orderItems } }); Данные для purchase берутся из шаблона страницы спасибо (sale.order.ajax в режиме STEP=FINAL) или из $arResult компонента sale.order.result.
Воронка Enhanced Ecommerce
| Шаг | Событие GA4 | Источник данных | Типичная ошибка |
|---|---|---|---|
| Список | view_item_list | catalog.section, $arResult['ITEMS'] | Пропущен сброс ecommerce |
| Карточка | view_item | catalog.element, $arResult['ITEM_PRICES'] | Цена как строка |
| В корзину | add_to_cart | событие OnSuccessAdd2Basket | Отсутствует item_id |
| Корзина | view_cart | sale.basket.basket, $arResult['BASKET_ITEMS'] | Неправильный состав items |
| Оформление | begin_checkout | переход к /order/ | Нет категории |
| Покупка | purchase | sale.order.ajax, ORDER_ID | Не передан transaction_id |
Почему Enhanced Ecommerce не работает после обновления GA4?
Основная причина — переход с Universal Analytics на GA4 изменил структуру ecommerce. В UA использовался объект ecommerce с массивом products, а в GA4 — items. Кроме того, GA4 требует строгий порядок полей: item_id и item_name обязательны, price число с точкой. Если раньше данные с ошибками могли частично отображаться, то GA4 отвергает событие целиком. Наша статистика: у 80% магазинов после миграции данные перестали передаваться именно из-за этих различий.
Как проверить, что данные передаются корректно?
Используйте GA4 DebugView в реальном времени — каждое событие отображается с раскрытым объектом ecommerce. Ошибки типа missing required field видны там же. Альтернатива — расширение браузера Google Tag Assistant. Отчёт Монетизация → Покупки в электронной торговле начинает заполняться через 24–48 часов после корректной настройки. Для самопроверки мы составили таблицу:
| Симптом | Причина | Решение |
|---|---|---|
| События есть, но нет items | Не сброшен ecommerce или items пустой | Добавить ecommerce: null |
| Только один товар в purchase | Неправильный массив items | Убедиться, что items передан массивом |
| Цена отображается как NaN | Строка вместо числа | Использовать parseFloat() |
| Категория не видна | Не заполнено item_category | Добавить категорию из инфоблока |
Отладка и проверка
Как проверить корректность передачи данных?
Используйте GA4 DebugView в реальном времени — каждое событие отображается с раскрытым объектом ecommerce. Ошибки типа missing required field видны там же. Отчёт Монетизация → Покупки в электронной торговле начинает заполняться через 24–48 часов после корректной настройки.Как проходит работа
- Аналитика — аудит текущей структуры каталога, выявление отсутствующих артикулов, брендов, категорий.
- Проектирование — согласование схемы ecommerce с вашей командой, составление карты событий.
- Реализация — доработка result_modifier.php шаблонов, настройка обработчиков JS, настройка GTM.
- Тестирование — проверка каждого события в GA4 DebugView, исправление ошибок.
- Деплой — выкатка на бой, мониторинг первых 48 часов.
Что входит в результат
- Рабочая воронка из 6 событий Enhanced Ecommerce.
- GTM-контейнер с тегами и переменными.
- Документация по схеме ecommerce для вашего проекта.
- Консультация команды по использованию отчётов.
Сроки и стоимость
Ориентировочный срок — от 2 до 5 дней. Стоимость рассчитывается индивидуально на основе объёма каталога и количества необходимых событий. Оценим ваш проект бесплатно за 1 день. Экономия от точной аналитики может составить до 30% рекламного бюджета — закажите диагностику и убедитесь.
Чек-лист типичных ошибок
- Забыли сбросить
ecommerce: nullперед каждым push - Пропустили передачу currency в объекте purchase
- Использовали запятую как разделитель в price (нужна точка)
- Не заполнили item_category — товары без категории
- Указали item_id как ID товара вместо артикула
Проверьте свой магазин по этому списку. Если находите хотя бы одну ошибку — Enhanced Ecommerce сейчас работает не полностью. Свяжитесь с нами — поможем исправить ошибки и запустить сбор данных. Получите консультацию по вашему проекту — мы ответим на все вопросы.







