Как настроить расширенную электронную торговлю с помощью Google Tag Manager
Сегодня аналитика — не просто счетчик на сайте, а «центральная нервная система» вашего бизнеса. Если вы видите только общее количество посетителей, решения приходится принимать почти наугад.
Реальная ценность появляется в расширенной электронной торговле GA4. Она показывает весь путь к покупке: какие товары просматривают, что добавляют в корзину, на каком шаге чекаута останавливаются, где возникают ошибки. И вот тогда картина становится полнее.
В этой статье разберу этапы построения системы — от стратегии до отдельных событий в воронке.
Фундамент ecommerce-аналитики. Структура данных и архитектура DataLayer
В Google Analytics 4 каждый клик превращается в событие, а покупка — в цепочку параметров, из которой затем собираются отчеты и обучаются модели. Когда у вас настроено только базовое отслеживание успешных заказов, слишком многое остается без внимания, например просмотры товаров, добавление в корзину, шаги чекаута, ошибки, отказы.
Почему необходима ecommerce-аналитика
GA4 фокусируется на пользователе и событиях. Правильно настроенная расширенная электронная торговля помогает вашему бизнесу:
Оптимизировать ROAS (окупаемость рекламы). Вы увидите прибыльные позиции и те, которые съедают бюджет.
Анализировать воронку (Churn Analysis). Вы найдете узкие места вашего сайта и увидите ответы на вопросы типа, почему пользователи добавляют позицию в корзину, но массово уходят со страницы выбора доставки.
Строить сложные аудитории. Настроите ремаркетинг на тех, кто просматривал товары определенной категории, но не сделал покупку.
DataLayer — мост между сайтом и Google Tag Manager
DataLayer (уровень данных) — это массив объектов JavaScript, используемый для сбора и передачи информации от вашего ресурса в Google Tag Manager. Это временное хранилище, куда площадка записывает информацию о действиях пользователя в структурированном виде.
Важно учитывать, что отслеживание электронной торговли активируется исключительно при условии прямой передачи информации из кода сайта.
Без программного вызова соответствующих функций и передачи данных в DataLayer сбор информации о транзакциях или взаимодействии с товарами невозможен.
Поскольку Google Analytics 4 базируется на модели событий, каждая продажа или взаимодействие с продуктом становится сложным набором данных, питающим алгоритмы машинного обучения. DataLayer обеспечивает передачу цен, артикулов, категорий независимо от визуального оформления сайта. Это гарантирует, что изменение дизайна или расположения элементов на странице не приведет к остановке сбора аналитики.
Золотые правила DataLayer в 2026 году.
Строгое соответствие схеме GA4. Google ожидает данные в конкретном формате. Вместо старых ключей id и name теперь используются item_id и item_name. Если назвать параметр иначе, GA4 его не отследит.
Чистота типов данных. Цена (price) и сумма (value) должны передаваться в формате чисел (например, 1250.50), а не как строки в кавычках ("1250.50"). Строки вместо чисел мешают расчетам в отчетах.
Массив items. Все данные о товарах всегда должны быть завернуты в массив items, даже когда пользователь покупает только одну позицию.
Пример передачи данных в GTM.
Когда пользователь нажимает «Купить», скрипт сайта выполняет команду dataLayer.push(). GTM мгновенно считывает этот объект, распознает событие и отправляет его в GA4.
Практическое внедрение: от «счетчика» к полноценной воронке
Процесс настройки состоит из следующих этапов: базовое соединение и создание механизма передачи данных с разработкой логики событий.
Этап первый. Настройте отправку данных из GTM в GA4
Прежде чем отслеживать покупки, нужно научить GTM «общаться» с вашим ресурсом GA4.
Создайте Google Tag в интерфейсе GTM.
Получите ID. В интерфейсе Google Analytics 4 перейдите в Администратор (Admin) —> Потоки данных (Data Streams).
Выберите ваш поток и скопируйте Идентификатор показателя (Measurement ID). Он имеет формат G-XXXXXXXXXX.
Вставьте ID в поле Tag Id. В разделе Triggering выберите All Pages и сохраните настройки тега. Теперь GA4 видит каждый визит на сайт.
Техническая настройка в GTM: от триггера до тега на примере Purchase
С 2026 года настройка GA4 максимально автоматизирована. Вам не нужно вручную прописывать каждую переменную, такую как цена, ID транзакции или название товара, когда вы используете стандартную схему данных. Весь процесс настройки главного события — покупки (purchase) — теперь состоит всего из двух шагов.
Создание триггера
GTM должен четко понимать, когда именно произошла покупка. Данные нельзя отправлять наугад или с задержкой. Самый простой и надежный вариант — отдельное событие, которое сайт запускает сразу после успешной оплаты.
Перейдите в меню Триггеры (Triggers) —> New.
Тип триггера — выберите Специальное событие (Custom Event) из списка.
В поле Event name впишите purchase, назовите триггер Custom Event — purchase и сохраните, нажав на кнопку Save. Важно. Используйте то же название, что и в коде сайта, и обязательно пропишите его маленькими буквами.
Настройка тега события GA4
Финальный шаг — создание тега в GTM для отправки данных в Google Analytics 4.
GA4 Event. Теги (Tags) —> New —> Google Analytics.
Configuration Tag. Выберите ваш основной тег Google или введите ID потока G-XXXXXXXXXX, как делали ранее для установки Google Tag GA4. Введите стандартное название purchase.
Настройка передачи данных (Ecommerce):
откройте вкладку Дополнительные настройки (More Settings) —> Ecommerce;
поставьте только одну галочку Отправлять данные электронной торговли (Send Ecommerce data);
в поле Data source укажите Data Layer.
Активация (Triggering). Выберите созданный триггер Custom Event — purchase и добавьте его в ваш тег, нажав кнопку Добавить (Add).
После настроек сохраните тег и опубликуйте его в рабочей области Google Tag Manager.
Почему это работает без создания дополнительных переменных.
Благодаря активированной опции Send Ecommerce data, Google Tag Manager забирает объект ecommerce из dataLayer, если он передан в правильной структуре, а именно: цену, валюту и ID заказа. Он автоматически преобразует их в нужный формат и передает в GA4.
Этап второй. Логика срабатывания событий и передача данных в DataLayer
Правильный момент активации события (triggering) определяет чистоту вашей воронки. Разберу сценарии для каждого шага.
Просмотр списков товаров (view_item_list)
Это отслеживание позиций в каталоге, блоках рекомендаций, таких как «С этим также покупают» или акционных слайдерах. Есть два варианта реализации.
Стандартный. Событие срабатывает сразу после загрузки страницы. Вы отправляете данные обо всех продуктах, которые технически присутствуют в списке, даже если они находятся за пределами видимой части страницы.
Продвинутый (рекомендуется). Предусматривает использование Intersection Observer API. Событие фиксируется только тогда, когда карточка товара реально попадает в видимую область экрана (viewport).
Сценарии.
Пользователь зашел в категорию «Категория 1». В видимой зоне четыре товара — отправляйте view_item_list для этих четырех позиций.
Пользователь прокручивает вниз, появляются еще четыре новые позиции — отправляйте второе событие view_item_list для следующей четверки.
Пользователь вернулся вверх — ничего не отправляете (событие не должно дублироваться для одних и тех же товаров за одну сессию).
window.dataLayer = window.dataLayer || [];
window.dataLayer.push({
event: 'view_item_list',
ecommerce: { items: [{ item_name: 'Назва товару', item_id: 'ID товару', price: Ціна, currency: 'Валюта', item_brand: 'Бренд товару', item_category: 'Категорія', item_list_name: 'Назва списку', item_list_id: 'ID списку', index: Позиція товару в списку, quantity: Кількість товару },{ ... // за аналогією далі передаємо дані всіх наступних товарних позицій, що потрапили у видиму зону екрану (якщо їх більше 1) }] }});Пример кода в dataLayer
Клик по товару (select_item)
Это событие срабатывает в момент нажатия на карточку позиции, ссылку или кнопку «Подробнее».
Момент срабатывания:
событие активируется до того, как пользователь перейдет на новую страницу;
данные должны быть отправлены до перезагрузки страницы — для этого в GTM используется опция Wait for Tags или передача через DataLayer на самом сайте.
window.dataLayer = window.dataLayer || [];
window.dataLayer.push({
event: 'select_item',
ecommerce: { items: [{ item_name: 'Назва товару', item_id: 'ID товару', price: Ціна, currency: 'Валюта', item_brand: 'Бренд товару', item_category: 'Категорія', item_list_name: 'Назва списку', item_list_id: 'ID списку', index: Позиція товару в списку, quantity: Кількість товару }] }});Пример кода в dataLayer
Просмотр карточки товара (view_item)
Фиксируется непосредственно на странице конкретного продукта.
Сценарии
Прямой заход. Пользователь перешел по ссылке или из рекламы — событие активируется после полной загрузки страницы (DOM Ready).
Быстрый просмотр (Quick View). Если на сайте есть модальное окно с описанием товара, которое открывается без перехода на новую страницу — событие view_item сработает в момент открытия этого окна.
window.dataLayer = window.dataLayer || [];
window.dataLayer.push({
event: 'view_item',
ecommerce: { currency: 'Валюта', value: Ціна, items: [{ item_name: 'Назва товару', item_id: 'ID товару', price: Ціна, item_brand: 'Бренд товару', item_category: 'Категорія', item_list_name: 'Назва списку', item_list_id: 'ID списку', index: Позиція товару в списку, quantity: Кількість товару }] }});Пример кода в dataLayer
Добавление в корзину (add_to_cart)
Критически важное событие. Ключевой момент — определить точку его фиксации. Рассмотрю два варианта.
Неверно. Фиксировать только факт нажатия на кнопку «Купить». Пользователь мог нажать, но товар не добавился из-за ошибки или отсутствия на складе.
Верно. Событие должно срабатывать только после успешного ответа сервера, что продукт добавлен в корзину. Оптимальный момент для активации — появление визуального подтверждения или сообщения «Товар добавлен» на экране пользователя
window.dataLayer = window.dataLayer || [];window.dataLayer.push({ event: 'add_to_cart', ecommerce: { currency: 'Валюта', value: Ціна, items: [{ item_name: 'Назва товару', item_id: 'ID товару', price: Ціна,
discount: Знижка, item_brand: 'Бренд товару', item_category: 'Категорія', item_list_name: 'Назва списку', item_list_id: 'ID списку', index: Позиція товару в списку, quantity: Кількість товару }] }});Пример кода в dataLayer
Удаление из корзины (remove_from_cart)
Активируется при нажатии на «крестик» или кнопку удаления в корзине или мини-корзине. Срабатывает сразу после подтверждения удаления на стороне сайта. Когда пользователь уменьшает количество товара до нуля, это также трактуется как remove_from_cart.
window.dataLayer = window.dataLayer || [];window.dataLayer.push({ event: 'remove_from_cart', ecommerce: { items: [{ item_name: 'Назва товару', item_id: 'ID товару', price: Ціна, currency: 'Валюта', item_brand: 'Бренд товару', item_category: 'Категорія', item_list_name: 'Назва списку', item_list_id: 'ID списку', quantity: Кількість товару }] }});Пример кода в dataLayer
Просмотр корзины (view_cart)
Событие фиксируется каждый раз, когда пользователь открывает страницу корзины или разворачивает полнофункциональную Side-cart (боковую панель корзины).
Сценарий.
Пользователь добавил три позиции и перешел в корзину для просмотра списка — отправляйте событие view_cart. Пользователь только добавил товар и остался на странице — отправляйте только add_to_cart, без события view_cart.
window.dataLayer = window.dataLayer || [];window.dataLayer.push({ event: 'view_cart', ecommerce: { items: [{ item_name: 'Назва товару', item_id: 'ID товару', price: Ціна, currency: 'Валюта', item_brand: 'Бренд товару', item_category: 'Категорія', item_list_name: 'Назва списку', item_list_id: 'ID списку', index: Позиція товару в списку, quantity: Кількість товару },{ ... // за аналогією далі передаємо дані всіх наступних товарних позицій, що потрапили у кошик (якщо їх більше 1) }] }});Пример кода в dataLayer
Начало оформления заказа (begin_checkout)
Триггер инициируется при нажатии кнопки «Оформить заказ» в корзине.
Важно. Это должен быть первый шаг чекаута, например, переход на страницу ввода данных. Если у вас чекаут в один клик, где корзина и оформление на одной странице — событие срабатывает в момент загрузки этой страницы.
window.dataLayer = window.dataLayer || [];window.dataLayer.push({ event: 'begin_checkout', ecommerce: {
currency: 'Валюта',
value: Ціна, // сума всіх цін товарів (якщо їх більше 1) items: [{ item_name: 'Назва товару', item_id: 'ID товару', price: Ціна, item_brand: 'Бренд товару', item_category: 'Категорія', item_list_name: 'Назва списку', item_list_id: 'ID списку', quantity: Кількість товару
},{ ... // за аналогією далі передаємо дані всіх наступних товарних позицій, що потрапили на сторінку checkout (якщо їх більше 1) }] }});Пример кода в dataLayer
Добавление данных о доставке и оплате (add_shipping_info, add_payment_info)
Эти события активируются, когда пользователь успешно завершает соответствующие шаги.
Сценарии.
add_shipping_info — срабатывает, когда выбран способ доставки и заполнен адрес / отделение почты, например, после нажатия кнопки «Далее» на шаге доставки;
window.dataLayer = window.dataLayer || [];window.dataLayer.push({ event: 'add_shipping_info', ecommerce: { shipping_tier: 'Спосіб доставки', items: [{ item_name: 'Назва товару', item_id: 'ID товару', price: Ціна, currency: 'Валюта', item_brand: 'Бренд товару', item_category: 'Категорія', item_list_name: 'Назва списку', item_list_id: 'ID списку', quantity: Кількість товару },{ ... // за аналогією далі передаємо дані всіх наступних товарних позицій, які знаходяться у замовленні }] }});Пример кода в dataLayer
add_payment_info — работает, когда выбран метод оплаты (карта, при получении и т. д.) перед финальным нажатием кнопки «Подтвердить заказ».
window.dataLayer = window.dataLayer || [];window.dataLayer.push({ event: 'add_payment_info', ecommerce: { payment_type: 'Спосіб оплати', items: [{ item_name: 'Назва товару', item_id: 'ID товару', price: Ціна, currency: 'Валюта', item_brand: 'Бренд товару', item_category: 'Категорія', item_list_name: 'Назва списку', item_list_id: 'ID списку', quantity: Кількість товару },{ ... // за аналогією далі передаємо дані всіх наступних товарних позицій, які знаходяться в замовленні }] }});Пример кода в dataLayer
Покупка (purchase)
Отправка события происходит на странице «Спасибо за покупку» (Thank You Page).
Сценарии.
Страница успеха. Событие активируется при загрузке URL, например, /success/ или /thank-you/.
Защита от дубликатов. Событие не должно срабатывать повторно при обновлении страницы или переходе на нее из истории браузера. Для этого в GTM или в коде сайта ставится проверка на наличие transaction_id. Если этот идентификатор уже был отправлен ранее, повторно событие не должно отправляться.
window.dataLayer = window.dataLayer || [];window.dataLayer.push({ event: 'purchase', ecommerce: {
currency: 'Валюта',
value: Ціна, // сума всіх цін товарів (якщо їх більше 1) transaction_id: ідентифікатор замовлення, items: [{ item_name: 'Назва товару', item_id: 'ID товару', price: Ціна, item_brand: 'Бренд товару', item_category: 'Категорія', item_list_name: 'Назва списку', item_list_id: 'ID списку', quantity: Кількість товару
},{ ... // за аналогією далі передаємо дані всіх наступних товарних позицій, що були куплені (якщо їх більше 1) }] }});Пример кода в dataLayer
Описание параметров
Подробное описание параметров важно для аналитики, поскольку обеспечивает точность передачи каждого атрибута товара и позволяет GA4 правильно группировать данные в отчетах.
Общие параметры
Параметр | Тип данных | Описание |
transaction_id | String (строковая переменная) | Уникальный идентификатор транзакции (заказа). |
value | Number (числовая переменная) | Общая сумма заказа (стоимость) — сумма стоимости всех позиций в заказе. Например, 29.99 — в качестве десятичного разделителя используется точка. |
currency | String (строковая переменная) | Буквенное трехбуквенное обозначение валюты (USD, UAH) в соответствии со стандартом ISO 4217. |
Параметры товаров (items)
Параметр | Тип данных | Описание |
item_id | String (строковая переменная) | Уникальный идентификатор товара. Может использоваться как спецификация позиции (например GTIN), так и внутренние ID. |
item_name | String (строковая переменная) | Название товара (до 500 символов). |
item_category | String (строковая переменная) | Категория товара, например, «Одежда» (до 500 символов). |
item_category2, item_category3 | String (строковая переменная) | При необходимости можно использовать дополнительные уровни вложенности подкатегорий (до пяти уровней вложенности): Одежда —> Верхняя одежда —> Пальто. |
item_brand | String (строковая переменная) | Бренд товара. До 500 символов. |
price | Number (числовая переменная) | Стоимость продукта. Например, 29.99 — в качестве десятичного разделителя используется точка. |
quantity | Number (целочисленная переменная) | Количество товара в заказе, целое число. |
item_list_name | String (строковая переменная) | Список, где показана позиция. Релевантные для вашего списки приведены выше; |
item_list_id | Number (целочисленная переменная) | Идентификатор списка, можно сгенерировать идентификатор, который будет повторяться всегда для одного и того же списка; |
index | Number (целочисленная переменная) | Положение товара в этом списке; счет идет слева направо по горизонтали |
Анализ результатов: где искать данные о продажах в GA4
Если вы четко следовали предыдущим инструкциям по структуре DataLayer и настройке в GTM, данные начнут поступать в систему автоматически. Теперь ваша аналитика превращается в мощный инструмент для принятия обоснованных бизнес-решений.
Важно помнить. Данные в стандартных отчетах GA4 обычно появляются с задержкой от 24 до 48 часов. Не волнуйтесь, если не увидели тестовую продажу мгновенно.
Отчеты о монетизации (Monetization)
Это основное место, где собрана вся информация о ваших товарах и доходе.
В основном меню Google Analytics перейдите: Отчеты (Reports) —> Монетизация (Monetization).
Выберите пункт Покупки в электронной коммерции (Ecommerce purchases).
Отобразится таблица со статистикой по каждому товару:
сколько раз товар просматривали (item_views);
сколько раз его добавили в корзину (add_to_carts);
количество успешных покупок и общий доход от каждого артикула.
Отчет четко показывает товары-драйверы продаж и те, которые не дают ощутимого вклада
Исследование воронки продаж (Explorations)
Стандартных отчетов часто недостаточно, чтобы увидеть, где именно вы теряете клиентов. Для этого в GA4 есть раздел Explore (Исследования). Здесь вы можете строить собственные отчеты: создавать воронки, сегменты пользователей, анализировать пути к конверсии и сравнивать группы аудиторий.
Читайте тематические статьи в нашем блоге:
Выводы
Настройка расширенной электронной торговли в 2026 году — это стратегический фундамент для всего маркетинга.
Использование автоматизированной передачи данных через Google Tag Manager помогает значительно сократить время на внедрение. Благодаря стандартной схеме параметров и опции Send Ecommerce data аналитик сосредотачивается не на написании кода, а на поиске инсайтов в отчетах.
Что вы получаете в результате правильной настройки:
прозрачность воронки — вы больше не гадаете, почему клиенты не покупают, а четко видите этап, на котором возникают трудности;
точность бюджетов — вы точно знаете, какой рекламный канал приносит деньги, а какой — пустые клики;
масштабирование — имея точные данные о покупках, алгоритмы Google Ads получают идеальное топливо для поиска вашей целевой аудитории.
Даже самая совершенная система аналитики — лишь цифры на экране, если вы не превращаете их в действия. Регулярно анализируйте отчеты о монетизации, стройте собственные исследования воронки и не бойтесь экспериментировать. В электронной коммерции выигрывает тот, кто быстрее других принимает правильные решения на основе проверенных данных.
Этот материал обновлен, предыдущая статья авторства Александра Кухаренко публиковалась 6.12.2021.
Свежее
Почему пользователи удаляют приложение и как этого избежать
Что именно заставляет пользователей забывать и удалять приложение? Разбираем и предотвращаем отток юзеров
Как оценить готовность бизнеса к ML-аналитике: чеклист от Netpeak
Компании все чаще инвестируют в машинное обучение, однако модели не становятся частью повседневных решений. Разбираем, почему
Почему стоит запускать визуальную рекламу в Telegram Ads: кейс MOYO
Использовали обновление Telegram Ads раньше рынка и масштабировали результат













