Отслеживание электронной торговли в GA4 через GTM: архитектурные требования и пошаговая настройка
При настройке электронной торговли в GA4 малейшее отклонение в структуре Data Layer приводит к тому, что отчеты о монетизации остаются пустыми или показывают неверные цифры. Если данные с сайта приходят «криво», никакие манипуляции внутри GTM не спасут вашу аналитику.
В статье рассмотрю, какой должна быть правильная архитектура, и предоставлю пошаговый алгоритм для точного сбора данных о продажах.
- Основы событийной модели и требования к Data Layer
- Роль Google Tag Manager
- Архитектура Data Layer GA4: стандарты и примеры кода
- Финансовые метрики: валюта и стоимость
- Настройка Google Tag Manager
- Верификация и отладка (Debugging)
Основы событийной модели и требования к Data Layer
В основе Google Analytics 4 аналитика построена на событиях (Events) и параметрах.
В электронной коммерции путь пользователя отслеживается с помощью стандартных ecommerce-событий. Каждое ключевое действие на сайте от интереса к продукту до оплаты фиксируется в виде отдельного события:
view_item — просмотр товара;
add_to_cart — добавление в корзину;
purchase — успешная покупка.
Чтобы такие события корректно обрабатывались в GA4, Data Layer должен быть стандартизирован.
Data Layer — это специальный уровень данных в коде сайта, который собирает информацию о действиях пользователя и характеристиках товаров, а затем передает ее в Google Tag Manager в понятном для системы формате.
Для этого используется единый подход передачи данных о товарах.
Основные требования:
Все взаимодействия с товарами передаются через один общий объект — ecommerce.
Внутри этого объекта обязательно должен находиться массив items.
Массив items — ключевой элемент отслеживания. Он содержит всю информацию о товарах, с которыми взаимодействует пользователь: идентификатор (ID), название, цену, количество и другие характеристики.
Роль Google Tag Manager
Google Tag Manager (GTM) — это посредник между сайтом и Google Analytics 4, который отвечает за считывание, обработку и передачу данных в систему аналитики. Его основные задачи:
считывание данных из Data Layer;
форматирование их в соответствии с требованиями GA4;
отправка данных в аналитическую систему.
GTM позволяет вносить практически любые изменения в логику отслеживания, не трогая основной код сайта.
Google Tag Manager читает и передает данные, но не исправляет их. Его задача — взять информацию из Data Layer (например, ID товара, цену, количество) и отправить ее в GA4.
Если же Data Layer сформирован с ошибками — в массиве items пропущены обязательные параметры, нарушена структура — GTM не сможет их починить. Он просто передаст битые данные, и отслеживание будет работать некорректно.
Экспертный подход к внедрению GA4 таков: успех отслеживания на 80% зависит от корректности Data Layer и лишь на 20% — от настройки GTM.
На этапе разработки аналитик должен требовать от разработчиков строгого соблюдения схемы Data Layer.
Стандартизированный и корректно реализованный Data Layer на стороне бэкенда — это фундамент аналитики. Без него даже идеальная настройка GTM не даст точных данных для повышения эффективности маркетинга.
Подготовительные этапы установки
Перед началом настройки ecommerce-отслеживания в Google Tag Manager необходимо выполнить несколько обязательных подготовительных шагов.
Шаг 1. Получение идентификатора потока данных GA4
В созданном аккаунте GA4 найдите идентификатор потока данных (Measurement ID). Он имеет формат G-XXXXXXXXXX. Идентификатор является ключевым связующим элементом, который гарантирует, что отправленные через GTM данные с сайта попадут в нужный поток GA4 и будут корректно зафиксированы в аналитике.
Шаг 2. Установка контейнера GTM
Код контейнера Google Tag Manager должен быть корректно установлен на всех страницах сайта.
Важно: убедитесь, что глобальный объект Data Layer инициализируется до загрузки самого контейнера GTM.
Код инициализации Data Layer выглядит так:
window.dataLayer = window.dataLayer || [];.
Это необходимо для того, чтобы Data Layer был готов принимать данные еще до того, как GTM начнет их считывать. Если порядок нарушен, GTM может потерять важные данные. Чаще всего это затрагивает данные, которые передаются на ранних этапах загрузки страницы — например, информацию о пользователе, его статусе или контексте визита.
Шаг 3. Создание базового тега конфигурации GA4
Это — стартовая точка запуска Google Tag Manager.
В контейнере GTM необходимо создать базовый тег Google Tag. Именно он использует Measurement ID, чтобы установить начальную связь между сайтом и GA4.
Настройте его на срабатывание по триггеру Initialization — All Pages. Это гарантирует, что тег загрузится на каждой странице и инициализация GA4 произойдет раньше любых других тегов и событий.
Архитектура Data Layer GA4: стандарты и примеры кода
Для корректной передачи данных электронной коммерции в Google Analytics 4 нужно строго соблюдать стандартную схему именования событий и параметров, установленную Google.
Все данные ecommerce отправляются в Data Layer с помощью специальной функции — dataLayer.push().
Каждый отправляемый объект должен содержать как минимум два элемента:
имя события — например, 'view_item',’add_to_cart’, ‘begin_checkout’, ‘purchase’;
объект ecommerce, внутри которого находятся все детали транзакции.
Ключевой элемент — это унифицированный массив items. Он содержит один или несколько объектов с подробной информацией о товарах.
Его структура остается одинаковой для всех коммерческих событий — от просмотра товара (view_item) до покупки (purchase).
Использование одинаковых названий и типов параметров внутри массива items на всей воронке продаж позволяет GA4 корректно «склеивать» данные. Благодаря этому система может точно отследить путь клиента: от первого просмотра до добавления в корзину и покупки.
Точность отчетов GA4 напрямую зависит от соблюдения иерархии в Data Layer. Система не распознает данные, если передать их на неверном уровне — например, разместить свойства товара в объекте события вместо массива items. В результате в отчетах появятся пропуски или нулевые значения, даже если технически отправка данных в контейнер прошла успешно.
Поэтому необходимо четко различать два типа параметров:
Тип параметра | Местоположение в Data Layer | Примеры | Описание |
Параметры уровня события (Event-level) | Вне массива items, в объекте ecommerce | transaction_id, value (общая сумма), shipping, coupon, item_list_name | Применяются ко всему событию или транзакции в целом |
Параметры уровня товара (Item-level) | Внутри массива items | item_id, item_name, price, quantity | Описывают конкретный товар внутри транзакции |
Примеры Data Layer для ключевых событий воронки
Ниже — ключевые события электронной торговли и примеры соответствующей структуры Data Layer.
Просмотр списка товаров (view_item_list)
Событие регистрируется, когда пользователь видит список или каталог товаров. Оно играет важную роль в анализе эффективности расположения товаров и расчета CTR списка в целом и CTR отдельных товаров внутри него.
dataLayer.push({
event: 'view_item_list',
ecommerce: {
item_list_id: 'home_page',
item_list_name: 'Homepage',
items:
}
});Просмотр карточки товара (view_item)
Событие фиксируется в момент, когда пользователь нажимает на товар в списке и открывает его карточку. Это одно из ключевых ecommerce-событий, поскольку отражает реальный интерес к продукту.
Анализ этого события позволяет оценить:
насколько товар привлекает внимание в списках и подборках;
эффективность оформления карточки — описаний, фотографий, характеристик и цены.
dataLayer.push({ ecommerce: null });
dataLayer.push({
event:'view_item',
ecommerce: {
items: [{
item_name: 'Название товара',
item_id: 'ID товара',
price: 25.00, // Цена
currency: 'Валюта',
item_brand: 'Бренд товара',
item_category: 'Категория',
quantity: 1 // Количество товара
}]
}Значения параметров:
Параметр | Тип данных | Описание |
item_id | String (строковая переменная) | Уникальный идентификатор товара. Может использоваться как спецификация товара (например, GTIN), так и внутренние ID |
item_name | String (строковая переменная) | Название товара (до 500 символов) |
item_category | String (строковая переменная) | Категория товара (до 500 символов) |
item_category2, item_category3 | String (строковая переменная) | При необходимости можно использовать дополнительные уровни вложенности подкатегорий (до 5 уровней вложенности): Одежда > Верхняя одежда > Пальто |
item_brand | String (строковая переменная) | Бренд товара (до 500 символов) |
price | Number (числовая переменная) | Стоимость товара (в качестве десятичного разделителя используется точка) |
quantity | Number (целочисленная переменная) | Количество товара в заказе (целое число) |
Взаимодействие с корзиной (add_to_cart)
Событие срабатывает при добавлении товара в корзину и является одним из ключевых индикаторов намерения купить (intent-to-buy).
Обязательное требование для корректного отслеживания — включение параметра quantity для каждого продукта.
window.dataLayer = window.dataLayer || [];
window.dataLayer.push({
event:'add_to_cart',
ecommerce: {
items: [{
item_name: 'Название товара',
item_id: 'ID товара',
price: 25.00, // Цена
currency: 'Валюта',
item_brand: 'Бренд товара',
item_category: 'Категория',
quantity: 2 // Количество товара
}]
}
});Завершение покупки (purchase)
Это событие — финальная точка воронки. Оно должно отправляться только один раз — на странице подтверждения или успешного оформления заказа. Событие purchase обязано содержать полный набор транзакционных параметров.
window.dataLayer = window.dataLayer || [];
window.dataLayer.push({
event:'purchase',
new_customer: 'true', // Тип клиента (например, 'true' - новый, 'false' - текущий
email: 'email@domain.com',
phone_number: '+380971234567',
ecommerce: {
transaction_id: 'Уникальный идентификатор транзакции',
value: 50.00, // Общая стоимость транзакции
currency: 'Валюта',
items: [{
item_name: 'Название товару',
item_id: 'ID товара',
price: 25.00, // Цена
currency: 'Валюта',
item_brand: 'Бренд товара',
item_category: 'Категория',
quantity: 2 // Количество товара
},{
... // В том же формате передаются данные всех последующих товаров в заказе
}]
}
});Финансовые метрики: валюта и стоимость
Чтобы в отчетах GA4 отображались корректные данные о доходах, нужно соблюдать требования к передаче финансовых параметров — currency (валюта) и value (общая стоимость).
Как работать с мультивалютностью
Для интернет-магазинов, которые реализуют продукцию в разных валютах, это особенно важно.
Типичная ошибка — жестко задавать валюту непосредственно в настройках тега GTM. Если зафиксировать одну валюту в теге, GA4 будет считать все продажи именно в ней, игнорируя реальный выбор пользователя на сайте. В итоге, если клиент купил товар за 100 евро, а в теге зашиты доллары, система запишет доход как 100 долларов.
Правильный подход — использовать динамическую переменную валюты.
Переменная currency в GTM должна автоматически подтягиваться из Data Layer для каждого события. Это означает, что GTM при отправке события каждый раз получает актуальное значение валюты из объекта ecommerce и передает его в GA4 без ручных подстановок.
Ниже приведу основные ecommerce события GA4 и требуемые параметры Data Layer.
Событие GA4 | Назначение | Обязательные параметры уровня события | Требования к Массиву items |
add_payment_info | Добавление информации об оплате во время оформления заказа | currency, value, payment_type (рекомендован) | Массив items (рекомендован, с item_id, item_name, price, quantity) |
add_shipping_info | Добавление информации о доставке во время оформления заказа | currency, value, shipping_tier (рекомендован) | Массив items (рекомендован, с item_id, item_name, price, quantity) |
add_to_wishlist | Добавление продукта в список желаний | currency, value (рекомендованы) | Массив items (с item_id, item_name, price, quantity) |
refund | Оформление возврата средств (полный или частичный) | transaction_id, currency, value (для общей суммы возврата) | Массив items (рекомендован; для частичного возврата: с item_id, item_name, price, quantity возвращаемых товаров) |
view_item_list | Просмотр списка продуктов | item_list_id, item_list_name (рекомендованы) | Массив items (с item_id, price, index) |
view_item | Просмотр деталей продукта | Нет | Массив items (обычно с 1 продуктом) |
add_to_cart | Добавление в корзину | Нет | Массив items (включая quantity) |
begin_checkout | Начало оформления заказа | Нет | Массив items (включая quantity) |
purchase | Завершение транзакции | transaction_id, value, currency | Полный массив items со всеми купленными продуктами |
remove_from_cart | Удаление продукта из корзины | currency, value (рекомендованы) | Массив items (с item_id, item_name, price, quantity удаляемых товаров) |
select_item | Выбор (клик) продукта из списка | item_list_id, item_list_name (рекомендованы) | Массив items (с item_id, item_name, index) |
select_promotion | Клик по внутреннему рекламному баннеру или промо-акции | promotion_id или promotion_name | Массив items (с promotion_id, promotion_name, creative_name, creative_slot) |
view_cart | Просмотр пользователем содержимого корзины | currency, value (общая стоимость корзины) | Массив items (с item_id, item_name, price, quantity) |
view_promotion | Просмотр внутреннего рекламного баннера или промо-акции | promotion_id или promotion_name | Массив items (с promotion_id, promotion_name, creative_name, creative_slot) |
Настройка Google Tag Manager
После того как разработчики внедрили корректные коды dataLayer.push() для всех коммерческих событий и вы проверили их работу, настройка переходит к аналитику и выполняется в интерфейсе Google Tag Manager.
Если структура Data Layer строго соответствует требованиям Google, настройка тега GA4 Event становится максимально простой. В этом случае не требуется вручную создавать десятки пользовательских переменных (User Defined Variables) для передачи каждого параметра товара.
Для тега события GA4 достаточно:
Открыть секцию дополнительные настройки (More Settings).
Перейти в пункт электронная торговля (ecommerce).
Поставить галочку в окошке «Отправлять данные электронной торговли» (Send Ecommerce data).
В качестве источника данных выбрать Data Layer.
Система автоматически распознает стандартный объект ecommerce и массив items в коде сайта и сама раскладывает их по нужным полочкам в отчетах GA4. Это исключает человеческий фактор и ошибки при ручном сопоставлении переменных.
Создание переменных уровня данных (Data Layer Variables)
Используются, чтобы GTM мог точечно забирать нужные значения из кода сайта.
В интерфейсе GTM перейдите в раздел «Переменные» (Variables).
Прокрутите до блока «Пользовательские переменные» и нажмите «Создать».
В настройках выберите тип Data Layer Variable.
В поле «Имя переменной уровня данных» укажите точный путь к значению через точку.
Данные в Data Layer имеют вложенную структуру. Чтобы получить конкретное значение, необходимо указать полный путь от верхнего уровня к нужному параметру.
Например, путь ecommerce.value означает: обратиться к объекту ecommerce и взять значение параметра value, находящегося внутри него.
Список рекомендованных переменных
Для полноценной работы с ecommerce я рекомендую сразу создать четыре базовые переменные.
Имя переменной | Что это | Зачем нужно |
ecommerce.items | Массив товаров | Содержит всю информацию о товарах (ID, имена, бренды). Нужно для ремаркетинга |
ecommerce.transaction_id | ID транзакции | Уникальный номер заказа. Обязательно для отслеживания покупок |
ecommerce.value | Общая стоимость | Финальная сумма заказа. Критично для подсчета выручки и ROAS |
ecommerce.currency | Валюта | Валюта операции. Важно для мультивалютных магазинов |
Крайне важно создавать переменные для объектов верхнего уровня (например, ecommerce.items), чтобы захватить весь массив целиком, а не извлекать и пересобирать отдельные элементы вручную в GTM. Такой подход упрощает настройку тега события GA4 и минимизирует риск ошибок при изменении структуры данных на сайте.
Создание пользовательских триггеров (Custom Event Triggers)
Триггер определяет точный момент срабатывания тега.
Для событий электронной торговли триггер всегда привязывается к пользовательскому событию (Custom Event) из Data Layer, имя которого соответствует имени, указанному в dataLayer.push().
Настройка триггера на примере события покупки
Перейдите в раздел «Триггеры» и нажмите «Создать».
Выберите тип триггера «Пользовательское событие».
В поле «Имя триггера» укажите имя события строго в том же виде, в каком оно передается разработчиками в Data Layer.
Для события покупки это, как правило, purchase. Здесь недопустимы любые отклонения.
Настройка тегов событий GA4 (GA4 Event Tags)
После настройки триггера необходимо создать сам тег события — «контейнер» данных, который отправит информацию в Google Analytics 4.
Для каждого действия создается отдельный тег.
Технические шаги на примере события покупки (purchase)
Создайте новый тег и выберите тип Google Analytics: GA4 Event.
Укажите свой Measurement ID.
Укажите стандартное имя события для GA4 (например, purchase).
Строгое соблюдение нейминга в протоколе GA4 особенно важно, так как любое отклонение от рекомендованных имен исключит данные из стандартных отчетов монетизации. В противном случае придется вручную настраивать специальные определения и пользовательские метрики, чтобы восстановить видимость данных.
Сопоставление параметров
Чтобы GA4 не просто зафиксировал факт покупки, а понял, что было куплено и на какую сумму, необходимо связать созданные ранее переменные с полями тега.
Это действие выполняется внутри настроек созданного вами тега события (например, purchase).
Откройте настройки тега и разверните блок «Параметры события» (Event Parameters).
Нажмите кнопку «Добавить параметр» (Add parameter) для создания новой строки.
Четкое разделение параметров гарантирует, что данные не потеряются при передаче. Работает это по принципу «Ключ — Значение».
Пример сопоставления переменных Data Layer в теге purchase:
Параметр события (GA4 Parameter Name) | Значение (Value) — переменная GTM | Назначение |
transaction_id | {{dlv - ecommerce.transaction_id}} | ID транзакции |
value | {{dlv - ecommerce.value}} | Сумма покупки |
currency | {{dlv - ecommerce.currency}} | Валюта транзакции |
coupon | {{dlv - ecommerce.coupon}} | Примененный купон |
items | {{dlv - ecommerce.items}} | Полный массив продуктов |
После заполнения параметров сохраните тег и привяжите к нему триггер purchase. При срабатывании кода на сайте GTM считает данные, упакует их в нужные параметры и отправит в отчеты GA4.
Верификация и отладка (Debugging)
Верификация подтверждает, что данные не только отправлены GTM, но и получены GA4 в корректном формате. Для точной локализации ошибок процесс отладки необходимо разделять на два последовательных этапа.
Этап 1. Двойная проверка в GTM preview mode
Режим предварительного просмотра GTM (Tag Assistant) позволяет убедиться, что теги сработали, а переменные уровня данных успешно извлекают требуемые значения.
Процесс проверки
Активируйте режим предварительного просмотра GTM, указав URL сайта.
Выполните тестовые действия, имитируя путь пользователя.
На вкладке Data Layer в панели Tag Assistant проверьте:
- произошло ли событие dataLayer.push() (например, purchase);
- корректно ли сформирована ли структура JSON, включая объект ecommerce и массив items.
На вкладке Variables проверьте, получают ли все созданные Data Layer Variables корректные значения.
На вкладке Tags — сработал ли тег события GA4 и был ли он активирован соответствующим триггером.
Этап 2. Финальная верификация в DebugView GA4
Режим отладки DebugView в GA4 подтверждает, что данные фактически получены аналитикой и соответствуют ожидаемому формату.
При использовании GTM Preview Mode автоматически включает режим отладки (debug_mode) для браузера, что позволяет видеть события в DebugView в режиме реального времени.
Процесс проверки
В интерфейсе GA4 перейдите в Admin → DebugView.
Выполните тестовое коммерческое действие на сайте.
Наблюдайте за потоком событий в реальном времени. Если GTM сработал корректно, событие (например, purchase) появится в DebugView сразу после выполнения действия.
Кликните на событие в потоке и убедитесь, что:
- имя события передано корректно;
- присутствуют все ключевые транзакционные параметры;
- параметр items присутствует и отмечен зеленой иконкой;
- массив items содержит корректный список товаров с нужными атрибутами.
Разделение отладки на GTM Preview Mode и GA4 DebugView позволяет точно локализовать источник проблемы и быстро определить, на каком этапе происходит сбой:
если тег сработал в GTM Preview Mode, но событие не появляется в DebugView, причина, как правило, связана с настройкой GA4 Configuration Tag или использованием некорректного Measurement ID;
Если событие отображается в DebugView, но параметры (value, items и другие) отсутствуют или передаются некорректно, это указывает на ошибку в сопоставлении переменных GTM с параметрами тега.
Выводы
Настройка электронной торговли через GTM — это не просто создание тегов, а построение строгой архитектуры данных. Чтобы отчеты в GA4 показывали реальную прибыль, а не случайные цифры, необходимо:
Внедрить стандартизированный Data Layer. Использовать унифицированный массив items для всех этапов воронки продаж.
Соблюдать иерархию параметров. Строго разделять данные уровня транзакции и детальные характеристики товаров.
Использовать динамическую валюту. Передавать код валюты через переменную, избегая жесткой фиксации в настройках.
Вручную сопоставить параметры в GTM. Явно связать поля в тегах GA4 с переменными уровня данных для корректного распознавания системой.
Проводить валидацию через DebugView и Preview Mode. Проверять корректность отображения данных в интерфейсе аналитики до публикации контейнера.
Свежее
Что отличает хорошее редактирование от плохого в SEO-копирайтинге
Задача редактора — не только улучшить грамотность и внешний вид текстов. Рассказываем, что именно делает тексты хорошо отредактированными.
Новости AI-поиска: что изменилось за последние месяцы
Дайджест главных обновлений AI и их влияния на рынок
Как построить репутацию бренда через короткие и содержательные посты в Threads и Х
Почему короткие посты стали ключевым инструментом формирования репутации? Рассказываем в статье.















