Сквозная аналитика Google Ads + HubSpot
Бизнес-задача
Performance-маркетологу нужно понимать, какие ключевые слова и поисковые запросы в Google Ads приносят реальные продажи, а не просто клики и лиды. Стандартный отчёт Google Ads показывает конверсии по данным самого рекламного кабинета, но не показывает, сколько из этих конверсий превратилось в оплаченные сделки в HubSpot. Требуется сквозная аналитика с расчётом ROMI по каждому ключевому слову.
Подключения
Для этого отчёта требуется два подключения:
Google Ads — коннектор
google-ads- Разрешения:
google_ads_read - Статус:
active
- Разрешения:
HubSpot CRM — коннектор
hubspot- Разрешения: чтение сделок и контактов
- Статус:
active
Схема связки (matching preset):
- Matching Preset: Google Ads + HubSpot (GCLID) — встроенный пресет LightLead
- Ключ связывания: GCLID (Google Click ID) — уникальный идентификатор клика, который передаётся через UTM-метки или автотегирование Google Ads
- Маппинг:
google_ads.gclid→hubspot.contact.gclid→hubspot.deal.associated_contact.gclid
В HubSpot необходимо настроить скрытое поле «GCLID» на уровне контакта. При отправке формы на сайте GCLID из URL должен сохраняться в это поле. Без этого связка работать не будет — проверьте настройку до запуска отчёта.
Настройки отчёта
- Название:
Сквозная аналитика Google Ads → HubSpot - Тип отчёта: атрибуционный с GCLID-связкой
- Matching Preset: Google Ads + HubSpot (GCLID)
- Источники данных: все подключения
google-adsиhubspot - Диапазон дат:
last_30_days - Окно атрибуции: 30 дней (клик → лид) + 90 дней (лид → сделка)
- Группировка: по кампании (
campaign_name), группе объявлений (ad_group_name), ключевому слову (keyword_name), воронке (pipeline_name) - Сортировка: по ROMI по убыванию
- Часовой пояс:
Europe/Moscow
Параметры
{
"date_range": "last_30_days",
"matching_preset": "google-ads-hubspot-gclid",
"attribution_window": {
"click_to_lead_days": 30,
"lead_to_deal_days": 90
},
"group_by": ["campaign_name", "ad_group_name", "keyword_name", "pipeline_name"],
"sort": { "field": "romi", "direction": "desc" },
"timezone": "Europe/Moscow",
"limit": 2000
}Окно атрибуции lead_to_deal_days: 90 подходит для B2B-компаний с длинным циклом продаж. Для B2C уменьшите до 30. Группировка по ключевым словам (keyword_name) — главная ценность этой связки, так как позволяет принимать решения на уровне поисковых запросов, а не только кампаний.
Метрики
| Метрика | Тип | Источник | Описание |
|---|---|---|---|
cost | currency | Google Ads | Потраченный бюджет |
impressions | number | Google Ads | Показы |
clicks | number | Google Ads | Клики |
ctr | percent | Google Ads | Кликабельность |
cpc | currency | Google Ads | Средняя цена клика |
leads | number | HubSpot | Количество лидов (контактов с GCLID) |
mql | number | HubSpot | Marketing Qualified Leads |
sql | number | HubSpot | Sales Qualified Leads |
deals_created | number | HubSpot | Созданные сделки |
deals_won | number | HubSpot | Выигранные сделки |
revenue | currency | HubSpot | Выручка по выигранным сделкам |
Вычисляемые метрики:
{
"calculated_metrics": [
{
"name": "cpl",
"formula": "IF([leads] > 0, [cost] / [leads], 0)",
"type": "money",
"description": "Цена лида"
},
{
"name": "cpl_sql",
"formula": "IF([sql] > 0, [cost] / [sql], 0)",
"type": "money",
"description": "Цена квалифицированного лида"
},
{
"name": "romi",
"formula": "IF([cost] > 0, ([revenue] - [cost]) / [cost] * 100, 0)",
"type": "percent",
"description": "ROMI: окупаемость инвестиций в рекламу"
},
{
"name": "lead_to_mql_cr",
"formula": "IF([leads] > 0, ROUND([mql] / [leads] * 100, 1), 0)",
"type": "percent",
"description": "Конверсия лид → MQL"
},
{
"name": "revenue_per_keyword",
"formula": "IF([deals_won] > 0, [revenue] / [deals_won], 0)",
"type": "money",
"description": "Средняя выручка на сделку по ключевому слову"
}
]
}ROMI > 0% — реклама окупается. ROMI > 100% — каждый рубль рекламы приносит рубль прибыли. ROMI по ключевым словам позволяет находить «золотые» запросы с ROMI > 500% и повышать на них ставки.
Фильтры
{
"logic": "AND",
"conditions": [
{
"field": "cost",
"operator": "GREATER_THAN",
"value": 300
},
{
"field": "clicks",
"operator": "GREATER_THAN",
"value": 20
},
{
"field": "impressions",
"operator": "GREATER_THAN",
"value": 500
}
]
}cost > 300— минимальный бюджет для статистической значимостиclicks > 20— минимум кликов для ключевого словаimpressions > 500— достаточный охват
Для анализа конкретного типа соответствия ключевых слов: match_type EQUAL "exact" или match_type EQUAL "phrase".
Режим записи
Режим: Replace
Данные из двух источников и GCLID-связка требуют полной перезаписи для консистентности. Кроме того, окно атрибуции 90 дней означает, что данные за последние 3 месяца могут меняться по мере закрытия новых сделок.
Расписание
{
"schedule": {
"enabled": true,
"interval": "daily",
"time": "07:30",
"timezone": "Europe/Moscow",
"retry_on_failure": true,
"max_retries": 3
}
}Ежедневно в 7:30. Имейте в виду, что ROMI за последние 1-2 недели будет занижен (сделки ещё не закрыты). Для принятия решений ориентируйтесь на данные за last_90_days или хотя бы last_30_days, игнорируя последнюю неделю.
Ожидаемый результат
- Статус:
completedилиpartial - Количество строк: кампании * группы * ключевые слова (типично 100-800 строк в зависимости от размера семантического ядра)
- Сквозные метрики: ROMI по каждому ключевому слову — видно, какие запросы окупаются, какие приносят убыток
- Квалификация лидов: CPL vs CPL(SQL) — запрос может давать дешёвые лиды, но они не проходят квалификацию, что видно по низкой конверсии в MQL/SQL
- Действия: запросы с ROMI < 0% минусуются или понижаются ставки; запросы с ROMI > 300% — повышаются ставки и добавляются в отдельную кампанию
Скриншот
[Скриншот]
[Скриншот]