Налаштування 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 | Завершення покупки | Найважливіша подія. Без неї GA4 не бачить дохід. Передає суму замовлення, ID транзакції, товари |
Кожна подія передає параметри: 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-функціям.