Коротко: чтобы лиды в CRM совпадали с данными Яндекс.Метрики и Директа, достаточно пяти полей в CRM (source, medium, campaign, landing, lead_date), скрытых UTM-полей на формах сайта и еженедельной сверки. Схема внедряется за один рабочий день и снижает расхождение между системами до 5–10 %.
Типичная ситуация: Яндекс.Директ показывает 120 кликов, Метрика фиксирует 87 достижений цели «Отправка формы», а в CRM за тот же период — 64 лида из Директа. Три системы, три разных числа. Маркетолог не может ответить на простой вопрос руководителя: «Сколько заявок принёс Директ в этом месяце?» — потому что ответа действительно три, и каждый по-своему правильный.
Проблема не в том, что системы врут. Проблема в том, что между рекламным кабинетом, счётчиком аналитики и CRM нет единого языка. Данные теряются на каждом стыке: при переходе на сайт, при заполнении формы, при создании сделки в CRM. Эта статья — про минимальную схему, которая закрывает все стыки и позволяет свести цифры с точностью до 5–10 %. Не про идеальную сквозную аналитику за миллион, а про то, что можно настроить за один рабочий день.
Мы в Pulse Digital используем этот подход в работе с клиентами на контекстной рекламе и в проектах по аналитике и аудитам. Ниже — конкретная схема, без привязки к конкретной CRM-системе.
Где именно расходятся цифры
Прежде чем строить схему, нужно понять, почему числа не совпадают. Разберём цепочку «клик → визит → заявка → лид в CRM» и точки потерь на каждом стыке.
Клик в Директе ≠ визит в Метрике
- Счётчик Метрики не загрузился. Пользователь кликнул, страница начала открываться, но он закрыл вкладку до загрузки скрипта Метрики. Директ засчитал клик, Метрика — нет.
- Блокировщики рекламы. AdBlock и аналоги блокируют не только баннеры, но и скрипты аналитики. По нашим данным, 12–18 % аудитории используют блокировщики.
- Редирект обрезал UTM. Если между кликом и посадочной страницей есть промежуточный редирект (например, через трекер или сокращатель ссылок), UTM-метки могут не дойти до Метрики. Подробнее о корректной настройке UTM-меток — в нашей статье «UTM-метки и Яндекс.Метрика: как найти источник заявки».
- Кеширование страницы. Пользователь вернулся на закешированную версию страницы без повторной отправки данных в Метрику.
Цель в Метрике ≠ лид в CRM
- Форма отправлена, но данные не попали в CRM. Скрипт передачи данных сломался, CRM была недоступна, интеграция через webhook не отработала.
- Дубли в Метрике. Пользователь отправил форму дважды — Метрика зафиксировала два достижения цели, а в CRM менеджер объединил дубли.
- Телефонные заявки. Звонки из Директа (через подмену номера или просто с сайта) попадают в CRM, но не всегда связываются с визитом в Метрике.
- Ручное создание сделок. Менеджер создаёт лид в CRM вручную и не заполняет поле «источник» или заполняет его неправильно.
Лид в CRM ≠ источник «Директ»
- Утрачен UTM. Данные из формы передались в CRM, но поле
utm_sourceоказалось пустым — значит, CRM записала источник как «Не определён» или «Прямой заход». - Некорректная разметка. В UTM было
Yandexс заглавной буквы, а менеджер фильтрует поyandex— лиды не попадают в отчёт. - Переатрибуция. Пользователь кликнул по рекламе в понедельник, вернулся через органику в среду и оставил заявку. Метрика засчитала органику (last click), а в CRM — Директ (если UTM сохранился с первого визита в cookie).
Главное: цифры расходятся не потому, что системы ошибаются, а потому, что каждая считает по-своему — и на каждом стыке «клик → визит → заявка → CRM» данные теряются.
Минимальный набор полей в CRM
Не нужно создавать 20 кастомных полей. Достаточно пяти, чтобы свести данные Директа, Метрики и продаж.
| Поле в CRM | Что хранит | Откуда берётся | Пример значения |
|---|---|---|---|
| source | Источник трафика | utm_source |
yandex, google, vk |
| medium | Тип трафика | utm_medium |
cpc, organic, social |
| campaign | Название кампании | utm_campaign |
poisk_msk_remont |
| landing | URL посадочной страницы | JavaScript на сайте | /uslugi/remont-kvartir/ |
| lead_date | Дата и время заявки | Автоматически при создании | 2026-04-14 15:32:07 |
Почему именно эти пять
- source + medium позволяют разделить платный и бесплатный трафик, а также отличить Директ от других рекламных систем.
- campaign нужен для оценки эффективности отдельных кампаний: какая кампания приносит заявки, а какая — только клики. Это особенно важно при работе с малым бюджетом в Директе, где каждая кампания на счету.
- landing показывает, на какую страницу пришёл пользователь. Это критически важно для мультистраничных сайтов: вы увидите, что страница «ремонт ванной» конвертит в 3 раза лучше, чем «ремонт кухни». О том, как наличие цены на посадочной влияет на конверсию, мы писали в статье «Нет цены на сайте — как это влияет на коммерческие факторы».
- lead_date — основа для сверки. Без точной даты и времени вы не сможете сопоставить лид в CRM с конкретным визитом в Метрике.
Необязательные, но полезные поля
- keyword (
utm_term) — ключевое слово, по которому показалось объявление. Полезно для поисковых кампаний. - content (
utm_content) — идентификатор объявления. Помогает понять, какой креатив сработал. - client_id — идентификатор посетителя из Яндекс.Метрики. Позволяет связать конкретный лид с конкретной сессией. Подробнее о работе с Client ID — в справке Яндекс.Метрики.
Главное: пяти полей (source, medium, campaign, landing, lead_date) достаточно, чтобы связать CRM с Метрикой и Директом — без сложной сквозной аналитики.
Передача UTM из формы на сайте в CRM
Данные UTM приходят в URL при клике по рекламе. Задача — перехватить их, сохранить и передать вместе с формой. Вот минимальная схема. Более подробно о правильной разметке ссылок читайте в статье «UTM-метки и Яндекс.Метрика».
Шаг 1. Сохранение UTM в cookie или sessionStorage
При загрузке страницы скрипт на сайте разбирает URL, извлекает параметры utm_source, utm_medium, utm_campaign и сохраняет их. Мы рекомендуем использовать cookie с временем жизни 30 дней — это соответствует стандартному окну атрибуции Директа и позволяет не потерять данные, если пользователь перейдёт на другую страницу сайта.
Важный нюанс: если UTM уже сохранены в cookie с предыдущего визита, при новом визите с новыми UTM нужно перезаписывать значения. Это обеспечивает атрибуцию по модели last click, которая совпадает с логикой Метрики.
Шаг 2. Скрытые поля в форме
Каждая форма на сайте должна содержать скрытые поля (hidden inputs) для UTM-параметров и URL посадочной:
<input type="hidden" name="utm_source" value="">
<input type="hidden" name="utm_medium" value="">
<input type="hidden" name="utm_campaign" value="">
<input type="hidden" name="landing_page" value="">
При загрузке страницы тот же скрипт заполняет эти поля значениями из cookie. Пользователь их не видит, но при отправке формы данные уходят вместе с именем, телефоном и email.
Шаг 3. Передача данных в CRM
Зависит от того, как у вас устроена связка «сайт → CRM»:
- Webhook. Форма отправляет POST-запрос с данными (включая UTM) на URL CRM. Самый надёжный способ.
- Email-парсер. CRM забирает данные из письма с заявкой. В этом случае UTM нужно включить в тело письма.
- Интеграция через API. Скрипт на сайте или бэкенд отправляет данные через API CRM. Самый гибкий способ, но требует разработки.
- Коннектор (Albato, Make и т. д.). Промежуточный сервис принимает данные из формы и передаёт в CRM. Удобно, но добавляет ещё одну точку отказа.
Главное правило: какой бы способ вы ни выбрали, убедитесь, что все пять полей (source, medium, campaign, landing, lead_date) гарантированно попадают в соответствующие поля CRM. Проверьте это тестовой заявкой до запуска рекламы.
Главное: цепочка «UTM в URL → cookie на 30 дней → скрытые поля в форме → CRM» — минимальный надёжный способ передать источник лида без потерь.
Алгоритм еженедельной сверки за 5 шагов
Настроить передачу данных — половина дела. Вторая половина — регулярная сверка, которая помогает ловить сбои до того, как они исказят месячный отчёт. Мы рекомендуем проводить сверку каждый понедельник за предыдущую неделю.
Шаг 1. Выгрузите данные из трёх источников
- Директ: отчёт «Статистика по кампаниям» → столбцы: кампания, клики, расход. Подробнее о навигации по отчётам — в справке Яндекс.Директа.
- Метрика: отчёт «Источники, сводка» с фильтром
utm_source = yandexиutm_medium = cpc→ столбцы: визиты, достижения цели «Заявка». - CRM: список лидов за тот же период с фильтром
source = yandexиmedium = cpc→ столбцы: дата, кампания, статус.
Шаг 2. Сравните общие числа
Создайте простую таблицу:
| Метрика | Директ | Яндекс.Метрика | CRM |
|---|---|---|---|
| Клики / визиты | 320 | 285 | — |
| Конверсии / лиды | — | 42 | 37 |
| Расход | 48 000 ₽ | — | — |
| CPL (стоимость лида) | — | 1 143 ₽ | 1 297 ₽ |
Допустимое расхождение между Директом и Метрикой по визитам — 10–15 %. Между Метрикой и CRM по лидам — 5–15 %. Если расхождение больше — переходите к шагу 3.
Шаг 3. Найдите «потерянные» лиды
Откройте CRM и отфильтруйте лиды с пустым полем source за ту же неделю. Это лиды, которые пришли без UTM. Проверьте:
- Есть ли среди них заявки с формы на сайте (а не звонки или чаты)?
- Если да — скрипт передачи UTM работает некорректно. Проверьте cookie, скрытые поля, webhook.
- Если это звонки — нужна интеграция с коллтрекингом (это тема отдельной статьи).
Шаг 4. Проверьте кампании поштучно
Сопоставьте число лидов в CRM с полем campaign и число конверсий в Метрике по тому же utm_campaign. Если расхождение больше 20 % по конкретной кампании — ищите ошибку:
- В UTM опечатка. Кампания называется
poisk_msk_remontв Директе, ноPoisk_MSK_Remontв CRM. Это два разных значения. - Форма на отдельной странице не содержит скрытых полей. Часто забывают про формы в попапах и на страницах «Спасибо».
- Кампания была выключена и перезапущена с новым URL — UTM поменялись, а CRM хранит старые значения. Если при этом менялась посадочная, сверьтесь с нашим чеклистом на 14 дней после смены лендинга.
Шаг 5. Зафиксируйте результат и поправьте
Запишите итоговую таблицу в общий документ (Google Sheets подойдёт). Если обнаружили расхождение, зафиксируйте причину и действие:
| Дата сверки | Расхождение | Причина | Действие |
|---|---|---|---|
| 14.04.2026 | CRM: 37, Метрика: 42 (−12 %) | 5 звонков без коллтрекинга | Подключить коллтрекинг до 21.04 |
| 14.04.2026 | Кампания rsy_brand: CRM 0, Метрика 4 |
UTM не передаётся с формы попапа | Добавить скрытые поля в попап до 15.04 |
Через месяц регулярных сверок расхождение стабилизируется на уровне 5–10 %, и вы будете точно знать, чем оно объясняется.
Главное: еженедельная сверка по 5 шагам (выгрузка → сравнение → поиск потерь → проверка кампаний → фиксация) ловит сбои до того, как они испортят месячный отчёт.
Таблица «владелец правды» по метрикам
Одна из самых частых ошибок — использовать одну систему для всех метрик. Директ хорошо считает расход, но плохо — конверсии. Метрика хорошо считает поведение на сайте, но не знает, дошёл ли лид до продажи. CRM знает всё о продажах, но ничего — о кликах и визитах. Вот таблица, которая фиксирует, какой системе доверять для какой метрики:
| Метрика | Владелец правды | Почему |
|---|---|---|
| Число кликов по рекламе | Яндекс.Директ | Директ регистрирует клик на своей стороне, до загрузки сайта |
| Число визитов на сайт | Яндекс.Метрика | Метрика считает полноценные визиты, включая глубину и время |
| Число заявок с форм | CRM | CRM — конечная точка, куда попадает заявка; Метрика считает отправки формы, но не факт доставки |
| Число звонков | Коллтрекинг / CRM | Только коллтрекинг и CRM знают, был ли реальный разговор |
| Стоимость клика (CPC) | Яндекс.Директ | Биллинг на стороне рекламной системы |
| Стоимость лида (CPL) | Расчётная: расход из Директа ÷ лиды из CRM | Расход берём из Директа (он точный), лиды — из CRM (они реальные) |
| Конверсия сайта (CR) | Расчётная: лиды из CRM ÷ визиты из Метрики | Визиты — Метрика, лиды — CRM |
| Выручка и ROI | CRM / 1С / учётная система | Только бухгалтерия знает реальную выручку |
Важно: зафиксируйте эту таблицу внутри команды. Когда маркетолог говорит «у нас CPL = 1 200 ₽», все должны понимать, что расход взят из Директа, а число лидов — из CRM. Иначе начинаются споры, где каждый смотрит в свою систему.
Главное: у каждой метрики один «владелец правды» — клики из Директа, визиты из Метрики, лиды из CRM, а CPL и CR считаются на стыке двух систем.
Типичные ошибки, которые ломают схему
Ошибка 1. Регистрозависимость
UTM-метки чувствительны к регистру. Yandex, yandex и YANDEX — это три разных значения в большинстве CRM. Если один менеджер вручную создаёт лид с источником Yandex, а автоматика передаёт yandex — в отчёте они не совпадут.
Решение: зафиксируйте правило — все UTM-метки в нижнем регистре, без исключений. Добавьте в скрипт на сайте принудительное приведение к нижнему регистру: value.toLowerCase().
Ошибка 2. Пробелы и спецсимволы в UTM
Если в названии кампании есть пробел, он преобразуется в %20 или +, и в CRM попадает искажённое значение. Кампания ремонт квартир может записаться как ремонт%20квартир или ремонт+квартир.
Решение: используйте только латиницу, строчные буквы, дефисы и подчёркивания в UTM. Кириллица допустима, но увеличивает риск кодировочных ошибок. Рекомендуемый формат: remont_kvartir_msk. Яндекс приводит аналогичные рекомендации в справке по UTM-меткам.
Ошибка 3. Потеря реферера при редиректе
Если на сайте настроен 301-редирект (например, с HTTP на HTTPS или с www на без www), и редирект реализован некорректно, UTM-параметры могут быть обрезаны. Пользователь кликает по ссылке http://site.ru/?utm_source=yandex, редирект ведёт на https://site.ru/ — без UTM.
Решение: проверьте все редиректы на сайте. Каждый из них должен передавать query string. Протестируйте вручную: вставьте полный URL с UTM в адресную строку и проверьте, сохранились ли параметры после редиректа.
Ошибка 4. Cookie перезаписываются раньше времени
Если время жизни cookie с UTM слишком короткое (например, session), данные теряются при закрытии браузера. Пользователь пришёл из Директа, закрыл вкладку, открыл сайт через закладки — UTM уже нет, заявка запишется как «прямой заход».
Решение: установите время жизни cookie на 30 дней. Это стандартное окно атрибуции для Директа. При новом визите с UTM — перезаписывайте cookie.
Ошибка 5. Менеджер не заполняет поле источника
Самая банальная ошибка. Заявка пришла по телефону, менеджер создал лид в CRM вручную и оставил поле «источник» пустым. Или написал «с сайта» вместо структурированного значения.
Решение: сделайте поля source и medium обязательными в CRM. Для ручных лидов создайте справочник допустимых значений (dropdown): phone_direct, phone_organic, chat_vk, walk_in. Это не идеально, но лучше, чем пустота.
Ошибка 6. Не учтены мультиканальные цепочки
Пользователь может кликнуть по рекламе в Директе, уйти, через два дня вернуться из органики и оставить заявку. Метрика (last click) припишет конверсию органике, а в CRM в cookie всё ещё лежит yandex / cpc (если cookie живут 30 дней). Расхождение неизбежно.
Решение на минимальном уровне: принять, что модель last click из cookie — ваш стандарт для CRM, а Метрику использовать для анализа ассоциированных конверсий. Фиксируйте разницу в сверке, но не пытайтесь «подогнать» числа — они из разных моделей атрибуции.
Главное: большинство ошибок связаны не со сложной аналитикой, а с базовыми вещами — регистром, пробелами, редиректами и пустыми полями.
Часто задаваемые вопросы
Можно ли обойтись без скрытых полей на формах, если CRM сама «подтягивает» источник?
Некоторые CRM (например, Битрикс24 с виджетом на сайте) умеют автоматически определять источник по реферреру или UTM. Однако этот механизм ненадёжен: блокировщики рекламы мешают скриптам CRM, а мобильные браузеры могут обрезать реферрер. Скрытые поля в форме — гарантия того, что UTM попадёт в лид независимо от того, как работает CRM-виджет. Рекомендуем использовать оба метода параллельно, чтобы взаимно верифицировать данные.
Какой модели атрибуции придерживаться — last click в cookie или last click в Метрике?
Для CRM мы рекомендуем модель last click по cookie с перезаписью при новом визите с UTM. Эта модель проще в реализации и даёт единообразные данные. Метрику используйте для анализа ассоциированных конверсий (отчёт «Источники → Ассоциированные конверсии»), чтобы видеть роль Директа в цепочках, где он не был последним касанием. Попытка синхронизировать две модели приведёт к лишней сложности без ощутимой пользы на малых объёмах.
Как передавать UTM, если на сайте несколько форм — обычная, попап и квиз?
Скрипт сохранения UTM в cookie работает глобально — один раз на всех страницах. Далее каждая форма (обычная, попап, квиз) должна содержать скрытые поля. Если квиз реализован через сторонний сервис (Marquiz, Enquiz), проверьте в документации сервиса, поддерживает ли он передачу кастомных полей — большинство поддерживают. Главное — протестировать каждый тип формы отдельной тестовой заявкой и убедиться, что UTM дошли до CRM.
Что делать, если расхождение между Метрикой и CRM стабильно больше 20 %?
Расхождение выше 20 % обычно указывает на системную проблему, а не на статистическую погрешность. Проверьте три самые частые причины: 1) скрипт передачи UTM не работает на части страниц (например, на AMP-версии или мобильной версии сайта); 2) значительная доля заявок приходит по телефону без коллтрекинга; 3) менеджеры создают лиды вручную без заполнения поля источника. Начните с аудита поля source в CRM: отфильтруйте все лиды с пустым источником и определите, откуда они приходят.
Нужен ли client_id из Метрики для минимальной схемы?
Для минимальной схемы — нет. Client ID полезен, когда вы хотите связать конкретный лид с конкретной сессией в Метрике, чтобы видеть весь путь пользователя по сайту до заявки. Это следующий уровень аналитики, который стоит внедрять после того, как базовая схема из пяти полей стабильно работает. Передача client_id требует доработки скриптов (получение значения через метод Метрики yaCounterXXXXXX.getClientID()) и дополнительного поля в CRM.
Как быть со сменой посадочной страницы — не сломает ли это передачу UTM?
Если при смене лендинга вы корректно перенесли скрипт сохранения UTM и скрытые поля на новую страницу, передача не сломается. Однако при смене URL часто возникают редиректы, которые обрезают UTM-параметры. Перед запуском обязательно проверьте полный URL с метками — мы описали подробный чеклист на 14 дней после смены посадочной, где один из пунктов — именно проверка UTM-цепочки.
Итог: простая схема лучше идеальной, но не внедрённой
Сквозная аналитика с коллтрекингом, клиентскими ID, серверной разметкой и дашбордами в реальном времени — это прекрасно. Но 80 % бизнесов, с которыми мы работаем в Pulse Digital, приходят с нулевой атрибуцией: CRM не знает, откуда лид, Метрика живёт своей жизнью, а решения принимаются на глаз.
Схема из пяти полей, скрытых полей на формах и еженедельной сверки — это минимальный жизнеспособный уровень аналитики. Она внедряется за один день, не требует дорогих инструментов и сразу даёт ответ на вопрос «сколько лидов принёс Директ и по какой цене».
Начните с этого. Когда схема заработает и вы увидите реальные цифры, станет понятно, куда инвестировать дальше: коллтрекинг, сквозную аналитику, автоматические дашборды. Но базовая связка «UTM → cookie → скрытое поле → CRM → сверка» должна работать первой.