Аналитика данных требует отслеживать не только онлайн-действия посетителей сайта, но и учитывать офлайн-конверсии: звонки, заказы через менеджеров, оплаты в офисе и отмены. Разберем технические нюансы, как настроить передачу данных из CRM-системы в Яндекс Метрику для построения сквозной аналитики.
Для кого этот материал и какой результат получите за 10 минут:
- Целевая аудитория: веб-аналитики, маркетологи, разработчики и руководители отделов продаж.
- Результат: понимание механики работы идентификаторов (ClientID, YCLID, UserID) и принципов сопоставления данных.
- Практика: выбор оптимального способа интеграции (CSV, коннектор, API), готовые JSON-примеры и алгоритм проверки корректности загрузки в интерфейсе счетчика.
- Что такое офлайн-конверсии и сложности их оцифровки
- Как работает атрибуция и идентификаторы пользователей
- Зачем передавать заказы из CRM в Яндекс Метрику
- Способы интеграции: сравнение методов
- Пошаговые инструкции для базовых методов
- Кейс: как передавать заказы из кастомной CRM по API
- Тестирование, дебаггинг и частые ошибки
- Результаты внедрения
- Особые сценарии и безопасность
- Рекомендации по настройке
- FAQ: ответы на частые вопросы
Что такое офлайн-конверсии и сложности их оцифровки
Пользователи совершают конверсионные действия не только в интернете. Часто клиент кликает по рекламе, изучает каталог, а покупку оформляет в физическом магазине, пункте самовывоза или по телефону. Связать действия человека вне интернета с источником трафика — главная задача сквозной аналитики.
Сложность заключается в отсутствии прямой связи между сессией в браузере и кассовым чеком. Особенно это критично для бизнеса с длинным циклом сделки или развитой сетью филиалов. Для корректной загрузки информации важно использовать официально поддерживаемые параметры.
Официальной публичной информации о механизмах связывания без явных идентификаторов Яндекс не публикует. Дальнейшее утверждение — гипотеза, не подтвержденная документацией:
Как работает атрибуция и идентификаторы пользователей
Для привязки лида к конкретному визиту система использует специальные метки. Передача хотя бы одного из них — обязательное условие.
- ClientID: базовый параметр из cookie
yandex_client_id. Скрипт захватывает его при заполнении формы на сайте и отправляет в скрытое поле базы данных. - YCLID: уникальный хвост в URL, который добавляет Яндекс Директ при клике по объявлению. Помогает максимально точно связать продажу с конкретной рекламной кампанией.
- UserID: внутренний номер авторизованного покупателя в вашей системе лояльности или личном кабинете.
Зачем передавать заказы из CRM в Яндекс Метрику
С помощью Яндекс Метрики разрозненная статистика объединяется в единый отчет. Настройка интеграции дает бизнесу ряд преимуществ:
- Оценка рентабельности рекламы. Появляется возможность увидеть реальный ROI. Становится понятно, какие объявления генерируют фактический доход, а не просто пустые заявки.
- Анализ качества трафика. Учет офлайн-конверсий показывает эффективность каналов, которые приводят клиентов, предпочитающих звонить или приходить лично.
- Оптимизация воронки продаж. Детальная статистика этапов сделки подсвечивает узкие места, где происходит отвал аудитории.
- Обучение автостратегий. Алгоритмы получают сигнал о выкупе товара и начинают искать похожую аудиторию, повышая качество лидов.
Способы интеграции: сравнение методов
Выбор инструмента зависит от бюджета, наличия разработчиков и используемой платформы (AmoCRM, Битрикс24 или самописное решение).
| Метод | Сложность | Автоматизация | Кому подходит |
| CSV-файл | Низкая | Ручная загрузка | Малый бизнес, редкие обновления, тестирование гипотез. |
| Коннекторы (Albato) | Средняя | Полная | Компании с типовыми CRM без штатных программистов. |
| Management API | Высокая | Полная | Крупный e-commerce, кастомные системы, сложная логика статусов. |
Пошаговые инструкции для базовых методов
Ручная выгрузка через CSV
- Сформируйте отчет в CRM за нужный период.
- Приведите таблицу к стандарту: кодировка UTF-8, даты в формате ISO 8601, валюта по стандарту ISO 4217 (например, RUB).
- Перейдите в раздел «Настройка» → «Загрузка данных» → «Офлайн-конверсии».
- Прикрепите файл и нажмите «Загрузить».
- Проверьте статус обработки через 2-3 часа.
Интеграция через коннекторы (на примере Albato)
- Создайте связку в интерфейсе сервиса.
- Добавьте триггер: выберите вашу CRM-систему и событие «Обновление статуса сделки».
- Настройте действие: выберите Яндекс Метрику и метод «Отправка офлайн-конверсии».
- Сопоставьте поля: укажите, откуда брать ClientID, сумму покупки и телефон.
- Запустите связку и проведите тестовую транзакцию.
Кейс: как передавать заказы из кастомной CRM по API
В мае 2024 года к Kokoc Group обратилась компания «Московские окна» за услугой ведения контекстной рекламы. Возникла задача: при переходе на новый сайт настроить передачу заказов из самописной базы в систему аналитики.
Готовый модуль отсутствовал. Потребовалось написать подробное техническое задание для разработчиков клиента, опираясь на справку Яндекса.
#BLOCKWITHEXPERT_8605={Для настройки контекста мы настроили стандартные цели, колл-трекинг, бизнес-аналитик со стороны клиента запросил проброс офлайн-конверсий из CRM в Яндекс.Метрику. Мы созвонились с бизнес-аналитиком клиента и выяснили, что у них очень сложная воронка. Статусов по заказам как минимум 10, из них по желанию клиента 4 статуса должны передаваться в Метрику, а остальные 6 нет. Есть еще промежуточные статусы, которые должны передаваться не стандартным способом, а через дополнительный идентификатор JS-события.}#Шаг 1: Подготовка полей и маппинг данных
Для корректной работы API требуется строгий формат JSON. Ниже представлена таблица обязательных и дополнительных параметров.
| Поле | Статус | Пример | Комментарий |
| id | Обязательно | ORD-12345 | Уникальный номер в вашей базе. |
| client_uniq_id | Обязательно | 997490 | Внутренний идентификатор покупателя. |
| client_type | Обязательно | CONTACT | Тип сущности. |
| create_date_time | Обязательно | 2025-02-04 | Время создания (важно совпадение часовых поясов). |
| order_status | Обязательно | PAID | Текущий этап воронки. |
| revenue | Опционально | 15000.0 | Итоговый доход (передается при успешной оплате). |
| contactPhone | Опционально | 79991234567 | Телефон (желательно хешировать в MD5). |
Технические требования к серверу:
- Доступность endpoint по протоколу HTTPS.
- Авторизация по токену или связке логин/пароль.
- Соблюдение регистра camelCase со строчной буквы.
- Пропуск пустых значений (null), если атрибут неизвестен.
Логика фильтрации статусов для проекта «Московские окна»:
|
order_status |
goal_action_id |
Вид контакта (фильтр CRM) |
Результат выполнения (фильтр CRM) |
|
|
Заказ создан |
IN_PROGRESS |
- |
окна без монтажа, заказ окон и дверей, скачать окно, отложенный спрос |
новый,в работе, перезвонить, создан заказ, отказ |
|
Заказ в другом статусе |
Целевые контакты |
(идентификатор JS-события, например, waiting) |
окна без монтажа, заказ окон и дверей, скачать окно, отложенный спрос |
новый, в работе, перезвонить, создан заказ, создан замер - только эти статусы |
|
Заказ оплачен |
PAID |
- |
окна без монтажа, заказ окон и дверей, скачать окно, отложенный спрос |
Клиент оплатил заказ ИЛИ статус создан заказ в воронке “отложенный спрос” |
|
Спам-заказ |
SPAM |
- |
Любая нецелевая воронка |
- |
|
Заказ отменен |
CANCELLED |
- |
окна без монтажа, заказ окон и дверей, скачать окно, отложенный спрос |
Отказ - только данный статус |
Шаг 2: Настройка передачи данных через API
Процесс отправки пакетов требует формирования POST-запроса на принимающий сервер.
Пример тела запроса для заказов:
{
"orders": [
{
"client_type": "CONTACT",
"client_uniq_id": "997490",
"create_date_time": "2025-02-04",
"currency": "RUB",
"goals": null,
"id": "ХХ31218472",
"order_status": "IN_PROGRESS"
},
{
"client_type": "CONTACT",
"client_uniq_id": "997469",
"create_date_time": "2025-02-08",
"currency": "RUB",
"goals": null,
"id": "11930396",
"order_status": "PAID",
"revenue": 103518.0
}
]
}
Пример тела запроса для клиентов:
{
"contacts": [
{
"client_ids": [
"1738665738410315049"
],
"create_date_time": "2025-02-04",
"name": "Заказ окон и дверей",
"phones": [
"4991668958"
],
"uniq_id": "997490"
},
{
"client_ids": [
"1738604159123409313"
],
"create_date_time": "2025-02-04",
"name": "Заказ окон и дверей",
"phones": [
"9686373811"
],
"uniq_id": "997497"
}
]
}
Шаг 3: Управление статусами
Каждое изменение этапа сопровождается отправкой обновленного пакета. Основные триггеры:
- IN_PROGRESS: заявка получена, менеджер взял в работу.
- PAID: деньги поступили на счет.
- CANCELLED: отказ от покупки.
- SPAM: тестовые обращения, ошибки, дубли.
Тестирование, дебаггинг и частые ошибки
После настройки интеграции необходимо проверить корректность работы связки. Отправьте тестовую сделку с уникальным номером и известным ClientID. Проверьте появление информации в отчете «Конверсии» через 2–24 часа (присутствует системная задержка).
| Ошибка | Причина | Решение |
| Данные не появляются в отчете | Несовпадение часовых поясов | Убедитесь, что время создания лида передается в часовом поясе счетчика. |
| Дублирование транзакций | Отсутствует дедупликация | Проверьте, что при обновлении статуса отправляется тот же id заказа. |
| Ошибка 400 Bad Request | Нарушен синтаксис JSON | Проверьте файл через валидатор, убедитесь в наличии обязательных полей. |
| Низкий процент сопоставления | Не собирается ClientID | Добавьте скрытое поле в формы на сайте для захвата cookie. |
Результаты внедрения
В интерфейсе аналитики появился детализированный отчет по UTM-меткам. Заказчик получил прозрачную картину движения лидов по воронке.
До старта работ фиксировалась лишь малая часть событий:
После релиза разработчиками нового ТЗ статистика приобрела законченный вид:
Оценка влияния на маркетинг от руководителя группы контекстной рекламы Kokoc.com Алены Присенко:
#BLOCKWITHEXPERT_8606={— Для ведения и оптимизации рекламы данные настройки помогают более тонко настраивать рекламные кампании. Специалисты начинают работать не только на «лидовые», а на конечные бизнес-цели клиента:С помощью статусов по нецелевым и отказным контактам можно строить сегменты для отсечения аудиторий или же с помощью ретаргетинга заинтересовать клиента какой-либо дополнительной подборкой. С помощью статуса «Оплачено» можно более точно подбирать нужную ЦА и людей, похожих на них, давая Яндексу больше понимания, кто эта ЦА. С ними можно работать по построению лояльности, а также использовать ретаргетинг с предложением какой-либо акции.}#
Особые сценарии и безопасность
При работе с нестандартными бизнес-процессами учитывайте следующие правила:
- Возвраты и частичный выкуп. Система не поддерживает передачу отрицательного дохода. При возврате отправляйте повторный запрос с тем же номером транзакции, обновленным статусом и финальной суммой.
- Длинные B2B-циклы. Если сделка длится месяцами, используйте UserID. Авторизация клиента в личном кабинете, Telegram-боте или при переходе из email-рассылки позволит склеить историю визитов.
- Коллтрекинг. При интеграции телефонии убедитесь, что сервис умеет связывать звонок с сессией посетителя сайта и пробрасывать нужные параметры в базу.
- Защита персональной информации. Хешируйте номера телефонов и электронные адреса алгоритмом MD5 перед отправкой на сторонние серверы.
Рекомендации по настройке
- Регулярность. Настройте автоматическое обновление минимум раз в сутки. Устаревшие цифры ломают алгоритмы оптимизации бюджета.
- Валидация. Контролируйте формат дат, отсутствие дублей и наличие обязательных параметров.
- Приоритет идентификаторов. Для точной привязки к клику Директа приоритетен YCLID. При его отсутствии используйте ClientID или UserID, если это поддерживает целевая платформа.
FAQ: ответы на частые вопросы
Что выбрать: ClientID или YCLID?
Используйте оба. YCLID работает только для трафика из Директа, а ClientID охватывает SEO, социальные сети (VK, Telegram) и прямые заходы.
Сколько времени занимает обработка файла?
Обычно от 2 до 24 часов. Не пытайтесь загрузить один и тот же документ повторно, если цифры не появились сразу — это приведет к задвоению статистики.
Можно ли передавать расходы из рекламных кабинетов?
Да, это отдельный функционал. Интеграция расходов Google Ads, ВКонтакте и других площадок настраивается через раздел «Загрузка данных» для полноценного расчета ROI.
Что делать, если клиент сделал заказ с другого устройства?
Здесь помогает UserID. Если человек авторизовался на смартфоне, а потом зашел с рабочего компьютера под тем же логином, система объединит эти визиты в единый профиль.


Комментарии (5)
Оставить комментарий