Настройка Google Analytics 4 (GA4) для e-commerce: как правильно отслеживать покупки и ценность заказов
Почему базовая аналитика не показывает реальную картину. Как настроить события view_item, add_to_cart, begin_checkout и purchase, чтобы видеть окупаемость каждого рекламного объявления. Гайд для владельцев интернет-магазинов.
Содержание статьи
- Почему базовой аналитики недостаточно
- Базовая настройка GA4 для интернет-магазина
- Ключевые события e-commerce: от просмотра до покупки
- Что такое DataLayer и как он работает
- Google Tag Manager vs gtag.js: что выбрать
- Отслеживание покупок (purchase event)
- Как видеть окупаемость каждого объявления
- GA4 на BooStore.pro: настройка за 5 минут
- Shortcodes и Callback-функции: кастомная аналитика
- Типичные ошибки при настройке GA4
Почему базовой аналитики недостаточно
Стандартный код GA4, который многие просто вставляют в подвал сайта, показывает базовые метрики: количество посетителей, просмотры страниц, сеансы. Но для интернет-магазина этого категорически мало.
Без расширенной электронной торговли вы не узнаете:
- Сколько человек добавили товар в корзину, но не купили
- Какие товары чаще всего смотрят вместе
- На каком этапе оформления заказа люди бросают корзину
- Какая реклама привела реальные покупки, а не просто клики
- Средний чек и ценность заказа для каждого рекламного канала
Знакомый маркетолог рассказывал: настроили GA4 с e-commerce клиенту — магазину косметики. Через неделю выяснилось, что 40% людей бросают корзину на этапе выбора способа доставки. Упростили форму — конверсия выросла на 15%. Без данных они бы этого не заметили.
Базовая настройка GA4 для интернет-магазина
Прежде чем переходить к событиям e-commerce, нужно создать поток данных в GA4 и установить базовый код.
Шаг 1. Создание потока данных
- Зайдите в Google Analytics → Администратор → Создать ресурс
- Выберите "Веб-сайт", укажите URL вашего магазина
- Скопируйте ID измерения (формата G-XXXXXXXXXX)
Шаг 2. Установка кода на сайт
Есть несколько способов:
- Через Google Tag Manager (рекомендуется) — создаёте тег GA4 с триггером All Pages. GTM даёт гибкость для настройки событий без правки кода.
- Через CMS/платформу — многие платформы позволяют вставить ID GA4 в настройках. Например, на BooStore.pro достаточно ввести ID в поле "Google Analytics ID", и код подключается автоматически на все страницы.
Ключевые события e-commerce: от просмотра до покупки
Для интернет-магазина Google определил стандартный набор событий расширенной электронной торговли (enhanced e-commerce). Вот что нужно настроить в первую очередь:
| Событие | Когда срабатывает | Что даёт |
|---|---|---|
view_item | Посетитель открыл карточку товара | Видите, какие товары смотрят, но не покупают. Можно проанализировать цену, фото, описание |
view_item_list | Посетитель видит список товаров (категория, поиск) | Анализ популярности категорий, эффективности поиска на сайте |
add_to_cart | Товар добавлен в корзину | Конверсия из просмотра в корзину — один из главных показателей |
remove_from_cart | Товар удалён из корзины | Какие товары кладут, но потом убирают? Возможно, высокая цена или плохое описание |
begin_checkout | Начало оформления заказа | На этом этапе люди уже мотивированы. Если здесь отваливаются — проблема в форме или доставке |
add_shipping_info | Выбор способа доставки | Если пользователи не доходят до выбора — форма оформления сложная |
add_payment_info | Выбор способа оплаты | Может показать, что какой-то способ оплаты неудобен или не работает |
purchase | Завершение покупки | Самое важное событие. Показывает реальный доход, средний чек, окупаемость рекламы |
Каждое событие передаёт параметры: id товара, название, категорию, цену, количество, валюту. Эти данные формируют отчёты Во воронке покупок и в отчете "Монетизация".
Что такое DataLayer и как он работает
DataLayer — это JavaScript-объект на странице, который временно хранит данные о товарах, корзине и заказе. GA4 через GTM или gtag.js читает эти данные и отправляет их как параметры событий.
Без DataLayer каждое событие нужно было бы прописывать жёстко в коде. С DataLayer данные собираются автоматически — достаточно написать правильную структуру.
Пример DataLayer при добавлении товара в корзину:
Как настроить DataLayer в зависимости от платформы
- WordPress + WooCommerce: используйте плагин Google Listings & Ads или GTM4WP (Google Tag Manager for WooCommerce). Они автоматически генерируют DataLayer на всех страницах.
- OpenCart: нужен модуль расширенной электронной торговли. Без него DataLayer придётся писать вручную в файлах темы.
- BooStore.pro: DataLayer генерируется автоматически на уровне ядра. Все события e-commerce передаются в GA4 без установки плагинов. Подробнее — ниже.
Google Tag Manager vs gtag.js: что выбрать
Для передачи данных в GA4 можно использовать два подхода — прямую установку через gtag.js или через Google Tag Manager (GTM). У каждого есть свои плюсы и минусы.
Что такое Google Tag Manager
GTM — это бесплатный диспетчер тегов Google. Вместо того чтобы вставлять множество скриптов (GA4, Facebook Pixel, Яндекс.Метрика, Hotjar и др.) напрямую в код сайта, вы устанавливаете один контейнер GTM, а все теги настраиваете через веб-интерфейс.
Это позволяет менять настройки аналитики без привлечения разработчика и без правки кода сайта. Достаточно опубликовать новую версию контейнера — и изменения вступают в силу на всех страницах.
Что такое dataLayer.push() и как это работает
DataLayer — это глобальный JavaScript-массив, который хранит данные на странице. GTM читает этот массив и при появлении новых данных автоматически запускает соответствующие теги. Метод dataLayer.push() добавляет новый объект в этот массив, тем самым сообщая GTM о произошедшем событии.
Базовая структура вызова:
После вызова dataLayer.push() GTM проверяет, есть ли триггер, который реагирует на событие custom_event. Если есть — запускает связанные с ним теги. Это основа всей событийной аналитики.
Пример: отслеживание клика по кнопке через dataLayer.push
Допустим, у вас есть кнопка «Купить в один клик» и вы хотите отслеживать её нажатия в GA4. Вместо того чтобы вешать обработчик напрямую на GA4, вы добавляете dataLayer.push в JavaScript-код кнопки:
В GTM вы создаёте триггер на событие quick_buy и тег GA4, который отправляет это событие с параметрами product_id, product_name и price. Всё — без правки основного кода GA4.
Сравнение подходов: gtag.js vs GTM
| Параметр | gtag.js (прямая установка) | Google Tag Manager |
|---|---|---|
| Сложность установки | Низкая — вставил код и готово | Средняя — нужно создать контейнер, настроить теги и триггеры |
| Гибкость | Низкая — для изменения нужно править код | Высокая — всё через интерфейс, без кода |
| Скорость изменений | Нужно пушить изменения в коде | Опубликовал новую версию — изменения сразу на сайте |
| Количество тегов | Каждый тег — отдельный скрипт в коде | Один контейнер для всех тегов (GA4, Pixel, Hotjar и др.) |
| Предпросмотр (Preview) | Только через консоль браузера | Встроенный режим Preview — видно все сработавшие теги и DataLayer |
| Контроль версий | Нет | Есть — можно откатиться к предыдущей версии контейнера |
| Производительность | Скрипты загружаются сразу | Асинхронная загрузка, теги не блокируют рендеринг |
| Порог входа | Минимальный | Нужно разобраться с триггерами, переменными, тегами |
Когда что выбирать
- gtag.js — если у вас простой магазин, только GA4, и вы не планируете часто менять настройки аналитики. Подходит для быстрого старта.
- GTM — если у вас несколько систем аналитики (GA4 + Facebook Pixel + Яндекс.Метрика + Hotjar), вы планируете отслеживать кастомные события, хотите иметь возможность быстро вносить изменения без разработчика.
Отслеживание покупок (purchase event)
Событие purchase — самое важное. Именно на его основе Google считает доход, рентабельность рекламы (ROAS) и оптимизирует кампании.
Вот как должен выглядеть правильный DataLayer для покупки:
Параметры, которые нужно передавать:
transaction_id— уникальный ID заказа. Защита от дублирования: если GA4 получит два события с одинаковым transaction_id, он учтёт только первое.value— итоговая сумма заказа со скидкой и доставкой. Не сумма товаров, а реально оплаченная клиентом.currency— валюта (UAH, USD, EUR).items— массив купленных товаров с ценами и количествами.
Как видеть окупаемость каждого объявления
Когда все события e-commerce настроены, можно подключать рекламные каналы. Без этого вы видите только клики, но не знаете, какие из них привели к покупкам.
Связка GA4 + Google Ads
В GA4 зайдите в Администратор → Связи с другими продуктами → Связь с Google Ads. После этого в отчётах Google Ads появятся конверсии из GA4 (purchase, add_to_cart и др.).
Связка GA4 + Facebook / Meta Ads
Настройте Conversions API (CAPI) на стороне сервера. Без CAPI пиксель теряет до 30% данных из-за блокировщиков рекламы и iOS ограничений. GA4 в этой схеме выступает как сервер подтверждения конверсий.
Атрибуция: какая реклама реально продаёт
В GA4 есть отчёты по атрибуции. Они показывают, какие каналы приводят к покупкам, а какие — только к первым кликам. На основе этих данных вы перераспределяете бюджет: убираете неэффективные каналы, усиливаете работающие.
Пример из практики: настроили клиенту сквозную аналитику GA4 + Google Ads + Facebook. Выяснилось, что Facebook даёт 80% первых касаний, но только 20% завершающих. Google Ads — наоборот. Перераспределили бюджет: Facebook оставили для узнаваемости (верх воронки), Google Ads для конверсий (низ воронки). ROI вырос на 35%.
GA4 на BooStore.pro: настройка за 5 минут
В этом месте у владельцев WordPress и OpenCart обычно начинается боль: установка плагина, настройка DataLayer, проверка конфликтов скриптов, обновление при смене темы. На BooStore.pro всё иначе. Платформа также предоставляет мощные инструменты автоматизации и позволяет создавать сайты бронирования услуг — вся аналитика и для них уже встроена.
Расширенная электронная торговля GA4 интегрирована на уровне ядра платформы. Это значит:
ID измерения в админке
Достаточно вставить ID отслеживания GA4 (G-XXXXXXXXXX) в соответствующее поле в настройках сайта. Код подключается на все страницы автоматически.
Автоматические события e-commerce
view_item, add_to_cart, remove_from_cart, begin_checkout, purchase — все события передаются в GA4 без дополнительной настройки.
Корректный DataLayer
DataLayer генерируется ядром с правильными параметрами: цена со скидкой, валюта, категория товара, уникальный ID заказа. Никаких плагинов.
Google Tag Manager
Поддерживается как прямая интеграция GA4, так и через GTM. Просто вставьте ID контейнера GTM — и управляйте тегами через интерфейс Google.
События форм и подписок
Отправка данных из форм обратной связи, подписки на рассылки, регистрации — все эти события тоже передаются в GA4, если настроены.
Раздельные настройки GA4 и GTM
Можно подключить и GA4 напрямую, и GTM одновременно — они не конфликтуют. Каждый со своим ID.
Сравните: на WordPress нужно установить плагин (например, GTM4WP), настроить его карту данных, проверить совместимость с темой и другими плагинами, протестировать. При обновлении темы или плагина — проверить снова. На BooStore.pro всё это работает "из коробки" и не ломается при обновлениях.
Для старта достаточно бесплатного тарифа — GA4, DataLayer и события e-commerce работают на всех тарифах, включая бесплатный. Ограничение только на количество товаров, но не на аналитику.
Shortcodes и Callback-функции: кастомная аналитика на BooStore.pro NEW
Стандартного набора событий GA4 часто хватает для базовой аналитики, но для сложных сценариев может потребоваться передача собственных данных. На BooStore.pro для этого есть два мощных инструмента — Shortcodes и Callback-функции.
Shortcodes: динамические данные в любом месте
Shortcodes — это заменяемые псевдонимы, которые подставляют реальные данные из системы: ID товара, название, цену, категорию, артикул, путь к изображению и многое другое. Они работают на уровне HTML и JavaScript, позволяя встраивать актуальные данные прямо в код аналитики.
Полный список Shortcodes описан в документации платформы.
Пример: передача ID товара в кастомное событие GA4
Допустим, вы хотите отправить в GA4 событие при нажатии на кнопку «Быстрый просмотр» с данными о товаре. Используем Shortcodes, чтобы динамически подставить ID, название и цену товара:
Shortcodes [product_id], [product_name], [product_price] и [product_sku] будут автоматически заменены на реальные данные карточки товара при её открытии. В GTM вы создаёте триггер на событие quick_view и читаете эти параметры.
Пример: событие при отправке формы с данными заказа
Shortcodes работают не только с товарами, но и с другими данными сайта. Например, можно передавать сумму заказа на странице "Спасибо":
Callback-функции: перехват событий платформы
BooStore.pro поддерживает JavaScript Callback-функции, которые автоматически вызываются после загрузки или изменения определённых данных на странице. Это позволяет внедрить свою логику аналитики без изменения ядра сайта. Все события описаны в документации по Callback-функциям.
Доступные Callback-события для аналитики
callback_add_cart(product_id)
Вызывается при добавлении товара в корзину. Передаёт ID товара. Можно сразу отправлять событие add_to_cart в GA4.
callback_remove_cart(product_id)
Вызывается при удалении товара из корзины. Полезно для отслеживания remove_from_cart.
callback_variation_change(product_id, variation_id)
Вызывается при смене разновидности товара (например, выбор размера или цвета). Можно анализировать, какие варианты популярнее.
callback_favorite_add(product_id)
Вызывается при добавлении товара в избранное. Полезно для ремаркетинга.
callback_list_products(products)
Вызывается после отображения списка товаров. Передаёт массив товаров на странице. Используйте для view_item_list.
callback_order_confirm(order_id, total)
Вызывается при подтверждении заказа. Передаёт ID заказа и сумму — идеально для purchase event.
Реальный пример: кастомный purchase event через Callback
Допустим, вы хотите отправить в GA4 событие purchase с дополнительными данными, которые не передаёт стандартный DataLayer BooStore.pro. Вы можете переопределить callback_order_confirm:
Пример: отслеживание смены разновидности товара
Если вы продаёте товары с разновидностями (цвет, размер), полезно знать, какой вариант выбирают чаще. Используем callback_variation_change:
Пример: кастомная передача данных при добавлении в корзину
Иногда нужно отправить в GA4 не только стандартные поля, но и дополнительную информацию — например, откуда пришёл пользователь или его группу скидок:
Быстрая интеграция через GTM + Shortcodes
Вы можете комбинировать GTM с Shortcodes для гибкой настройки. Вместо того чтобы писать JavaScript-код на сайте, используйте Custom HTML тег в GTM, вставьте туда код с Shortcodes, и GTM будет обрабатывать его как обычный тег:
Этот тег будет срабатывать на страницах товаров и передавать в DataLayer реальные данные из Shortcodes. Остальные теги GTM будут иметь к ним доступ.
Типичные ошибки при настройке GA4
Я видел десятки магазинов, где GA4 настроен, но данные не приходят или приходят некорректно. Вот самые частые ошибки:
- Отсутствует transaction_id в purchase — GA4 не засчитывает покупку без него. Система считает, что это дубль. Проверьте, передаётся ли ID заказа в DataLayer.
- Дублирование события purchase — если событие purchase отправляется дважды за одну покупку (например, на странице "Спасибо за заказ" и ещё где-то), GA4 задвоит доход. transaction_id защищает от дублей только в рамках одного ресурса.
- Неверная валюта — если в магазине указана гривна, а событие отправляет USD, данные о доходе будут некорректными. Проверьте параметр currency в каждом событии.
- Устаревший код Universal Analytics — если на сайте висит старый код UA (UA-XXXXXX), но нет GA4 (G-XXXXXXX), данные не приходят. Нужен именно новый код GA4. Universal Analytics отключён с июля 2023.
- Блокировщики рекламы — многие пользователи используют AdBlock, который блокирует GA4. Серверный GTM (Server-side Tagging) решает эту проблему, но требует настройки.
- Игнорирование тестовой покупки — настроили и забыли проверить. Всегда делайте тестовый заказ и проверяйте через отчёт в реальном времени, пришло ли событие purchase.
Аналитика — это не магия, а данные
Правильно настроенная аналитика показывает, какие товары продаются, откуда приходят клиенты и сколько вы зарабатываете с каждой гривны рекламного бюджета. Без неё вы управляете магазином вслепую.
Начните с малого: установите GA4, настройте purchase event, проверьте тестовую покупку. Через неделю у вас будут данные, на основе которых можно принимать решения. Через месяц — понимание, как распределять рекламный бюджет.
GA4, Facebook Pixel, события e-commerce — всё встроено.
❓ Часто задаваемые вопросы о настройке GA4 для интернет-магазина
Ответы на вопросы, которые чаще всего возникают при настройке аналитики e-commerce.
Нужно ли настраивать DataLayer вручную на BooStore.pro?
Нет. На платформе BooStore.pro DataLayer генерируется автоматически на уровне ядра. Все события e-commerce (view_item, add_to_cart, purchase и др.) передаются в GA4 без установки плагинов и дополнительной настройки. Достаточно вставить ID отслеживания GA4 в настройках сайта.
Чем GA4 отличается от Universal Analytics для интернет-магазина?
GA4 использует модель событий (events), а не сеансов (sessions), как UA. Это даёт более гибкую аналитику: вы видите не просто "посещения", а конкретные действия пользователей. Кроме того, GA4 поддерживает кросс-платформенное отслеживание (сайт + мобильное приложение), Data-Driven атрибуцию и машинное обучение для прогнозирования поведения. Universal Analytics официально отключён с июля 2023 года — все должны перейти на GA4.
Почему в GA4 не отображаются покупки?
Самая частая причина — отсутствует обязательный параметр transaction_id в событии purchase. Без него GA4 игнорирует событие. Другие причины: дублирование ID заказа, неверная валюта, блокировщики рекламы, неправильная установка кода GA4. Рекомендуем проверить через режим Preview GTM или GA4 DebugView.
Можно ли подключить GA4 к интернет-магазину без GTM?
Да, можно установить код GA4 напрямую (gtag.js). Этот способ проще, но менее гибкий. Google Tag Manager рекомендуется, если вы планируете настраивать множество событий, пикселей и интеграций. На BooStore.pro поддерживаются оба способа — укажите ID GA4 в админке или ID контейнера GTM.
Как GA4 считает доход от покупок?
GA4 суммирует значение параметра value во всех событиях purchase. В value должна передаваться итоговая сумма заказа с учётом скидок, стоимости доставки и налогов. Если value не передаётся, GA4 пытается рассчитать доход как сумму price × quantity для каждого товара, но это менее надёжный способ.
Нужно ли маркировать ссылки UTTM-метками?
Да, обязательно. GA4 автоматически определяет источник трафика для Google Ads и органического поиска. Для всех остальных каналов (email-рассылки, соцсети, партнёрские ссылки) нужно добавлять UTM-метки. Правильная маркировка — основа корректной атрибуции. Без UTM-меток трафик из Instagram может попадать в "Direct" или "Referral", и вы не увидите его реальную ценность.
Какие отчёты GA4 самые важные для интернет-магазина?
Топ-5 отчётов для e-commerce: 1) Монетизация → Обзор — доход, покупки, средний чек. 2) Монетизация → Электронная торговля — покупки по товарам и категориям. 3) Вовлечённость → События — просмотры всех событий (add_to_cart, begin_checkout, purchase). 4) Атрибуция → Модели атрибуции — какой канал реально продаёт. 5) Аудитория → Обзор — поведение клиентов, новые vs. вернувшиеся. Настройте эти отчёты в избранное для быстрого доступа.
Что такое dataLayer.push() и зачем он нужен?
dataLayer.push() — это JavaScript-метод, который добавляет данные в глобальный массив DataLayer на странице. Когда вы вызываете dataLayer.push({event: "custom_event", ...}), Google Tag Manager мгновенно получает уведомление и запускает теги, привязанные к этому событию. Это основной способ передачи кастомных событий в GA4, Facebook Pixel и другие системы аналитики без вставки дополнительных скриптов в код сайта.
GTM или gtag.js — что лучше для интернет-магазина?
Если у вас простой магазин с одним-двумя скриптами аналитики — достаточно gtag.js. Это быстрее настраивается. Если вы используете GA4 + Facebook Pixel + Hotjar + собственные события — выбирайте GTM. Он даёт гибкость: можно менять настройки без разработчика, есть режим предпросмотра, контроль версий и централизованное управление всеми тегами. На BooStore.pro поддерживаются оба подхода.
Как передать кастомные данные в GA4 через Shortcodes на BooStore.pro?
Shortcodes — это псевдонимы вида [product_id], [product_name], [product_price], которые автоматически заменяются на реальные данные карточки товара. Вы можете использовать их в JavaScript-коде на странице. Например: dataLayer.push({event: "view", id: "[product_id]"}). При открытии товара [product_id] будет заменён на его ID. Полный список доступных Shortcodes — в документации.
Как использовать Callback-функции BooStore.pro для аналитики?
Callback-функции — это JavaScript-функции, которые автоматически вызываются платформой при наступлении определённых событий: добавлении в корзину (callback_add_cart), удалении из корзины (callback_remove_cart), изменении разновидности (callback_variation_change), подтверждении заказа (callback_order_confirm) и других. Вы определяете эти функции в своём коде, и они получают данные о событии. Внутри функции вы можете отправить эти данные в GA4 через dataLayer.push() или в любую другую систему. Полное описание — в документации по Callback-функциям.