Рекламна атрибуція
Рекламний клік доходить від сторінки до угоди в CRM і повертається в Google Ads
Відвідувач натискає оголошення, читає кілька сторінок, відкриває чат і залишає заявку. У CRM з'являється угода — і в ній немає нічого про те, яка кампанія за цей візит заплатила. Тепер Happ веде клік через увесь ланцюг: сторінка → чат → угода → назад у рекламну систему.
Вмикати нічого не треба. Будь-який віджет із актуальним сніпетом починає збирати дані з наступного перегляду сторінки.
Що збирається
На першій сторінці відвідувача скрипт віджета зчитує рекламні параметри з URL і зберігає їх на вашому ж домені:
| Група | Параметри |
|---|---|
gclid, gbraid, wbraid | |
| Meta | fbclid |
| TikTok, Microsoft | ttclid, msclkid |
| Мітки кампанії | utm_source, utm_medium, utm_campaign, utm_content, utm_term, utm_id |
Разом із ними — сторінка входу і реферер.
Зберігаються два дотики, а не один:
- перший — кампанія, яка привела цю людину;
- останній — те, що вона натиснула, повертаючись; саме йому рекламні системи приписують конверсію.
Параметри переживають переходи: людина може зайти за рекламним посиланням, погортати п'ять сторінок із чистим адресним рядком і відкрити чат через годину — кампанія все одно буде відома. Візит без рекламних параметрів ніколи не затирає збережене, тож клієнт, який повернувся напряму, не перетворюється на «без джерела».
Розмови з реклами Click-to-Messenger та Click-to-Instagram Direct несуть свій рекламний контекст так само — з ідентифікатором оголошення та його назвою замість click id.
Куди це потрапляє
У картку CRM
Кожна CRM-інтеграція, яка створює ліди чи угоди, дописує походження в коментар картки:
--- Happ attribution ---
channel: widget
gclid: Cj0KCQjw...
utm_source: google
utm_medium: cpc
utm_campaign: raiden-brand
landing: /catalog
captured: 2026-09-19T08:12:44.000ZРядки «ключ: значення» — навмисно: їх читає менеджер очима, і так само їх розбирає скрипт, формула в таблиці або сценарій n8n, не просячи в нас вивантаження.
Асистента про ці дані не питають узагалі. Click id — це сотня беззмістовних символів; модель, якій доручили їх переписати, обріже або вигадає правдоподібні. Хибний click id гірший за відсутній: він вивантажиться в Google як чужа конверсія. Тому платформа підставляє його на сервері, поза розмовою.
NetHunt додатково показує кожне поле як параметр для зіставлення — attribution_gclid, attribution_utm_campaign, attribution_note та інші, — тож у налаштуваннях інтеграції ви наводите кожен на свою колонку.
У ваш вебхук
Якщо підключена інтеграція Вебхук чатів, у кожному повідомленні тепер їде об'єкт attribution, а в момент створення заявки надходить окрема подія:
{
"event": "lead.created",
"eventId": "6f2a...:8821",
"chatId": "6f2a1c84-...",
"companyId": "8fb075ae-...",
"toolName": "keepincrm_create",
"entityId": "8821",
"entityType": "leads",
"phone": "+380731234567",
"createdAt": "2026-09-19T08:14:02.000Z",
"attribution": {
"channel": "widget",
"clickId": "Cj0KCQjw...",
"clickNetwork": "google",
"utmSource": "google",
"utmMedium": "cpc",
"utmCampaign": "raiden-brand",
"landingPage": "/catalog",
"referrer": "https://www.google.com/",
"capturedAt": "2026-09-19T08:12:44.000Z",
"note": "--- Happ attribution ---\nchannel: widget\ngclid: Cj0KCQjw..."
}
}eventId не змінюється при повторах — дедублікуйте за ним. Якщо відвідувач сконвертувався на пізнішій кампанії, перший дотик їде поруч, у полі attribution.first.
phone потрібен для Enhanced Conversions for Leads: вони зіставляються за хешем номера і взагалі не потребують click id — запасний шлях для візитів, де gclid до URL не дійшов.
Тіла без поля event — це звичайні повідомлення, як і раніше.
На сторінці, для GTM і GA4
Коли заявку створено, віджет кладе подію в dataLayer вашої сторінки:
{
event: "happ_lead_created",
happ_event_id: "6f2a...:8821",
happ_chat_id: "6f2a1c84-...",
happ_entity_id: "8821",
happ_entity_type: "leads",
happ_widget_id: "wgt_..."
}Це рахує саме заявку, а не відкриття чату: чат відкриває кожен цікавий відвідувач, і конверсія, визначена так, нічого не дає оптимізації. Подія дедублікується в браузері, а happ_event_id збігається з eventId із вебхука — серверна копія тієї ж конверсії зводиться з нею.
У GTM: тригер Custom Event на happ_lead_created, на ньому — тег GA4 або конверсія Google Ads, а happ_event_id передайте як ідентифікатор транзакції, щоб два джерела порахувалися один раз.
Як замкнути коло з Google Ads
- Візьміть угоди, які CRM позначила як виграні.
- Для кожної візьміть
gclidіз блоку атрибуції (або з колонки, на яку ви його зіставили). - Завантажте їх як офлайн-конверсії — зі значенням і часом конверсії.
Для угод без click id — відвідувач із органіки, iOS-візит, де gclid не з'явився — використовуйте Enhanced Conversions for Leads за номером телефону.
Обмеження
- Параметри зберігаються в
localStorageбраузера на вашому домені. Хто очистив дані сайту, змінив пристрій або сидить в приватному вікні — приходить як новий візит; перший дотик, уже записаний у його розмові, від цього не затирається. - Голосовий дзвінок із віджета поки не доносить атрибуцію до CRM — чат доносить.
- Атрибуція відображає те, що було в URL. Якщо реклама веде на сторінку з редиректом, який зрізає query-рядок, збирати нічого — перевірте, що ваші редиректи його зберігають.
Допомогти з рішенням
Happ відповість одразу і за потреби передасть питання менеджеру.