Як налаштувати GA4 Ecommerce Tracking у Google Tag Manager
TL;DR: GA4 ecommerce tracking вимагає структурованих data layer подій (view_item, add_to_cart, purchase тощо) з масивом items, що містить деталі товарів. У GTM створіть GA4 Event тег для кожної ecommerce події з увімкненою опцією "Send Ecommerce Data", запустіть його Custom Event тригером і протестуйте в GA4 DebugView. Shopify та WooCommerce потребують плагінів або кастомного коду для data layer. AI Agent у GTM Event Helper може згенерувати повне ecommerce налаштування для GA4, Meta, TikTok та інших платформ за хвилини.
GA4 ecommerce tracking дає повну картину взаємодії покупців з вашим магазином: які товари вони переглядають, що додають до кошика і що купують. Без нього звіти GA4 показують перегляди сторінок та сесії, але нічого про дохід, ефективність товарів чи відмови на етапі оформлення замовлення.
Налаштування складніше за базовий event tracking, оскільки ecommerce події вимагають структурованих даних про товари в data layer. Цей гайд охоплює кожен крок: назви подій, які очікує GA4, структуру data layer, конфігурацію тегів у GTM, платформо-специфічне налаштування для Shopify та WooCommerce, і тестування.
Які існують GA4 ecommerce події?
GA4 визначає конкретний набір назв ecommerce подій. Використання саме цих назв обов'язкове — вони активують вбудовані звіти Monetization, воронки покупок та предиктивні аудиторії. Кастомні назви подій не заповнюють ecommerce звіти.
| Назва події | Коли запускати | Обов'язкові параметри |
|---|---|---|
view_item_list | Користувач бачить список товарів (сторінка категорії, результати пошуку) | items |
select_item | Користувач натискає на товар у списку | items |
view_item | Користувач переглядає сторінку товару | items, currency, value |
add_to_cart | Користувач додає товар у кошик | items, currency, value |
remove_from_cart | Користувач видаляє товар із кошика | items, currency, value |
view_cart | Користувач переглядає кошик | items, currency, value |
begin_checkout | Користувач починає оформлення замовлення | items, currency, value |
add_payment_info | Користувач вводить платіжну інформацію | items, currency, value |
add_shipping_info | Користувач вводить інформацію про доставку | items, currency, value |
purchase | Користувач завершує транзакцію | items, transaction_id, currency, value |
refund | Оформлено повернення коштів | items, transaction_id, currency, value |
Не обов'язково впроваджувати всі події одразу. Почніть з основної воронки: view_item, add_to_cart, begin_checkout та purchase. Додайте view_item_list і select_item, коли базові події працюватимуть.
Як працює GA4 ecommerce data layer?
GA4 ecommerce події спираються на конкретну структуру data layer. Кожен ecommerce push повинен містити назву події та об'єкт ecommerce з масивом items. Кожен елемент масиву представляє один товар.
Стандартна структура:
dataLayer.push({ ecommerce: null }); // Очистити попередні ecommerce дані
dataLayer.push({
event: "view_item",
ecommerce: {
currency: "USD",
value: 29.99,
items: [
{
item_id: "SKU-12345",
item_name: "Blue Running Shoes",
item_brand: "SportBrand",
item_category: "Footwear",
item_category2: "Running",
item_variant: "Blue / Size 10",
price: 29.99,
quantity: 1,
index: 0,
item_list_id: "related_products",
item_list_name: "Related Products"
}
]
}
});
Критичне правило: завжди очищайте ecommerce об'єкт перед новим push. Рядок dataLayer.push({ ecommerce: null }) запобігає потраплянню старих даних товарів з одної події в наступну. Без цього GTM може об'єднати старі та нові ecommerce об'єкти, надіславши некоректні дані в GA4.
Масив items підтримує до 200 товарів на подію. Кожен товар має стандартні поля:
item_id— SKU товару або унікальний ідентифікатор (обов'язково)item_name— назва товару (обов'язково)price— ціна за одиницю як число, не рядокquantity— кількість одиницьitem_brand,item_category,item_variant— необов'язкові, але цінні для звітів GA4item_category2доitem_category5— ієрархія вкладених категорійindex— позиція товару в списку (дляview_item_listтаselect_item)
Як відправити дані товарів у data layer?
Data layer push має відбуватися на вашому сайті, а не в GTM. Backend або frontend код вашого сайту відповідає за вставку коректних даних товарів у потрібний момент. GTM лише читає з data layer — він не генерує дані товарів.
Три поширені підходи:
- Server-side rendering. Ваша CMS або backend-шаблон вставляє блок
<script>з викликомdataLayer.push()при завантаженні сторінки. Це найнадійніший метод для подійview_itemтаview_item_list, оскільки дані доступні до завантаження GTM. - JavaScript event listeners. Для дій, ініційованих користувачем (наприклад,
add_to_cart), додайте обробник кліку на кнопку "Додати в кошик", який витягує дані товару з DOM та надсилає їх у data layer. Це вимагає доступу до JavaScript сайту. - Плагіни платформ. Shopify, WooCommerce, Magento та інші платформи мають плагіни, які автоматично надсилають data layer pushes. Детальніше в розділах нижче.
Якщо ви не можете змінити вихідний код сайту, можна використати GTM Custom HTML тег для витягування даних товарів з DOM сторінки. Цей підхід крихкий — він залежить від стабільності HTML-структури — але працює як останній варіант. AI Agent у GTM Event Helper використовує цей підхід розумно: аналізує структуру сторінки та генерує скрипти, що динамічно читають дані товарів з DOM-елементів замість хардкодингу значень.
Як створити GA4 ecommerce теги в GTM?
Для кожної ecommerce події потрібен окремий GA4 Event тег у GTM. Ключова відмінність від звичайних GA4 подій: потрібно увімкнути чекбокс "Send Ecommerce Data", який вказує тегу автоматично читати об'єкт ecommerce з data layer.
Покрокова інструкція для кожного тегу:
- У GTM перейдіть до Tags → New
- Tag Type: Google Analytics: GA4 Event
- Measurement ID: ваш
G-XXXXXXXXXX - Event Name: точна назва GA4 ecommerce події (наприклад,
view_item,add_to_cart,purchase) - Розгорніть More Settings → Ecommerce та поставте галочку "Send Ecommerce data". Оберіть "Data Layer" як джерело даних.
- Trigger: створіть Custom Event тригер, де назва події збігається з data layer push (наприклад, Event Name дорівнює
view_item)
Вам не потрібно вручну маппити параметри товарів — опція "Send Ecommerce data" автоматично зчитує весь масив ecommerce.items. Додаткові event parameters потрібні лише якщо ви хочете передати дані поза ecommerce об'єктом.
Як налаштувати view_item та view_item_list події?
view_item спрацьовує на сторінках товарів. view_item_list спрацьовує на сторінках категорій, результатах пошуку або будь-якій сторінці з кількома товарами.
view_item data layer push:
dataLayer.push({ ecommerce: null });
dataLayer.push({
event: "view_item",
ecommerce: {
currency: "USD",
value: 49.99,
items: [{
item_id: "SKU-789",
item_name: "Wireless Headphones",
item_brand: "AudioTech",
item_category: "Electronics",
item_category2: "Audio",
price: 49.99,
quantity: 1
}]
}
});
view_item_list data layer push:
dataLayer.push({ ecommerce: null });
dataLayer.push({
event: "view_item_list",
ecommerce: {
item_list_id: "category_electronics",
item_list_name: "Electronics",
items: [
{
item_id: "SKU-789",
item_name: "Wireless Headphones",
price: 49.99,
index: 0,
item_list_id: "category_electronics",
item_list_name: "Electronics"
},
{
item_id: "SKU-790",
item_name: "Bluetooth Speaker",
price: 34.99,
index: 1,
item_list_id: "category_electronics",
item_list_name: "Electronics"
}
]
}
});
Поле index повідомляє GA4 позицію кожного товару в списку. Це забезпечує роботу звіту "Product List Performance" у GA4, який показує, з яких позицій списку найбільше кліків та доходу.
У GTM створіть два теги: один для view_item і один для view_item_list. Обидва мають однакову конфігурацію — GA4 Event тег з увімкненим "Send Ecommerce data" — але різні Custom Event тригери.
Як налаштувати add_to_cart та remove_from_cart події?
Ці події відстежують зміни в кошику. Data layer push спрацьовує, коли користувач натискає "Додати в кошик" або "Видалити" на елементі кошика.
add_to_cart data layer push:
dataLayer.push({ ecommerce: null });
dataLayer.push({
event: "add_to_cart",
ecommerce: {
currency: "USD",
value: 49.99,
items: [{
item_id: "SKU-789",
item_name: "Wireless Headphones",
item_brand: "AudioTech",
item_category: "Electronics",
price: 49.99,
quantity: 1
}]
}
});
remove_from_cart використовує ідентичну структуру — просто змініть назву події на remove_from_cart.
Поширені помилки з подіями кошика:
- Невідповідність кількості. Якщо користувач додає 3 одиниці, поле
quantityмає бути3, а не1.valueмає відображати загальну суму:price * quantity. - Відсутня валюта. GA4 ігнорує грошові значення без поля
currency. Завжди додавайте його. - Спрацьовування при завантаженні сторінки. Події кошика мають спрацьовувати на дію користувача (клік), а не при завантаженні сторінки. Якщо сайт перезавантажує сторінку після додавання в кошик, відправляйте подію на сторінці підтвердження або використовуйте прапорець у cookie/sessionStorage для одноразового push.
Як налаштувати подію purchase?
Подія purchase — найважливіша ecommerce подія. Вона заповнює звіти доходу GA4, дані конверсій та передається в Google Ads Smart Bidding. Некоректно налаштована purchase подія означає неточні дані про дохід у всьому аналітичному стеку.
dataLayer.push({ ecommerce: null });
dataLayer.push({
event: "purchase",
ecommerce: {
transaction_id: "T-20260401-001",
currency: "USD",
value: 109.97,
tax: 8.80,
shipping: 5.99,
coupon: "SPRING20",
items: [
{
item_id: "SKU-789",
item_name: "Wireless Headphones",
item_brand: "AudioTech",
item_category: "Electronics",
price: 49.99,
quantity: 2,
coupon: "SPRING20"
},
{
item_id: "SKU-456",
item_name: "USB-C Cable",
item_category: "Accessories",
price: 9.99,
quantity: 1
}
]
}
});
Ключові вимоги до purchase події:
transaction_idобов'язковий. GA4 використовує його для дедуплікації транзакцій. Без нього оновлення сторінки подяки надсилає дублікати покупок.valueмає відповідати реальному доходу. Це підсумок замовлення (сумаprice * quantityдля всіх товарів). Чи включати податок та доставку уvalue— залежить від бізнесу, але будьте послідовними.currencyмає бути валідним ISO 4217 кодом (USD,EUR,UAHтощо).- Спрацьовуйте лише один раз на транзакцію. Використовуйте сторінку підтвердження замовлення (thank-you page) та переконайтеся, що data layer push не спрацьовує при оновленні сторінки. Server-side rendering з одноразовим прапорцем — найбезпечніший підхід.
У GTM тег purchase ідентичний іншим ecommerce тегам: GA4 Event тег, event name purchase, увімкнений "Send Ecommerce data", тригер Custom Event де event name дорівнює purchase.
Як протестувати ecommerce tracking у GA4 DebugView?
Тестування ecommerce подій складніше за базові події, оскільки потрібно перевірити масив items, а не лише назву події.
- Увімкніть GTM Preview mode. У GTM натисніть Preview та підключіться до сайту.
- Пройдіть воронку покупки. Перегляньте товар, додайте до кошика, перейдіть до оформлення, завершіть покупку (використайте тестове замовлення).
- Перевірте Tag Assistant. На кожному кроці переконайтеся, що правильний GA4 Event тег спрацював. Клікніть на тег для перевірки — шукайте об'єкт
ecommerceта переконайтеся, що масивitemsмістить правильні товари, ціни та кількості. - Відкрийте GA4 DebugView. Перейдіть до GA4 Admin → DebugView. Увімкніть debug mode за допомогою GA Debugger розширення або додавши
?debug_mode=trueдо URL. - Перевірте кожну подію. Клікніть на кожну ecommerce подію в таймлайні DebugView. Розгорніть параметри та перевірте:
- Масив
itemsмає правильну кількість товарів - Кожен товар має
item_id,item_nameтаprice currencyтаvalueприсутні і коректні- Для
purchase:transaction_idунікальний
- Масив
Типові проблеми DebugView:
- Подія з'являється, але масив items порожній. Чекбокс "Send Ecommerce data" не увімкнений у GTM тезі, або data layer push використовує некоректну структуру (наприклад,
productsзамістьitems). - Товари є, але ціна 0 або відсутня. Поле
price— рядок ("29.99") замість числа (29.99), або вкладене некоректно. - Подія не з'являється взагалі. Назва Custom Event тригера не збігається з назвою події в data layer push. Перевірте помилки та регістр —
add_to_cartце неaddToCart.
Як налаштувати ecommerce tracking на Shopify?
Shopify не надсилає GA4-сумісні data layer події нативно. Потрібне стороннє рішення або кастомний код. Поширені підходи:
- Нативна GA4 інтеграція Shopify (обмежена). Shopify пропонує вбудований Google channel, який надсилає ecommerce дані безпосередньо в GA4 без GTM. Охоплює базові події (
view_item,add_to_cart,purchase), але не дає контролю над параметрами і не працює з GTM. - GTM + data layer додаток. Додатки типу "Google Tag Manager for Shopify" (від Elevar, Analyzify та інших) додають data layer pushes для всіх ecommerce подій. Рекомендований підхід, бо дає повний контроль у GTM.
- Кастомний Liquid код. Якщо не хочете використовувати додаток, можна додати data layer pushes безпосередньо в Liquid-шаблони Shopify. Потрібно змінити
theme.liquid,product.liquidта checkout через Additional Scripts (для purchase подій). Потужний, але складніший у підтримці при оновленнях теми.
Незалежно від підходу, конфігурація GTM залишається однаковою: GA4 Event теги з увімкненим "Send Ecommerce data", запущені Custom Event тригерами, що відповідають назвам подій data layer.
Обмеження Shopify checkout: Shopify обмежує JavaScript на сторінках checkout для магазинів без Shopify Plus. Для магазинів не на Plus трекінг покупок зазвичай використовує поле Additional Scripts у Settings → Checkout, яке виконується на сторінці підтвердження замовлення.
Як налаштувати ecommerce tracking на WooCommerce?
WooCommerce має потужнішу GTM інтеграцію завдяки open-source екосистемі. Стандартний підхід:
- Встановіть data layer плагін. "GTM4WP" (GTM for WordPress) від Thomas Geiger — найпопулярніший безкоштовний варіант. Він надсилає GA4-сумісні data layer події для всіх стандартних ecommerce дій автоматично.
- Налаштуйте GTM4WP. Після встановлення перейдіть до Settings → Google Tag Manager → Integration та увімкніть "WooCommerce" інтеграцію. Оберіть формат data layer: "GA4" (не "Universal Analytics").
- Створіть GTM теги. GTM4WP надсилає події зі стандартними назвами GA4, тому налаштування GTM таке саме, як описано раніше. Створіть GA4 Event тег для кожної події з увімкненим "Send Ecommerce data".
GTM4WP виконує всю важку роботу: витягує дані товарів з PHP-об'єктів WooCommerce та рендерить data layer pushes в HTML сторінки. Події типу view_item спрацьовують при завантаженні сторінки, а add_to_cart — через JavaScript при кліку на кнопку (включно з AJAX add-to-cart).
Обробка варіативних товарів. Варіативні товари WooCommerce (розмір, колір) потребують окремої уваги. GTM4WP v1.18+ надсилає дані обраної варіації, коли користувач вибирає опції на сторінці товару. Перевірте в Tag Assistant — поле item_variant має оновлюватися при виборі іншої варіації.
Які поширені помилки GA4 ecommerce tracking?
- Не очищено ecommerce об'єкт. Без
dataLayer.push({ ecommerce: null })перед кожною подією старі дані товарів змішуються з новими. Користувач, що переглядає Товар A, а потім Товар B, може надіслати обидва товари в подіїview_itemдля Товару B. - Неправильні назви полів. GA4 очікує
item_idтаitem_name, а неidтаname(які використовувалися в Universal Analytics). Найпоширеніша помилка міграції. - Рядкові значення для ціни та кількості.
"29.99"(рядок) vs29.99(число). GA4 може прийняти рядки в деяких випадках, але грошові розрахунки ламаються. Завжди використовуйте числа. - Відсутнє поле currency. GA4 ігнорує
valueякщоcurrencyвідсутній. Кожна подія з грошовим значенням потребує обох полів. - Дублікати purchase подій. Спрацьовування purchase на thank-you page, яка перезавантажується або збережена в закладках. Використовуйте
transaction_idдля дедуплікації та server-side прапорець для запобігання повторному спрацьовуванню. - Забутий "Send Ecommerce data" у GTM. GA4 Event тег спрацьовує, назва події з'являється в DebugView, але масив items порожній, бо чекбокс не увімкнений.
- Непослідовні коди валют. Змішування
USDі$абоEURіEuro. Використовуйте лише ISO 4217 коди. - Тестування не всієї воронки. Тестування лише purchase події та виявлення через місяці, що
view_itemніколи не спрацьовує, що ламає аналіз воронки.
Чи є швидший спосіб налаштувати ecommerce tracking?
Ручне налаштування ecommerce tracking включає написання data layer pushes, створення кількох GTM тегів і тригерів, маппінг параметрів та тестування кожної події окремо. Для повної воронки з кількома платформами (GA4 + Meta + TikTok) налаштування може зайняти години.
AI Agent у GTM Event Helper автоматизує цей процес:
- Оберіть ecommerce події. Виберіть з пресетів:
view_item,add_to_cart,purchase, або дозвольте AI запропонувати події на основі типу вашого сайту. - Вкажіть елементи на сторінці. Для кожної події клікніть відповідний елемент (картка товару, кнопка "Додати в кошик", форма checkout). Розширення зафіксує URL та контекст елемента.
- AI генерує скрипти витягування. AI аналізує DOM вашої сторінки та створює скрипти, що динамічно витягують дані товарів — назву, ціну, SKU, кількість — зі структури сторінки. Жодних захардкоджених значень.
- Мультиплатформені теги одним пакетом. Оберіть платформи — GA4, Meta Pixel, TikTok Pixel, Pinterest Tag, Snapchat Pixel — і wizard створить усі теги та тригери у вашому GTM workspace через API. Один клік створює data layer push, Custom Event тригер та платформо-специфічні теги для кожної обраної події.
Wizard автоматично вирішує ecommerce-специфічні складнощі: очищення об'єкта ecommerce, структуру масиву items, прапорець sendEcommerceData у GA4 тегах та коректний маппінг тригерів. Те, що займає досвідченому аналітику 2-3 години вручну, виконується менш ніж за 10 хвилин з wizard.
AI Agent підтримує ecommerce події для GA4, Meta, TikTok, Pinterest та Snapchat — з єдиного процесу налаштування. Кожна платформа отримує свій правильно відформатований конверсійний тег.
Налаштуйте ecommerce-трекінг для GA4, Meta та TikTok — за хвилини.
Встановити GTM Event HelperЗовнішні ресурси
- GA4: Measure ecommerce (документація розробника)
- GA4: Recommended events reference
- GTM: Налаштування GA4 event тегів
- GA4: Custom dimensions and metrics
- GTM4WP: Google Tag Manager for WordPress
Пов'язані статті
- Налаштування GA4 Event Tracking у GTM без коду
- Як відстежувати кліки на кнопки у GTM без коду
- Налаштування Enhanced Conversions у GTM
- Найкращі практики CSS-селекторів для тригерів GTM
- Відстеження динамічних елементів у GTM
← Усі статті · Головна · Політика конфіденційності · Контакти