Как передать продажи из CRM в Яндекс Метрику: офлайн-конверсии и сквозная аналитика
Короткий ответ: чтобы реклама училась на продажах, а не на заявках, оплаченную сделку из CRM нужно вернуть в Яндекс Метрику как офлайн-конверсию. Для этого сайт при заявке сохраняет идентификатор посетителя — ClientID — в сделку, а когда сделка оплачена, CRM передаёт в Метрику строку «ClientID, цель, время, сумма» файлом или через API. Важное ограничение из справки Яндекса: если с последнего визита прошло больше 21 дня, конверсия к визиту уже не привяжется. Настройку такой связки делаем по тарифу интеграций — от 32 000 ₽, от 2 дней.
Зачем возвращать продажи из CRM в Метрику?
Потому что Метрика видит заявку, но не видит оплату. Без обратной передачи вы знаете, сколько стоила заявка, но не знаете, какая реклама приводит платящих клиентов. А автостратегии Директа оптимизируются на ту цель, которую вы им дали: на заявки — значит, на любые заявки.
Типичная картина в сфере услуг: из 100 заявок с рекламы до оплаты доходит небольшая часть, и доля сильно разная по кампаниям. Одна кампания приносит много дешёвых заявок «просто спросить цену», другая — меньше, но с договорами. В отчёте по заявкам лидирует первая, в отчёте по оплатам — вторая. Пока продажи живут только в CRM, этого не видно ни вам, ни алгоритму.
Что даёт возврат продаж:
- Отчёты по деньгам. В Метрике появляется цель «Оплата» с суммой, и любой стандартный отчёт — источники, кампании, страницы входа — можно смотреть по ней.
- Сигнал для Директа. Загруженные цели можно выбрать в стратегии кампании. Если оплат мало для обучения, в материалах Яндекса советуют добавить в оптимизацию дополнительную цель — например, конверсии по звонкам или из офлайна.
- Честный разговор с подрядчиком по рекламе. Обсуждаются не «лиды по 800 рублей», а оплаты и выручка по каналам.
Чего возврат продаж не даёт: он не снижает стоимость заявки сам по себе и не исправляет слабое предложение. Это измерительный прибор и данные для стратегии, а не рычаг.
Что такое офлайн-конверсии и какие данные нужны?
Офлайн-конверсия — событие вне сайта, привязанное к визиту на сайт: оплата, договор, выдача заказа. Технически это строка в CSV-файле: кто (идентификатор посетителя), что (идентификатор цели), когда (время) и, по желанию, на какую сумму.
По справке Метрики (проверено в октябре 2026 года) колонки такие:
- Идентификатор посетителя — обязателен хотя бы один: ClientId, UserId, Yclid или PurchaseId.
- Target — идентификатор цели. Цель заранее создают на счётчике как JavaScript-событие с условием «совпадает» и этим идентификатором, например deal_paid; значение в файле должно совпадать с ним точно.
- DateTime — время конверсии в формате Unix-времени в секундах по часовому поясу счётчика. Время должно быть прошедшим, иначе загрузка вернёт ошибку.
- Price — доход по цели, необязательно. По документации API разделитель дробной части — точка.
- Currency — трёхбуквенный код валюты по ISO 4217, например RUB, необязательно. Если указать неподдерживаемую валюту, по справке вместо суммы и валюты уйдут нули.
Требования к файлу: CSV в кодировке UTF-8, размер до 1 ГБ, первая строка — названия колонок. Данные появляются в отчётах в течение 3 часов после загрузки. Главное ограничение — период дополнения визитов: если между последним визитом посетителя и началом обработки файла прошло больше 21 дня, конверсия не привяжется.
Из 21 дня следует практический вывод для длинных сделок. Если от заявки до оплаты обычно проходит полтора месяца, а клиент после заявки на сайт не возвращался, оплату привязать уже нельзя. Тогда в Метрику передают более ранний этап: «квалифицированный лид», «встреча проведена», «счёт выставлен» — то, что случается в пределах трёх недель.
Помимо формата офлайн-конверсий, в материалах Яндекс Рекламы описан вариант, где клиента указывают телефоном или почтой, предварительно захешированными в MD5. Конверсия и тогда привяжется, только если человек перед покупкой был на сайте. Если вы передаёте контактные данные клиентов, пусть юрист проверит, что это отражено в вашей политике обработки персональных данных.
Как сохранить ClientID в заявке и сделке?
При отправке формы сайт получает ClientID у счётчика Метрики и кладёт его в скрытое поле заявки. Сервер передаёт его в CRM вместе с контактами и метками, а в сделке под него заводится отдельное поле. Без этого шага передавать в Метрику потом нечего.
ClientID — идентификатор посетителя, который Метрика присваивает автоматически. Получить его на странице можно методом счётчика из справки: ym(номер_счётчика, 'getClientID', function(clientID) { … }) — в функцию приходит строка, которую и записывают в поле формы.
Цепочка целиком:
- Посетитель открывает форму; скрипт запрашивает ClientID и подставляет его в скрытое поле.
- Форма уходит на сервер сайта, оттуда — в CRM: контакты, UTM-метки и ClientID. Как надёжно передавать заявку с метками, мы разбирали в статье «Заявки с сайта в amoCRM и Битрикс24» — здесь не повторяем.
- В CRM ClientID лежит в отдельном поле сделки: в amoCRM — дополнительное поле, в Битрикс24 — пользовательское поле в лиде и в сделке; при работе с лидами проверяем, что значение доезжает до сделки после конвертации.
- Менеджер ведёт сделку как обычно. Когда она переходит в этап «Оплачено», срабатывает выгрузка.
Отдельно про звонки и мессенджеры. Если клиент позвонил или написал, а не заполнил форму, ClientID в CRM сам не появится. Для звонков его передают сервисы отслеживания звонков с подменой номера; для чат-виджета — сам виджет, если он умеет прокидывать идентификатор визита. Это проверяется на брифе: иначе часть продаж останется без привязки, и картина каналов исказится в пользу тех, кто заполняет формы.
Ещё одна оговорка: ClientID живёт в браузере. Если человек оставил заявку с телефона, а потом вернулся с рабочего компьютера, это два разных ClientID. Привязка пойдёт к визиту, с которого пришла заявка, — для оценки рекламы этого обычно достаточно.
| Способ | Как работает | Кому подходит | Слабое место |
|---|---|---|---|
| Файл вручную | Раз в несколько дней выгрузка из CRM, сборка CSV и загрузка в настройках счётчика | Проверить идею на 1–2 месяцах данных | Человек забывает, а визиты старше 21 дня уже не привяжутся |
| Готовый коннектор | Сервис-посредник забирает сделки из CRM и отдаёт их в Метрику по расписанию | Стандартная воронка, стандартные поля CRM | Своя логика, например «оплачено частично», настраивается не всегда |
| Свой обмен по API | Скрипт по событию «сделка оплачена» формирует запись и отправляет её методом загрузки офлайн-конверсий | Своя воронка, несколько этапов, повторные продажи, журнал ошибок | Нужен разработчик и тот, кто следит за журналом |
Способы передачи: файл, API, готовые интеграции
Три пути: собрать CSV вручную и загрузить в настройках счётчика, подключить готовый коннектор или написать свой обмен по API Метрики. Файл годится для проверки идеи, для постоянной работы нужна автоматическая передача не реже раза в сутки.
Вручную. В разделе «Настройка» счётчика на вкладке «Загрузка данных» есть блок «Загрузка офлайн-конверсий»: выбираете тип идентификатора, загружаете файл. Подходит, чтобы за 1–2 месяца понять, есть ли вообще разница между каналами по оплатам. Риск — человеческий: пропустили три недели, и часть продаж уже не привязать.
Через Директ. По материалам Яндекс Рекламы, в кабинете Директа есть Центр конверсий: источник подключается как Google Sheets или файл по FTP/SFTP, и данные подтягиваются оттуда. Если CRM сама умеет обновлять такую таблицу, это простой вариант без программирования.
Готовые коннекторы. В справке Метрики упомянут сервис Albato; у CRM есть свои модули и виджеты аналитики. Перед подключением проверьте три вещи: в какую сторону он передаёт данные (многие только забирают расходы из рекламы), на каком этапе воронки отправляет конверсию и умеет ли передавать сумму.
Свой обмен по API. В API Метрики для этого есть метод загрузки офлайн-конверсий (POST /management/v1/counter/{counterId}/offline_conversions/upload) и метод проверки статуса загрузки (GET …/offline_conversions/uploading/{id}). Скрипт ловит событие CRM «сделка перешла в этап», собирает строку и отправляет. Если Метрика ответила ошибкой, запись остаётся в очереди и уходит повторно, а в журнале видно, какая сделка не ушла и почему. Подробнее о том, как устроены такие связки и что входит в работу, — в статье «API-интеграция: что это и сколько стоит».
Как часто передавать: в материалах Яндекс Рекламы рекомендуют для оптимизации кампаний отправлять CRM-конверсии не реже раза в сутки. Мы обычно ставим отправку по событию плюс ночную досылку того, что не ушло днём.
Сквозная аналитика: свой отчёт или сервис?
Офлайн-конверсии отвечают на вопрос «какой канал привёл к оплате». Сквозная аналитика добавляет расходы всех каналов, выручку, а иногда и маржу из учёта, и показывает окупаемость каждого рубля. Это следующий шаг, и он нужен не всем.
Варианты по мере роста:
- Метрика + офлайн-конверсии. Оплаты и суммы по источникам в стандартных отчётах; расходы на Директ видны в его же статистике. Для одного-двух рекламных каналов этого часто достаточно.
- Готовый сервис сквозной аналитики. Подключается к рекламным кабинетам, CRM и коллтрекингу, строит отчёт по окупаемости. Плюс — быстро; минус — ежемесячная подписка и логика сервиса, а не ваша.
- Свой отчёт. Данные из CRM, рекламных кабинетов и учёта собираются по расписанию в таблицу или базу, отчёт строится под ваши вопросы: окупаемость с учётом повторных продаж, маржа по направлениям, сроки сделок. Имеет смысл, когда готовые сервисы не учитывают специфику продаж или когда руководитель хочет видеть цифры в привычной таблице.
Свой отчёт мы собираем той же связкой: выгрузки в Excel или Google Sheets входят в тариф интеграций. Если отчёт становится частью системы управления продажами — с планами, воронкой и задачами менеджерам, — это уже вопрос автоматизации отдела продаж целиком.
Типовые ошибки
Почти все ошибки — не в коде выгрузки, а в данных: пустой ClientID в сделках, цель с другим идентификатором, неверное время или передача «оплаты» на этапе, который ею не является. Их видно в отчёте о статусах загрузки, если туда регулярно смотреть.
- ClientID не доходит до CRM. Поле есть в форме, но сервер его не передаёт или CRM не сохраняет. Проверяется тестовой заявкой в первый же день.
- Target не совпадает с целью. В файле deal_paid, на счётчике — deal-paid. Конверсия не засчитается по нужной цели — проверяйте статус загрузки.
- Время не в том формате. DateTime — Unix-время в секундах по часовому поясу счётчика; дата строкой или в миллисекундах не подойдёт, а время из будущего — ошибка загрузки.
- Редкая выгрузка. Раз в месяц — и часть продаж выпадает из окна в 21 день.
- Повторная отправка одной сделки. Сделку вернули в этап и снова закрыли — в Метрике две оплаты. Нужен флаг «уже отправлено» в CRM или журнал на стороне связки.
- Не тот этап. «Оплачено» в CRM ставят при выставлении счёта, а не при поступлении денег. Метрика честно посчитает то, что ей дали.
- Сумма с ошибками. Запятая вместо точки или сумма в копейках искажает доход в отчётах и стратегиях с ценностью конверсий.
- Никто не смотрит статусы. Связка тихо сломалась после смены формы на сайте, и месяц продаж не дошёл. Нужны уведомление об ошибках и ответственный.
Когда это вам рано
Возврат продаж окупается вниманием, только если есть платная реклама с сайтом, CRM, в которой сделки доводят до оплаты, и заметный объём сделок. Если чего-то из этого нет, сначала наведите порядок там.
- Нет рекламы или бюджет на неё небольшой. Решения по одной кампании проще принимать по CRM вручную.
- Сделки в CRM не закрываются. Если менеджеры не переводят сделку в «Оплачено» или ведут клиентов в блокноте, в Метрику уйдёт пустота. Сначала — правила работы в CRM.
- Почти все клиенты приходят звонком без коллтрекинга. ClientID у таких сделок не будет; начните с отслеживания звонков.
- Сделка длится месяцами и клиент не возвращается на сайт. Оплата не попадёт в окно 21 дня; передавайте ранний этап воронки или ограничьтесь отчётом в CRM.
- На сайте ещё не настроены цели на заявки. Начинать нужно с них — с целей в Метрике для форм, звонков и мессенджеров: офлайн-конверсия — продолжение онлайн-цели, а не её замена.
Сколько стоит и что входит?
Передача продаж из CRM в Метрику — это связка двух систем по тарифу «Интеграции и автоматизация»: от 32 000 ₽, срок — от 2 дней. Итог зависит от того, нужно ли дорабатывать формы сайта, поля и этапы CRM, и фиксируется в договоре до старта.
Что обычно входит в работу:
- аудит: где на сайте формы, какие поля в CRM, на каком этапе считать оплату;
- передача ClientID из форм сайта в сделку и тестовые заявки;
- цель на счётчике и обработчик, который по этапу сделки отправляет конверсию в Метрику;
- журнал операций, повтор при ошибке и уведомление ответственному в Telegram или на почту;
- проверка на реальных сделках и инструкция: как устроен обмен и что делать при сбое.
Отдельно: подписки CRM и сторонних сервисов вы оплачиваете поставщикам напрямую; изменение настроек CRM на её стороне и каждая система сверх двух — по отдельной оценке. Оплата 50/50, приёмка — 5 рабочих дней, гарантия — 30 календарных дней с даты акта по договору; до 2 раундов правок и 7 дней бесплатной поддержки после запуска — по прайсу. Дальше следить за обменом можно по поддержке — от 7 900 ₽ в месяц.
С чего начать?
С трёх ответов: где у вас фиксируется факт оплаты, сколько дней обычно проходит от заявки до неё и какая доля сделок приходит через формы сайта. Этого хватает, чтобы выбрать этап для передачи и способ — файл, коннектор или свой обмен.
- Откройте 20 последних оплаченных сделок и посмотрите, сколько дней прошло от создания до оплаты.
- Проверьте, есть ли в сделках UTM-метки; если нет — начните с передачи заявок с метками.
- Договоритесь с отделом продаж, какой этап считается «Оплачено», и запишите это правило.
- Создайте на счётчике цель-событие для оплаты и сделайте одну пробную загрузку файлом на десятке сделок.
- Если строки привязались и разница между каналами видна — переводите передачу на автоматику.
Короткие ответы на частые вопросы
Что такое офлайн-конверсии в Яндекс Метрике?
Это события, которые произошли вне сайта, — оплата, подписание договора, выдача заказа, — но привязаны к визиту на сайт. Их загружают в Метрику файлом или через API, и они считаются как достижения цели во всех отчётах.
Какой срок есть на загрузку продажи из CRM?
По справке Метрики, если между последним визитом посетителя и началом обработки файла прошло больше 21 дня, конверсию к этому визиту привязать нельзя. Поэтому продажи выгружают регулярно, а не раз в квартал.
Можно ли передать продажи, если в CRM нет ClientID?
Можно попробовать другие идентификаторы: UserID, если вы сами присваиваете его посетителям, или yclid клика из Директа. В материалах Яндекса описан и вариант с телефоном и почтой, захешированными в MD5. Но без идентификатора визита сделка к рекламе не привяжется.
Сколько стоит настроить передачу продаж из CRM в Метрику?
Это связка двух систем по тарифу «Интеграции и автоматизация»: от 32 000 ₽ и от 2 дней. Если нужно дорабатывать формы сайта и поля CRM, объём уточняем на брифе и фиксируем в договоре до старта.
Нужна ли сквозная аналитика, если есть офлайн-конверсии?
Не всегда. Офлайн-конверсии отвечают на вопрос «какой канал привёл к оплате» и дают Директу сигнал для обучения. Расходы по всем каналам, маржа и окупаемость в одном отчёте — это уже сквозная аналитика, её строят, когда каналов и бюджета становится много.
Через сколько продажи появятся в отчётах Метрики?
По справке Метрики — в течение 3 часов после загрузки. Привязалась ли каждая конверсия к визиту, показывает отчёт «Офлайн-конверсии» и страница «Загрузка данных» в настройках счётчика.
Услуги и кейсы по теме: интеграция с 1С и CRM от 32 000 ₽ · поддержка сайта от 7 900 ₽/мес · цены и сроки
Напишите, какая у вас CRM, какой счётчик Метрики и сколько сделок закрывается в месяц, — предложим схему передачи продаж и назовём цену и срок после брифа.
Рассчитать проект →Оценку срока и цены по брифу делаем бесплатно, обычно отвечаем в течение часа в рабочее время. Типовой договор — посмотреть до оплаты.
