Enhanced Conversions for Leads — настройка через Google Tag Manager
Когда сделка закрывается не на сайте, а в CRM через 2 недели — обычный Enhanced Conversions не помогает. Пошаговая настройка EC for Leads через GTM с импортом офлайн-конверсий.
Зачем это вообще нужно
Типичная ситуация для B2B и lead-gen:
- Человек кликнул по рекламе в Google → оставил заявку на сайте «получить расчёт»
- 4 дня менеджер ему звонит, готовит предложение, отправляет КП
- Через 2 недели клиент подписывает договор — либо в офисе, либо в CRM, но не на сайте
Google Ads видит только первый шаг — submit формы. Smart Bidding оптимизируется на «заявку» как на конечную цель. Но дешёвая заявка ≠ закрытая сделка. Алгоритм учится приносить много дешёвых лидов, из которых закрывается, скажем, каждый 8-й. И тебе кажется, что реклама стала эффективной, хотя деньги ты ловишь только с каждого восьмого.
Раньше эту проблему решали через Offline Conversion Import (OCI) — выгружал из CRM список закрытых сделок с GCLID, загружал в Google Ads. Но GCLID часто теряется: Safari ITP стирает cookies, блокировщики режут параметры, UTM обрывается при переходах. Match rate падал до 40–50%.
Enhanced Conversions for Leads заменяет этот подход. Разница такая: вместо нестабильного GCLID передаёшь в Google хешированный email или телефон в момент заполнения формы. Позже, когда сделка закрылась — выгружаешь из CRM closed deals с тем же email. Google матчит две точки и восстанавливает цепочку «клик → заявка → закрытая сделка».
EC for Web vs EC for Leads — не путать
Это две разные штуки. Перед настройкой убедись, что тебе нужен именно Leads-вариант.
EC for Web EC for Leads Конверсия происходит на сайте (покупка в интернет-магазине) Конверсия происходит офлайн (закрытие в CRM, звонок, подпись договора) Дополняет существующий Google Ads Conversion Tracking тег — добавляет user data к тому же событию Отдельный тег Google Ads User-Provided Data Event+ последующий импорт офлайн-конверсийРаботает сразу после настройки Работает только когда регулярно выгружаешь closed deals E-commerce B2B, lead-gen, high-ticket, курсы, медицина, строительство Если у тебя e-commerce — иди в предыдущую статью про EC for Web. Эта — для лидогенерации с длинным циклом.
Когда использовать именно EC for Leads
- Lead magnet → nurturing → закрытие в CRM
- B2B, где от заявки до контракта проходит 1–8 недель
- Agent-based sales: клиент оставляет заявку, сделку закрывает менеджер
- High-ticket: курс, медицинская услуга, строительная услуга, авто
На практике это даёт:
- Smart Bidding оптимизируется на закрытые сделки, а не на заявки → меньше «мусорных» лидов
- +15–30% точность атрибуции — потому что матчинг идёт не через GCLID, а через email/phone
- Прозрачный LTV воронки — видишь от клика до денег, а не до submit
Что должно быть до начала
- ✅ Google Ads аккаунт с конверсией типа Lead (не Purchase, не Website Action — именно Lead)
- ✅ Google Tag Manager на сайте
- ✅ CRM или таблица, куда записываются закрытые сделки с email клиента (это критично — без этого EC for Leads не имеет смысла)
- ✅ На thank-you странице (или сразу после submit формы) в
dataLayerлежат данные клиента — email обязательно, телефон желательно - ✅ Приняты Customer Data Terms в Google Ads — обычно делает владелец аккаунта, не агентство
Сколько времени займёт
Сама настройка в GTM — 30–40 минут. Плюс отдельно надо настроить импорт офлайн-конверсий из CRM — это ещё 1–2 часа (Google Ads Data Manager или Zapier). Первые данные в Diagnostics увидишь через 24–72 часа после того, как через сайт пройдёт ≥20 конверсий.
Как это работает — схема за 1 минуту
- Пользователь кликает по рекламе → Conversion Linker в GTM сохраняет GCLID в first-party cookie
- Пользователь заполняет форму → на thank-you страницу пушится
dataLayerс email/phone - Тег Google Ads User-Provided Data Event срабатывает → хеширует email локально и отправляет в Google вместе с GCLID
- Google временно хранит хеш на своей стороне, ждёт сигнала о закрытой сделке
- Менеджер 1–8 недель работает с лидом, сделка закрывается в CRM
- Ты выгружаешь из CRM closed deals с полями:
email,conversion_name,conversion_time,conversion_value - Загружаешь в Google Ads через Data Manager / Zapier / API
- Google матчит: «А, этот email неделю назад кликнул по рекламе и оставил заявку» → атрибутирует конверсию к первичному клику
Шаг 1. Принять Customer Data Terms в Google Ads
1. Зайди в Goals (не Conversions!)
Заходишь в Google Ads → иконка «ключ» (Tools and settings) → раздел Measurement → Goals.
Это другой раздел, чем Conversions. Goals — это именно то место, где активируется EC for Leads.
2. Включи Enhanced Conversions for Leads
В Goals найди блок Enhanced conversions for leads. Переключи toggle на ON.
3. Выбери метод Google Tag Manager
Появится выбор метода имплементации. Три варианта:
- Google Tag (gtag.js) — если нет GTM
- Google Tag Manager — наш вариант
- Google Ads API — server-side, не тема этой статьи
4. Прочитай и прими Customer Data Terms
Google покажет текст policy. Читаешь → ставишь галочку «I agree to the Customer Data Terms» → Save. Статус должен смениться на Accepted.
Что ты подтверждаешь: у тебя есть законное основание передавать данные пользователя (consent в форме или legitimate interest), а в политике приватности написано, что данные могут передаваться в Google в хешированном виде.
⚠️ Если Terms не принимаются
«If you aren’t able to view terms, it’s because your account conversions are tracked by a manager account» — значит конверсии управляются из MCC. В таком случае Terms надо принять из parent MCC аккаунта, а не из дочернего. Зайди в MCC → Goals → Accept Terms. Это часто надо сделать именно владельцу бизнеса, агентство без доступа не сможет.
Шаг 2. Conversion Linker в GTM
Conversion Linker детектит GCLID в URL и сохраняет его в first-party cookie домена. Без него Google не сможет привязать хеш email к конкретному клику по рекламе.
Если у тебя уже стоит Google Ads Conversion Tracking — Conversion Linker скорее всего уже есть. Проверь в Tags. Если нет — создавай:
1. Создай Conversion Linker tag
- GTM → Tags → New
- Tag Type: Conversion Linker
- Trigger: All Pages
- Название:
Conversion Linker - Save
Шаг 3. Проверь dataLayer после submit формы
Прежде чем лезть в настройки тега — убедись, что после submit формы данные клиента реально пушатся в dataLayer. Если их там нет — дальше делать нечего.
1. Открой свой сайт в Chrome DevTools
Заходи на страницу с формой заявки. F12 (или Cmd+Option+I на Mac) → вкладка Console.
2. Заполни тестовую заявку
Своим реальным email и телефоном (позже можно удалить из CRM). Нажимаешь Submit.
3. Посмотри dataLayer
В Console набери: window.dataLayer → Enter. Найди в ответе объект с событием после submit. Желаемый формат:
{
event: "lead_submit",
user_data: {
email_address: "[email protected]",
phone_number: "+380501234567",
address: {
first_name: "Ivan",
last_name: "Petrenko",
postal_code: "01001",
country: "UA"
}
}
}
Имена полей у тебя могут быть другие — это нормально. Главное чтобы email был обязательно, телефон желательно. Запомни точные ключи — они понадобятся в Шаге 5.
⚠️ Если данных в dataLayer нет
Значит разработчик не сделал push. Дай ему вот этот фрагмент — его надо вставить в обработчик успешного submit формы (или на thank-you страницу):
window.dataLayer = window.dataLayer || []; window.dataLayer.push({ event: "lead_submit", user_data: { email_address: "{{email_from_form}}", phone_number: "{{phone_from_form}}", // формат E.164: +380... address: { first_name: "{{first_name}}", last_name: "{{last_name}}", postal_code: "{{postal_code}}", country: "UA" } } });Важно: передавай данные в plain text, без хеширования. Google сам захеширует их в браузере перед отправкой.
Шаг 4. Выбор способа сбора данных
Google даёт три варианта сбора user data. Вот сравнение:
| Метод | Сложность | Когда выбирать |
|---|---|---|
| Automatic | Минимальная | Простые формы. Но phone не собирается автоматом — только email и address |
| Manual (CSS Selectors) | Средняя | Когда нужен phone, но нет dev для dataLayer. Надо знать CSS-селекторы полей формы |
| Code (Data Layer) | Высокая (нужен dev) | Рекомендовано — самый стабильный вариант, максимальный Match rate |
Дальше я показываю Code (Data Layer) — именно этот вариант Google рекомендует для максимальной точности. Если CSS-селекторы меняются при редизайнах — Manual «сломается тихо» и ты этого не заметишь. Data Layer — стабильный, если dev его сделал.
Шаг 5. Создай Data Layer Variables
В GTM: Variables → User-Defined Variables → New.
1. Переменная для email
- Name:
DLV - user email - Variable Type: Data Layer Variable
- Data Layer Variable Name:
user_data.email_address(или твой ключ) - Save
2. Повтори для всех полей
Создаёшь такие же переменные для:
DLV - user phone→user_data.phone_numberDLV - first name→user_data.address.first_nameDLV - last name→user_data.address.last_nameDLV - postal code→user_data.address.postal_codeDLV - country→user_data.address.country
Чем больше полей передаёшь — тем выше Match rate у Google. Минимум = email. Идеал = email + phone + address.
Шаг 6. Создай Trigger для события lead_submit
1. Custom Event Trigger
- GTM → Triggers → New
- Trigger Type: Custom Event
- Event Name:
lead_submit— точно как в твоём dataLayer push - This trigger fires on: All Custom Events
- Name:
CE - lead_submit - Save
Шаг 7. Создай User-Provided Data Variable
1. Новая переменная типа User-Provided Data
- Variables → New → Variable Type: User-Provided Data
- Type: Code
2. Привяжи поля к DLV-переменным
- Email:
{{DLV - user email}} - Phone Number:
{{DLV - user phone}} - First Name:
{{DLV - first name}} - Last Name:
{{DLV - last name}} - Postal Code:
{{DLV - postal code}} - Country:
{{DLV - country}}
Назови переменную UPD - Lead User Data → Save.
Если data уже захеширована на стороне сайта
Если по какой-то причине разработчик хеширует данные до того, как они попадают в dataLayer (бывает в параноидальных setups), надо:
- Использовать Hex-encoded SHA256 (не Base64)
- Префиксовать поля:
sha256_email_address,sha256_phone_number,sha256_first_nameи так далееpostal_codeиcountry— не хешировать, оставлять plain textВ 99% случаев этого делать не надо — пусть хеширует Google. Проще и стабильнее.
Шаг 8. Google Ads User-Provided Data Event Tag
⚠️ Это НЕ Google Ads Conversion Tracking tag
EC for Leads использует отдельный тип тега —
Google Ads User-Provided Data Event. Не путай с существующим Conversion Tracking тегом, который у тебя уже есть. Тот работает отдельно и его трогать не надо.
1. Создай тег
- GTM → Tags → New
- Tag Type: Google Ads User-Provided Data Event
- Conversion ID: твой Google Ads Customer ID в формате
AW-1234567890(берётся из адреса аккаунта — убираешь дефисы) - User-Provided Data:
{{UPD - Lead User Data}}
2. Привяжи trigger
Triggering: CE - lead_submit (созданный в Шаге 6).
Название: GAds - EC for Leads → Save.
Шаг 9. Preview + Publish
1. Preview
Нажми Preview вверху справа. Откроется Tag Assistant. Введи URL своего сайта → Connect.
2. Пройди воронку с submit формы
В открытом Tag Assistant-окне зайди на страницу с формой, заполни её, нажми Submit. В Tag Assistant появится событие lead_submit.
3. Проверь что тег сработал
- Открой событие
lead_submitв Tag Assistant - Секция Tags Fired → должен быть
GAds - EC for Leads - Кликни на него → вкладка Properties
- Проверь
User-Provided Data: email, phone и остальные поля должны быть непустые
В Preview данные показываются в plain text — это нормально. Хеширование происходит позже, на лету, перед отправкой в Google.
4. Если тег в Tags Not Fired
Значит trigger CE - lead_submit не совпадает. Проверь:
- Event name в dataLayer и Custom Event Trigger полностью одинаковые (регистр имеет значение)
- Custom Event Trigger стоит на All Custom Events, а не на какой-то фильтр
- В теге Triggering =
CE - lead_submit, а не случайный All Pages
5. Publish
Когда всё работает — возвращайся в GTM → Submit → опиши версию («EC for Leads setup») → Publish. EC начинает работать на проде.
Шаг 10. Верификация через Network requests
Главная быстрая проверка — что данные реально летят в Google. Preview показывает локальную картину, а Network показывает реальные HTTP-запросы.
1. Открой DevTools → Network
Зайди на страницу с формой (в обычном режиме, не Preview). F12 → вкладка Network. Поставь галочку Preserve log.
2. Очисти логи и заполни форму
Нажми «корзину» в Network чтобы почистить. Заполни форму → Submit.
3. Найди запрос на google.com/pagead/form-data/
Отфильтруй Network по form-data или pagead. Должен быть запрос на адрес https://google.com/pagead/form-data/....
В Query String Parameters (или Payload) ищи параметры:
em=— hash emailpn=— hash phonefn=,ln=,pc=,co=— остальные поля
Если видишь непустые значения этих параметров — данные реально летят в Google ✅. Если запрос есть, но параметры пустые — user_data где-то обрывается (вернись в GTM и проверь DLV-переменные).
Шаг 11. Импорт офлайн-конверсий (критический шаг)
⚠️ Без этого шага EC for Leads не работает
Весь смысл EC for Leads в том, чтобы связать submit формы (который в GTM) с закрытой сделкой (которая в CRM). Если ты шлёшь user data в Google, но никогда не выгружаешь closed deals — Google никогда не узнает о закрытых сделках, и атрибуция не обновится.
Есть три способа импорта:
Вариант A. Google Ads Data Manager (рекомендовано)
- Google Ads → Tools → Data Manager → Connect product
- Выбираешь источник: Google Sheets / BigQuery / Salesforce / HubSpot / SFTP / Cloud Storage / HTTP
- Настраиваешь расписание (ежедневно / ежечасно)
- Маппишь поля: email → User-Provided → Email, value → Conversion Value, timestamp → Conversion Time, currency → Currency
- Save → Test import
Формат CSV (для Google Sheets / SFTP):
email,conversion_name,conversion_time,conversion_value,conversion_currency
[email protected],Lead Closed,2026-04-24 14:30:00+00:00,5000,UAH
[email protected],Lead Closed,2026-04-24 15:12:00+00:00,12000,UAH
Вариант B. Zapier
Если у CRM нет нативной интеграции с Data Manager — бери Zapier. Trigger — «New Closed Deal in CRM», Action — «Google Ads: Upload Offline Conversion». Маппишь поля, запускаешь. Работает мгновенно.
Вариант C. Google Ads API
Если у тебя есть dev и ты хочешь полный контроль — через ConversionUploadService + UserIdentifier. Сложнее, но гибче. Рекомендую только если другие два варианта чем-то не подходят.
Частота импорта — ежедневно автоматически. Google принимает данные за последние 90 дней. То есть можешь запустить и навсегда забыть.
Шаг 12. Проверка в Google Ads Diagnostics
Через 24–72 часа после публикации (и когда через форму прошло ≥20 заявок):
- Google Ads → Tools → Conversions → клик на свою Lead конверсию
- Вкладка Diagnostics
- Раздел Enhanced conversions for leads
| Метрика | Что означает | Цель |
|---|---|---|
| Data received | % конверсий, с которыми пришёл user data с сайта | > 70% |
| Match rate | % конверсий, где Google смог сматчить email с аккаунтом Google | > 50% |
| Status | Recording / Not recording | Recording |
Если Status = Not recording через 72 часа — тег вообще не fires или dataLayer пустой. Возвращайся в Preview.
Если Data received низкий (< 50%) — EC подключён не на всех конверсионных точках (возможно, у тебя несколько форм — каждая должна push user_data).
Если Data received высокий, Match rate низкий — проблема в формате данных (см. ниже).
Частые проблемы
| Проблема | Причина | Как фиксить |
|---|---|---|
| Status = Not recording | Тег не fires | GTM Preview → проверь trigger Custom Event = lead_submit |
| Match rate = 0% | Данные пре-хешированы на сайте, но GTM считает их plain text (или наоборот) | Или шли plain text (рекомендовано), или добавь префикс sha256_ к полям |
| Match rate низкий (< 30%) | Неправильный формат телефона | Формат E.164: +380501234567 — плюс, без пробелов, скобок, дефисов |
| Email не матчится | Пробелы, верхний регистр | Перед push в dataLayer: email.toLowerCase().trim() |
| «Terms are not accepted» | Аккаунт под MCC | Прими Customer Data Terms из parent MCC аккаунта |
| Conversions не импортируются | Email в CRM отличается от email на сайте (с пробелом, другим доменом) | Перед upload — нормализуй: lowercase + trim. Проверь не добавляет ли CRM суффиксы типа +sales |
| EC молчит, но Consent Mode = denied | Пользователь отказался от cookies | By design. EC не шлёт данные без consent. Проверь % granted среди твоих пользователей. |
| Смарт-биддинг не меняет поведение | Мало данных (< 30 закрытых сделок/мес) | EC for Leads требует объёма. Для маленьких аккаунтов эффект проявится через 2–3 месяца |
Что дальше — после 2–3 недель
- Match rate стабилизируется на 50–80%. Google начинает видеть полную картину от клика до закрытой сделки.
- Smart Bidding перекалибровывается — алгоритм замечает что часть «лидов» реально становится продажами, а часть — нет. Начинает вытягивать трафик, похожий на первых.
- Можно переключить стратегию на
Maximize Conversion Valueс приоритетом на конверсию «Lead Closed» (а не просто «Lead Submit»). Теперь у Google есть данные, чтобы это делать. - Conversion Value Rules — если у тебя есть MQL → SQL → Closed с разными вероятностями, можно назначить разный вес. Например, Closed Deal = ×10 против MQL = ×1.
Дальше — зеркало этого на Facebook CAPI: шлёшь хешированный email в Facebook после form submit, а закрытые сделки — через Conversions API Offline Events. Логика та же.
✅ Короткий чек-лист
- Google Ads → Goals → Enhanced conversions for leads = ON, метод GTM
- Customer Data Terms приняты (из правильного аккаунта, если MCC)
- Conversion Linker tag в GTM + trigger All Pages
- После submit формы — в dataLayer есть
user_data.email_address(plain text)- DLV-переменные созданы для email, phone, first_name, last_name, postal_code, country
- Custom Event Trigger
CE - lead_submitсоздан- User-Provided Data Variable (Code type) создана и привязана к DLV
- Google Ads User-Provided Data Event tag создан с правильным Conversion ID
- Preview verified — тег fires, user_data не пустое
- Network verified —
em=,pn=летят вgoogle.com/pagead/form-data/- GTM контейнер опубликован
- Настроен регулярный импорт closed deals из CRM через Data Manager / Zapier
- Через 24–72 часа — Diagnostics: Status = Recording, Data received > 70%, Match rate > 50%
Ещё по теме
Google Tag Gateway через Cloudflare — подробная инструкция
Как за 10–15 минут включить Google Tag Gateway через Cloudflare и вернуть 11–25% потерянных конверсий в Google Ads и GA4. Шаг за шагом, на русском.
Enhanced Conversions — пошаговая настройка для Google Ads и GA4
Данные с формы уже собираются на сайте, но не попадают в Google Ads и GA4? Пошагово — куда кликать, что увидишь, как проверить. Настройка через Google Tag Manager.
Как настроить конверсии в Google Ads через Google Tag Manager
Простая и быстрая инструкция по настройке конверсий.