Уявіть: інтернет-магазин на 1С-Бітрікс запускає рекламу, але в Google Analytics 4 немає даних про покупки. Воронка продажів порожня, звіти по товарах не заповнюються. Це знайома ситуація — значить, Enhanced Ecommerce не налаштований або налаштований з помилками. Без правильної передачі подій GA4 не бачить, які товари переглядають, додають у кошик і купують. У результаті бюджет на рекламу витрачається наосліп, а оптимізація неможлива.
Ми вирішуємо це завдання під ключ. Налаштовуємо всі події воронки Enhanced Ecommerce для 1С-Бітрікс — від перегляду списку до покупки — з гарантією коректної передачі даних. Наш досвід: понад 50 інтегрованих магазинів за 10 років роботи. За нашими даними, GA4 Enhanced Ecommerce вимагає вдвічі більше уваги до структури даних, ніж Universal Analytics — одне невірне поле може обнулити всю подію. Замовте діагностику вашого магазину — ми перевіримо коректність передачі даних.
Проблеми, які вирішуємо
Enhanced Ecommerce вимагає строгого дотримання схеми ecommerce. У GA4, на відміну від Universal Analytics, одне невірне поле робить подію недійсною. Типові помилки на Бітрікс:
- Відсутність артикулу — поле item_id заповнюється ID товару замість артикулу, що ламає зв'язок з каталогом.
- Не скидається
ecommerce: nullперед кожною подією — дані з попередньої події перезаписуються. - Не передається категорія — товари потрапляють у GA4 без ієрархії, звіти по категоріях порожні.
- Помилка в полі price — рядок замість числа, або роздільник кома замість крапки.
Ми опрацьовуємо кожен кейс. В одному проекті з каталогом 50 000 позицій виявили, що артикули заповнені лише у 30% товарів. Рішенням стало використання комбінації ID товару та символьного коду як fallback. Після впровадження звіти Enhanced Ecommerce заповнилися коректно, а конверсія зросла на 15% за рахунок точної аналітики.
Як ми налаштовуємо Enhanced Ecommerce
Використовуємо стек: 1С-Бітрікс (ядро), PHP 8.1+, MySQL, GTM (Google Tag Manager), GA4. Для передачі даних у dataLayer модифікуємо шаблони компонентів каталогу та кошика. Всі події push-имо через стандартний синтаксис.
Структура об'єкта ecommerce в GA4
Кожна подія передає об'єкт ecommerce з масивом items. Згідно з документацією Google Analytics 4, мінімальний склад елемента:
{ item_id: 'SKU_123', item_name: 'Назва товару', price: 1990.00, quantity: 1, item_category: 'Електроніка', item_brand: 'Samsung' } Перед кожною подією ecommerce потрібно скидати попередні дані: dataLayer.push({ ecommerce: null }). Це критично важливо — пропуск скидання — причина 70% помилок у налаштуванні.
Розмітка по компонентах Бітрікс
view_item_list — перегляд списку товарів (catalog.section): У result_modifier.php компонента формуємо масив items з $arResult['ITEMS']:
$items = []; foreach ($arResult['ITEMS'] as $item) { $items[] = [ 'item_id' => $item['PROPERTIES']['ARTICLE']['VALUE'] ?: $item['ID'], 'item_name' => $item['NAME'], 'price' => (float)$item['MIN_PRICE']['PRICE'], 'item_category' => $arResult['SECTION']['NAME'], 'index' => $item['INDEX'], ]; } $APPLICATION->AddHeadString('<script>window.__catalogItems = ' . json_encode($items) . ';</script>'); У JS-файлі шаблону:
dataLayer.push({ ecommerce: null }); dataLayer.push({ event: 'view_item_list', ecommerce: { items: window.__catalogItems } }); view_item — перегляд картки товару (catalog.element): Аналогічно, але один елемент. Дані беруться з $arResult['ITEM_PRICES'][0] та властивостей товару.
add_to_cart / remove_from_cart — навішуються на подію OnSuccessAdd2Basket / OnSuccessRemove2Basket компонента кошика.
view_cart — при завантаженні сторінки /basket/, дані з компонента sale.basket.basket через $arResult['BASKET_ITEMS'].
begin_checkout — при переході до оформлення з кошика. purchase — найважливіша подія, містить фінальні дані замовлення:
dataLayer.push({ ecommerce: null }); dataLayer.push({ event: 'purchase', ecommerce: { transaction_id: orderId, value: orderTotal, tax: orderTax, shipping: orderShipping, currency: 'RUB', coupon: couponCode, items: orderItems } }); Дані для purchase беруться з шаблону сторінки спасибі (sale.order.ajax в режимі STEP=FINAL) або з $arResult компонента sale.order.result.
Воронка Enhanced Ecommerce
| Крок | Подія GA4 | Джерело даних | Типова помилка |
|---|---|---|---|
| Список | view_item_list | catalog.section, $arResult['ITEMS'] | Пропущено скидання ecommerce |
| Картка | view_item | catalog.element, $arResult['ITEM_PRICES'] | Ціна як рядок |
| В кошик | add_to_cart | подія OnSuccessAdd2Basket | Відсутній item_id |
| Кошик | view_cart | sale.basket.basket, $arResult['BASKET_ITEMS'] | Неправильний склад items |
| Оформлення | begin_checkout | перехід до /order/ | Немає категорії |
| Покупка | purchase | sale.order.ajax, ORDER_ID | Не передано transaction_id |
Чому Enhanced Ecommerce не працює після оновлення GA4?
Основна причина — перехід з Universal Analytics на GA4 змінив структуру ecommerce. У UA використовувався об'єкт ecommerce з масивом products, а в GA4 — items. Крім того, GA4 вимагає строгий порядок полів: item_id та item_name обов'язкові, price число з крапкою. Якщо раніше дані з помилками могли частково відображатися, то GA4 відхиляє подію цілком. Наша статистика: у 80% магазинів після міграції дані перестали передаватися саме через ці відмінності.
Як перевірити, що дані передаються коректно?
Використовуйте GA4 DebugView у реальному часі — кожна подія відображається з розкритим об'єктом ecommerce. Помилки типу missing required field видно там же. Альтернатива — розширення браузера Google Tag Assistant. Звіт Монетизація → Покупки в електронній торгівлі починає заповнюватися через 24–48 годин після коректного налаштування. Для самоперевірки ми склали таблицю:
| Симптом | Причина | Рішення |
|---|---|---|
| Події є, але немає items | Не скинуто ecommerce або items порожній | Додати ecommerce: null |
| Тільки один товар у purchase | Неправильний масив items | Переконатися, що items переданий масивом |
| Ціна відображається як NaN | Рядок замість числа | Використовувати parseFloat() |
| Категорія не видна | Не заповнено item_category | Додати категорію з інфоблоку |
Відлагодження та перевірка
Як перевірити коректність передачі даних?
Використовуйте GA4 DebugView у реальному часі — кожна подія відображається з розкритим об'єктом ecommerce. Помилки типу missing required field видно там же. Звіт Монетизація → Покупки в електронній торгівлі починає заповнюватися через 24–48 годин після коректного налаштування.Як проходить робота
- Аналітика — аудит поточної структури каталогу, виявлення відсутніх артикулів, брендів, категорій.
- Проектування — узгодження схеми ecommerce з вашою командою, складання карти подій.
- Реалізація — доопрацювання result_modifier.php шаблонів, налаштування обробників JS, налаштування GTM.
- Тестування — перевірка кожної події в GA4 DebugView, виправлення помилок.
- Деплой — викатка на бой, моніторинг перших 48 годин.
Що входить у результат
- Робоча воронка з 6 подій Enhanced Ecommerce.
- GTM-контейнер з тегами та змінними.
- Документація щодо схеми ecommerce для вашого проекту.
- Консультація команди щодо використання звітів.
Терміни та вартість
Орієнтовний термін — від 2 до 5 днів. Вартість розраховується індивідуально на основі обсягу каталогу та кількості необхідних подій. Оцінимо ваш проект безкоштовно за 1 день. Економія від точної аналітики може становити до 30% рекламного бюджету — замовте діагностику та переконайтеся.
Чек-лист типових помилок
- Забули скинути
ecommerce: nullперед кожним push - Пропустили передачу currency в об'єкті purchase
- Використовували кому як роздільник у price (потрібна крапка)
- Не заповнили item_category — товари без категорії
- Вказали item_id як ID товару замість артикулу
Перевірте свій магазин за цим списком. Якщо знаходите хоча б одну помилку — Enhanced Ecommerce зараз працює не повністю. Зв'яжіться з нами — допоможемо виправити помилки та запустити збір даних. Отримайте консультацію щодо вашого проекту — ми відповімо на всі запитання.







