Відстеження електронної торгівлі в 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-копірайтингу
Завдання редактора — не тільки поліпшити грамотність та вигляд текстів. Розповідаємо, що саме робить тексти гарно відредагованими
Побудова бренд-архітектури та комунікаційної стратегії GPS-сервісу в США: кейс MyLoc8
Дослідження, інсайти й бренд-архітектура для виходу та зростання продукту
Новини AI-пошуку: що змінилося за останні місяці
Дайджест головних оновлень AI і їхнього впливу на ринок















