Настройка целей и событий Google Analytics на 1С-Битрикс
GA4 полностью отказался от классических «целей» в пользу событий — теперь конверсией становится любое событие, помеченное как ключевое. На сайтах Битрикс основные точки конверсии: оформление заказа, заявка через форму, звонок через коллтрекинг, добавление в корзину. Проблема в том, что стандартные компоненты Битрикс не генерируют события 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 | Триггер в Битрикс | Компонент |
|---|---|---|
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. Переменные dataLayer типа Data Layer Variable вытягивают нужные поля (ecommerce.value, ecommerce.transaction_id).
Что настраиваем
- Разметку
dataLayer.push()для всех ключевых событий: корзина, оформление, заявка - GTM-контейнер с тегами и триггерами для GA4
- Отладку через GA4 DebugView и GTM Preview Mode
- Пометку событий
purchaseиgenerate_leadкак конверсий в интерфейсе GA4







