+7 (495) 801-60-42

Data Layer для e‑commerce: схема для GTM и Enhanced Ecommerce

Интернет‑магазин не может расти без корректной аналитики: нужно видеть просмотры товаров, клики, добавления в корзину, шаги чекаута и оплату. Базой для этого служит data layer gtm ecommerce — единая схема передачи данных на сайт, откуда GTM отправляет события в GA4 и другие системы. Ниже — практическая схема и чек‑лист внедрения без лишней теории.

Зачем нужен единый dataLayer в e‑commerce

  • Исключает разрозненные скрипты и дубли событий: единая точка правды для GTM, пикселей и серверной аналитики.
  • Гарантирует сопоставимость метрик: наименование событий, валюта, налоговая модель, купоны и промо передаются одинаково.
  • Ускоряет внедрение: фронтенд один раз формирует объекты, маркетолог в GTM только мапит и тестирует.
  • Уменьшает потери выручки в отчётах: корректная передача дохода, налога, доставки и скидок в purchase.

Data layer GTM ecommerce: базовые принципы и структура

Структура должна быть предсказуемой, повторяемой и совместимой с GA4 и (по необходимости) Enhanced Ecommerce. Рекомендуем формировать события в формате push в window.dataLayer с полем event и объектом ecommerce.

  • Контейнер: window.dataLayer = window.dataLayer || []
  • Каждое действие — отдельный push с event
  • Единицы измерения: currency всегда передаётся, цены — как Number с точкой
  • Идентификаторы: item_id — стабильный SKU/артикул; item_name — человекочитаемое
  • Контекст пользователя: при возможности добавляйте user_id, client_id, session_id в отдельные поля вне ecommerce

Ключевые сущности внутри ecommerce:

  • items: массив товаров (item_id, item_name, affiliation, item_brand, item_category(1‑5), item_variant, price, quantity, coupon)
  • value: итог дохода события (например, суммы корзины или заказа)
  • currency: ISO‑код (RUB, USD, EUR и т. д.)
  • coupon, shipping, tax, discount: для точной выручки

Соответствие событий: GA4 vs Enhanced Ecommerce

Для GA4 используйте нативные имена событий, для Enhanced Ecommerce — action с доп. полями. Ниже — минимально достаточный набор для интернет‑магазина:

  • Просмотр списка товаров: event: view_item_list; items
  • Показ товара (impression): для GA4 включён в view_item_list; для Enhanced — impressions
  • Клик по товару: select_item; items
  • Просмотр карточки: view_item; items[0] с полной категоризацией
  • Добавление в корзину: add_to_cart; items, value, currency
  • Удаление из корзины: remove_from_cart; items, value, currency
  • Начало оформления: begin_checkout; items, value, currency, coupon
  • Шаги чекаута: add_shipping_info, add_payment_info; items, shipping_tier, payment_type
  • Покупка: purchase; transaction_id, affiliation, value, tax, shipping, currency, coupon, items
  • Возврат: refund; transaction_id, value, currency, items (опционально)

Для старого Enhanced Ecommerce (Universal Analytics) те же действия мапятся на actionField: list, click, detail, add, remove, checkout (step), purchase, refund и массив products. Если вы остались на Enhanced для отчётности BI, храните оба формата параллельно.

Обязательные поля в событиях e‑commerce GA4

Чтобы отчёты «События eCommerce GA4» и конверсии наполнились правильно, следите за полями:

  • view_item_list: item_list_id, item_list_name, items
  • select_item: item_list_id или позиция в списке (index)
  • view_item: items[0] с item_id, item_name, price, item_brand, item_category1…5, item_variant
  • add_to_cart/remove_from_cart: items с quantity и price, value, currency
  • begin_checkout: items, value, currency, coupon (если применён)
  • add_shipping_info: shipping_tier, value, currency, items
  • add_payment_info: payment_type, value, currency, items
  • purchase: transaction_id, affiliation, value, tax, shipping, currency, coupon, items

Важно: value для purchase должен равняться сумме (итог к оплате) после скидок, но до возвратов; налоги и доставка передаются отдельными полями. Это критично для «передача дохода в аналитику».

Примеры структур для ключевых действий (без кода)

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

  • view_item_list
  • event: "view_item_list"
  • ecommerce: { item_list_id, item_list_name, items: [ { item_id, item_name, item_brand, item_category1..5, price, index } ] }
  • select_item
  • event: "select_item"
  • ecommerce: { item_list_id, item_list_name, items: [ { item_id, item_name, price, index } ] }
  • view_item
  • event: "view_item"
  • ecommerce: { currency, value, items: [ { item_id, item_name, item_brand, item_category1..5, item_variant, price } ] }
  • add_to_cart / remove_from_cart
  • event: "add_to_cart" | "remove_from_cart"
  • ecommerce: { currency, value, items: [ { item_id, item_name, price, quantity, coupon } ] }
  • begin_checkout
  • event: "begin_checkout"
  • ecommerce: { currency, value, coupon, items: [ ... ] }
  • add_shipping_info
  • event: "add_shipping_info"
  • ecommerce: { currency, value, shipping_tier, items: [ ... ] }
  • add_payment_info
  • event: "add_payment_info"
  • ecommerce: { currency, value, payment_type, items: [ ... ] }
  • purchase
  • event: "purchase"
  • ecommerce: { transaction_id, affiliation, currency, value, tax, shipping, coupon, discount, items: [ { item_id, item_name, price, quantity, coupon } ] }
  • refund
  • event: "refund"
  • ecommerce: { transaction_id, currency, value, items: [ { item_id, quantity } ] }

Эти образцы покрывают product impression dataLayer (через view_item_list), отслеживание корзины gtm (add_to_cart/remove_from_cart), checkout шаги gtm (begin_checkout, add_shipping_info, add_payment_info), а также transaction dataLayer (purchase/refund).

Enhanced Ecommerce GTM: настройка параллельно с GA4

Если вам нужно вести параллельную отчётность или миграцию:

  • Дублируйте внутри ecommerce блок для EE: например, ecommerce.ee = { detail: { products: [...] } } и ecommerce.ga4 = { items: [...] }. Либо генерируйте один блок и мапьте в GTM через Variables.
  • Для steps чекаута храните номер шага и метод: step: 1/2/3, option: "delivery"/"card".
  • Для impressions используйте массив impressions с полями id, name, brand, category, list, position, price.
  • Для purchase добавляйте actionField: { id, affiliation, revenue, tax, shipping, coupon } и products.

Главное — консистентность: одинаковые SKU, списки, позиции, купоны и правила округления.

Частые ошибки и как их исправить

  • Несоответствие value сумме items: пересчитайте value = Σ(price*quantity) − скидки; налог и доставка — отдельные поля.
  • Смешение валют: валюта должна быть единой в сессии и совпадать с ценой товаров.
  • Дубликаты purchase при повторной загрузке страницы «Спасибо»: защищайтесь idempotency: пушите purchase только один раз по успешному статусу заказа.
  • item_id меняется между страницами: фиксируйте стабильный артикул/SKU.
  • Отсутствуют списки (item_list_id, item_list_name): отчёты по воронке каталога пустые.
  • Купон не передаётся на уровне заказа: промо видны только в товарах — итоги искажаются.
  • Нет remove_from_cart: нельзя оценить эффективность корзины и реальную эластичность спроса.

Отладка и тестирование в GTM/GA4

  • Включите Preview в GTM и проверьте каждый push: event, ecommerce.value, items, currency.
  • В GA4 используйте «Отладчик» и «В реальном времени»: события и параметры должны совпадать 1:1 с dataLayer.
  • Сверка дохода: отчёты GA4 vs бэкофис. Допустимое расхождение при онлайне — единицы процентов из‑за блокировщиков и таймаутов.
  • Визуализируйте через BigQuery/BI: проверяйте, что value, tax, shipping и coupon приходят в потоках событий.

Интеграции и расширения: серверный GTM, CRM, сквозная аналитика

  • Серверный GTM снижает потери из‑за блокировщиков и позволяет унифицировать отправку в GA4, рекламные пиксели и внутренние API.
  • Добавьте user_id/loyalty_id в общий контекст — это упростит привязку к CRM и сквозную аналитику.
  • Для end‑to‑end отчётности соединяйте purchase/refund с платежным шлюзом и CRM, чтобы подтверждать факт оплаты и возвратов.
  • Подробнее о том, как выстраивается «сквозная» цепочка, читайте в материале «Сквозная аналитика: что это, как работает и кому нужна» (https://lightson.agency/blog/stati/skvoznaya-analitika-chto-eto-kak-rabotaet-i-komu-nuzhna).

Если нужен комплексный подход с архитектурой данных и внедрением, посмотрите наши услуги: Аналитика и стратегия, E-commerce и интернет-магазины и Разработка веб-приложений.

Чек‑лист внедрения dataLayer для интернет‑магазина

  • Стандартизируйте item_id (SKU) и категории (item_category1..5)
  • Введите единый ISO‑код валюты и правила округления
  • Определите перечень событий: view_item_list, select_item, view_item, add_to_cart, remove_from_cart, begin_checkout, add_shipping_info, add_payment_info, purchase, refund
  • Спроектируйте объекты ecommerce: items[], value, currency, tax, shipping, coupon, discount
  • Реализуйте антидубликаты для purchase (однократный пуш на успешный статус)
  • Добавьте user_id/client_id/session_id вне ecommerce
  • Покройте A/B‑сценарии (модалки, быстрый просмотр, SPA‑роутинг)
  • Настройте триггеры и теги в GTM, проверьте префиксы и именование
  • Сверьте отчёты GA4 с бэкофисом: доход, кол‑во заказов, средний чек
  • Заведите мониторинг: алерты по падению количества событий и дохода

Куда это ведёт: метрики и управленческие решения

Корректный gtm ecommerce схема позволяет ответить на вопросы: какие листинги генерируют клики и выручку, где «течёт» корзина, как влияют купоны, какие шаги чекаута узкие. Это база для A/B‑тестов (см. «A/B‑тестирование: как проверять гипотезы на сайте» — https://lightson.agency/blog/stati/a-b-testirovanie-kak-proveryat-gipotezy-na-sajte) и оптимизации ROAS. Без чистого dataLayer тратить на рекламу — всё равно что вести машину с заклеенной приборкой.

Мини‑напоминание о бизнес‑процессе

  • Техдок с событиями и полями → реализация на фронте → проверка в GTM → тест в GA4 → сводная сверка с бэком → запуск → мониторинг.

Вывод

Единый dataLayer — фундамент e‑commerce‑аналитики. Начните с чёткой спецификации событий GA4 и (при необходимости) Enhanced Ecommerce, обеспечьте корректную передачу дохода, корзины, купонов и шагов чекаута, протестируйте и настройте мониторинг. Если нужен аудит текущей реализации или проект «под ключ», оставьте заявку — команда LightsOn поможет спроектировать и внедрить рабочую схему.

  • Узнать больше и обсудить проект:
    ,
    ,

Другие полезные статьи

Делимся экспертизой, разбираем кейсы и рассказываем, как превращать идеи в работающие digital-продукты