Інтеграція Бітрікс24 з Google Analytics
GA4 фіксує сесії та події на сайті, Бітрікс24 — угоди та виручку. Без інтеграції маркетолог дивиться в GA4, продажник — у CRM, і вони сперечаються про те, чи працює реклама. Інтеграція дає єдину картину: від кліку до виручки.
Архітектура інтеграції з GA4
У Google Analytics 4 немає механізму офлайн-конверсій у тому вигляді, в якому він існує в Яндекс.Метриці. Основний спосіб передачі даних про угоди — Measurement Protocol GA4.
Measurement Protocol дозволяє відправляти події в GA4 з сервера, без браузера користувача. Подія прив'язується до сесії через client_id GA4 (параметр _ga у куки).
Схема:
Користувач відвідує сайт → JavaScript зберігає client_id GA4 у форму
→ Лід створюється в CRM з client_id
→ Угода переходить у «Перемога»
→ Сервер відправляє подію purchase в GA4 через Measurement Protocol
→ GA4 атрибутує виручку до джерела трафіку
Отримання client_id GA4 на сайті
// Дочекатися ініціалізації GA4
gtag('get', 'G-XXXXXXXX', 'client_id', (clientId) => {
document.getElementById('ga_client_id').value = clientId;
});
Приховане поле ga_client_id у формі — передається разом з іншими даними при відправці. На сервері зберігається в CRM як користувацьке поле ліда/угоди UF_CRM_GA_CLIENT_ID.
Відправка події в GA4 через Measurement Protocol
При переході угоди в стадію «Перемога» сервер відправляє POST-запит:
$measurementId = 'G-XXXXXXXX';
$apiSecret = 'ВАШ_API_SECRET'; // GA4 → Налаштування → Потоки даних → Measurement Protocol API secrets
$payload = [
'client_id' => $deal['UF_CRM_GA_CLIENT_ID'],
'timestamp_micros' => (int)(microtime(true) * 1_000_000),
'events' => [
[
'name' => 'purchase',
'params' => [
'transaction_id' => 'DEAL_' . $deal['ID'],
'value' => (float)$deal['OPPORTUNITY'],
'currency' => $deal['CURRENCY_ID'],
'items' => array_map(fn($row) => [
'item_id' => $row['PRODUCT_ID'],
'item_name' => $row['PRODUCT_NAME'],
'quantity' => $row['QUANTITY'],
'price' => $row['PRICE'],
], $dealProducts),
],
],
],
];
$url = "https://www.google-analytics.com/mp/collect?measurement_id={$measurementId}&api_secret={$apiSecret}";
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($payload));
curl_setopt($ch, CURLOPT_HTTPHEADER, ['Content-Type: application/json']);
curl_exec($ch);
Параметр api_secret генерується в інтерфейсі GA4: Адміністратор → Потоки даних → [Потік] → Measurement Protocol API secrets.
Проблеми атрибуції в GA4
Затримка угоди — клієнт клікнув на рекламу сьогодні, купив через два тижні. GA4 зберігає сесію 30 днів (налаштовується). Якщо client_id збережений у CRM при створенні ліда — проблем немає: подія відправляється з тим самим client_id, GA4 атрибутує до правильної сесії.
Вичерпаний client_id — куки GA4 живуть 2 роки, але користувач міг змінити браузер, пристрій або очистити куки. Для B2B-угод з довгим циклом це реальна проблема. Рішення: зберігати кілька client_id (з різних візитів) та передавати всі при відправці події — Measurement Protocol приймає масив подій з різними client_id.
Блокувальники реклами — частина користувачів блокує gtag.js, client_id не записується. Втрата даних 15–30% залежно від аудиторії. Часткове рішення — Google Tag Manager через server-side tagging.
Аудиторії та ремаркетинг
Після передачі офлайн-конверсій у GA4 можна будувати аудиторії:
- Ті, що купили на суму > N
- Ті, що купили певну категорію товарів (через
item_categoryу параметрах події) - Ті, що купили 2+ рази (LTV-сегмент)
Аудиторії з GA4 передаються в Google Ads для ремаркетингу та Look-alike. Це основа для ROAS-оптимізації кампаній по реальній виручці, а не по заявках.
Реальний кейс: розрив між GA4 і CRM
Завдання: SaaS-компанія, продукт з тритижневим циклом продажу. Маркетолог дивився в GA4 — конверсії (реєстрації) зростали. Керівництво дивилося в CRM — виручка стагнувала. Розбіжність пояснити не могли.
Що знайшли: GA4 вважав конверсією реєстрацію (micro-conversion), а не оплату. 70% реєстрацій — користувачі, які зареєструвалися, спробували пробний період і пішли. Оптимізація контексту йшла по дешевих реєстраціях, а не по тих, хто платить.
Рішення: передача події purchase з сумою через Measurement Protocol при переході угоди в «Перемога». Плюс подія trial_started при створенні акаунту та trial_converted при першій оплаті.
Результат: у GA4 з'явилася воронка від першого кліку до оплати. З'ясувалося, що органічний пошук дає конверсію з триалу в оплату 22%, а performance-реклама — 8%. Бюджет перерозподілили, ROAS виріс на 35%.
Терміни інтеграції
| Завдання | Час |
|---|---|
| Вбудовування отримання client_id у форми сайту | 1 день |
| Розробка обробника Measurement Protocol | 2–3 дні |
| Налаштування кастомного робота CRM для відправки | 1–2 дні |
| Тестування через GA4 DebugView та верифікація | 1–2 дні |
Повна інтеграція — 1–2 тижні. Накопичення статистики для висновків — 4–8 тижнів.







