Налаштування Enhanced Ecommerce в Google Analytics для 1С-Бітрікс
Enhanced Ecommerce — це набір специфічних подій і об'єктів, які GA4 приймає для побудови воронки продажів: від перегляду товару до завершеної покупки. Без цієї розмітки в GA4 немає звітів за списком товарів, промокодами і поведінкою у воронці. На магазинах 1С-Бітрікс інтеграція вимагає втручання в шаблони компонентів каталогу і кошика — готового рішення з коробки не існує.
Структура об'єкта ecommerce в GA4
Кожна подія передає об'єкт ecommerce з масивом items. Мінімальний склад елемента:
{
item_id: 'SKU_123',
item_name: 'Назва товару',
price: 1990.00,
quantity: 1,
item_category: 'Електроніка',
item_brand: 'Samsung'
}
Перед кожною подією ecommerce потрібно скидати попередні дані: dataLayer.push({ ecommerce: null }).
Розмітка за компонентами 1С-Бітрікс
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: 'UAH',
coupon: couponCode,
items: orderItems
}
});
Дані для purchase беруться з шаблону сторінки подяки (sale.order.ajax у режимі STEP=FINAL) або з $arResult компонента sale.order.result.
Воронка Enhanced Ecommerce
| Крок | Подія GA4 | Джерело даних |
|---|---|---|
| Список | view_item_list |
catalog.section, $arResult['ITEMS'] |
| Картка | view_item |
catalog.element, $arResult['ITEM_PRICES'] |
| У кошик | add_to_cart |
подія OnSuccessAdd2Basket |
| Кошик | view_cart |
sale.basket.basket, $arResult['BASKET_ITEMS'] |
| Оформлення | begin_checkout |
перехід до /order/ |
| Покупка | purchase |
sale.order.ajax, ORDER_ID |
Налагодження і перевірка
GA4 DebugView (у реальному часі) показує кожну подію з розгорнутим об'єктом ecommerce. Помилки типу «missing required field» видно там само. Звіт Монетизація → Покупки в електронній торгівлі починає наповнюватися через 24–48 годин після коректного налаштування.
Що налаштовуємо
- Розмітку
dataLayer.pushу шаблонахcatalog.section,catalog.element,sale.basket.basket,sale.order.ajax - GTM-теги для всіх шести подій воронки зі змінними Data Layer
- Передачу артикулів товарів (властивість
ARTICLE), брендів і категорій - Скидання об'єкта ecommerce перед кожною подією







