Налаштування цілей і подій Google Analytics на 1С-Бітрікс
GA4 повністю відмовився від класичних «цілей» на користь подій — конверсією тепер стає будь-яка подія, позначена як ключова. На сайтах 1С-Бітрікс основні точки конверсії: оформлення замовлення, заявка через форму, дзвінок через колтрекінг, додавання до кошика. Проблема в тому, що стандартні компоненти 1С-Бітрікс не генерують події GA4 з коробки — потрібна ручна інтеграція через dataLayer.
Архітектура через dataLayer і GTM
Правильний підхід — не вставляти gtag() напряму в PHP-шаблони, а проштовхувати події через dataLayer у JavaScript, а тригери GTM слухають цей масив.
У шаблоні компонента оформлення замовлення sale.order.ajax (файл result_modifier.php або JS-файл шаблону):
window.dataLayer = window.dataLayer || [];
dataLayer.push({
'event': 'purchase',
'ecommerce': {
'transaction_id': '<?= $arResult['ORDER_ID'] ?>',
'value': <?= $arResult['PRICE'] ?>,
'currency': '<?= $arResult['CURRENCY'] ?>',
'items': []
}
});
Для форм зворотного зв'язку компонент bitrix:main.feedback викликає подію після відправки через BX.onCustomEvent('onWebFormSuccess', ...). Підписуємося на неї:
BX.addCustomEvent('onWebFormSuccess', function(form) {
dataLayer.push({ event: 'form_submit', form_id: form.data.FORM_ID });
});
Ключові події для інтернет-магазину
| Подія GA4 | Тригер у 1С-Бітрікс | Компонент |
|---|---|---|
view_item |
Завантаження картки товару | catalog.element |
add_to_cart |
Клік «У кошик» | catalog.element, catalog.section |
begin_checkout |
Перехід до оформлення | sale.basket.basket |
purchase |
Успішне створення замовлення | sale.order.ajax |
generate_lead |
Відправка форми | bitrix:main.feedback |
Передача даних про товари
Для add_to_cart потрібно передати масив items. Дані про товар доступні в шаблоні компонента через $arResult['ITEM_PRICES'] і $arResult['PROPERTIES']. Формуємо JSON у result_modifier.php і передаємо в глобальну змінну:
$APPLICATION->AddHeadScript(
'<script>window.__itemData = ' . CUtil::PhpToJSObject($itemData) . ';</script>'
);
Розмітка в GTM
У GTM створюємо тег типу «Google Analytics: подія GA4», тригер — Custom Event з іменем, що відповідає полю event у dataLayer. Змінні типу Data Layer Variable витягують потрібні поля (ecommerce.value, ecommerce.transaction_id).
Що налаштовуємо
- Розмітку
dataLayer.push()для всіх ключових подій: кошик, оформлення, заявка - GTM-контейнер з тегами і тригерами для GA4
- Налагодження через GA4 DebugView і GTM Preview Mode
- Позначення подій
purchaseіgenerate_leadяк конверсій в інтерфейсі GA4







