🎁 Безкоштовна консультація — запишіться зараз 🆕 Нова послуга: GEO-оптимізація для AI-пошуковиків 📝 Новий пост у блозі
Кейс

Цей бізнес витрачав тисячі євро на Google Ads в Німеччині — і не міг сказати, яка кампанія привела хоч одного ліда. UTM губились, менеджери не бачили джерело, дані копіювались вручну. Тепер — 100% атрибуція і 0 ручних запитів.

End-to-end атрибуція: Google Ads → CRM → Sheets

Наскрізне відстеження лідів від кліку до CRM: Contao + HubSpot + Google Sheets (Німеччина)

🇩🇪 Німеччина 🔗 Contao CMS 📊 HubSpot + Google Sheets
🔗
100%
Видимість атрибуції лідів
100% атрибуція
0 ручних запитів

Цей кейс для вас, якщо...

🇩🇪 B2B бізнес з Google Ads Запускаєш Google Ads, але в CRM не видно, з якої кампанії прийшов лід
🔗 CRM є, але без атрибуції UTM-параметри зникають, коли користувач переходить між сторінками сайту
📊 UTM губляться між сторінками Менеджери вручну питають клієнтів "звідки ви дізнались про нас?"
📝 Ручне копіювання даних Дані з форм копіюються вручну у таблиці — повільно і з помилками

Впізнали себе? Читайте далі — цей кейс покаже рішення.

Про проєкт

🇩🇪

Бізнес із рекламним бюджетом у Google Ads на ринку Німеччини

Бізнес із рекламним бюджетом у Google Ads на ринку Німеччини. Сайт на Contao CMS, CRM — HubSpot. Потрібна повна прозорість: які кампанії реально приводять заявки.

🔥

Виклик

Немає зв'язку між кліком у Google Ads та заявкою в CRM. UTM-параметри губляться при переходах між сторінками. Менеджери не бачать джерело ліда в картці контакту.

🎯

Цілі

01 Побудувати стабільний потік даних "від кліка до CRM"
02 Зберігати utm_*, gclid, gbraid для кожного ліда
03 Автоматичний експорт лідів у Google Sheets

Що тут може піти не так

І чому більшість підрядників це запорюють

UTM зникають при навігації

Користувач клікає рекламу з UTM-параметрами, переходить на іншу сторінку — і параметри губляться. Форма відправляється без джерела. Менеджер не знає, звідки лід.

Як я вирішила: Скрипт збереження UTM у cookies/localStorage з підстановкою в hidden-поля форми

CRM не зберігає рекламні дані

HubSpot за замовчуванням не має полів для utm_*, gclid, gbraid. Без кастомних Contact properties атрибуція неможлива — навіть якщо дані є на сайті.

Як я вирішила: Створення Contact properties під utm_* і click IDs з коректним мапінгом полів форм

Ручний експорт = помилки і затримки

Копіювання даних з CRM у Google Sheets вручну — це затримки, пропущені ліди, помилки. Маркетолог отримує звіт із запізненням і приймає рішення на застарілих даних.

Як я вирішила: HubSpot Workflow з автоматичним експортом у Google Sheets при кожному form submission

Що було зроблено

ЕТАП 01

Модель даних у HubSpot

Створення Contact properties під utm_* і click IDs. Коректний мапінг полів форм. Уніфікація для кількох форм і сторінок.

ЕТАП 02

Скрипт збереження параметрів (Contao)

Збір параметрів з URL, збереження у cookies/localStorage між сторінками. Підстановка в hidden-поля форми перед submit.

ЕТАП 03

Автоекспорт у Google Sheets

HubSpot Workflow: trigger на form submission → створення рядка у Google Sheets. Мапінг колонок на Contact properties з контролем enrollment логіки.

ЕТАП 04

Контроль якості даних

Тестові переходи з параметризованими URL, тестові сабміти. Перевірка значень у HubSpot Contact record та Google Sheets.

Що я зробила інакше

1

Від CRM-моделі — не від скрипта

Почала з моделі даних у HubSpot: кастомні Contact properties під кожен UTM і click ID. Тільки коли модель готова — писала скрипт для Contao. Це виключило ситуацію "дані є, але нікуди їх записати".

2

Збереження параметрів між сторінками

Скрипт зберігає utm_*, gclid, gbraid у cookies і localStorage при першому візиті. При submit форми — підставляє їх у hidden-поля. Працює навіть якщо користувач перейшов 5 сторінок до конверсії.

3

Автоматизація замість ручної роботи

HubSpot Workflow автоматично створює рядок у Google Sheets при кожному form submission. Маркетолог бачить дані в реальному часі, без затримок і ручного копіювання.

Цифри, що говорять самі за себе

100%
Видимість атрибуції
0
Ручних запитів на джерело
Масштабованість рішення

До та після

UTM Губляться
100% cookies + localStorage
CRM Без атрибуції
Повна HubSpot + custom properties
Експорт Ручний
Авто HubSpot → Google Sheets
Масштабованість Обмежена
Будь-яка кількість форм
Що це означає для бізнесу
100%
атрибуція кожного ліда до кампанії
0
ручних запитів на джерело ліда

Простіше кажучи: тепер менеджер одразу бачить, з якої кампанії прийшов лід — без запитань і без ручного копіювання.

Безкоштовний ресурс

Гайд: як зберегти UTM між сторінками сайту

Покроковий гайд для збереження UTM-параметрів і click IDs між сторінками. Працює з будь-якою CMS і CRM.

  • PDF, 4 сторінки — готовий скрипт
  • Схема інтеграції CRM + Google Sheets
  • Без реєстрації, без спаму
Отримати в Telegram →
PDF
UTM Persistence & Attribution Guide
3 стор. PDF • 420 KB
FREE

Часті питання

Як зберегти UTM-параметри між сторінками сайту?

Потрібен скрипт, який при першому візиті зберігає utm_*, gclid, gbraid у cookies або localStorage. При submit форми — підставляє їх у hidden-поля. У цьому кейсі це вирішило проблему втрати атрибуції на сайті Contao CMS.

Як налаштувати автоматичний експорт лідів з HubSpot у Google Sheets?

Через HubSpot Workflow: trigger на form submission, action — створення рядка у Google Sheets. Потрібен коректний мапінг Contact properties на колонки таблиці та контроль enrollment логіки.

Чи працює ця схема атрибуції з іншими CMS, окрім Contao?

Так, принцип універсальний: збереження параметрів у cookies/localStorage → підстановка в hidden-поля → передача в CRM. Я використовувала цей підхід з WordPress, Contao та Shopify — логіка однакова.

Готові до зростання?

Обговоримо ваш проєкт — знайдемо рішення, що працює саме для вашого бізнесу.