Интеграция сквозной аналитики с Яндекс Метрикой и CRM: пошаговый гайд с UTM-метками
Интеграция Яндекс Метрики с CRM позволяет связать клики и визиты с реальными продажами. В этом гайде рассказываем, как настроить сквозную аналитику: собрать ClientID на сайте, передать его в CRM, выгрузить заказы через API и получить отчёты в Метрике. Разбираем пошагово настройку UTM-меток, схему передачи данных, примеры кода, типичные ошибки и их решения.
Статья подготовлена по состоянию на 29.09.2025. Проверяйте актуальность информации в официальной документации Яндекс Метрики и CRM-систем, так как форматы API и правила работы со сквозной аналитикой могут изменяться.
Этот материал — подробная инструкция, как связать поведение пользователя на сайте (Яндекс Метрика), заявки и продажи в CRM, а также рекламные кампании через UTM-метки.
Что вы получите:
- чёткий план внедрения с чек-листами и типовыми ошибками;
- готовые сниппеты кода для сбора ClientID (идентификатора посетителя Метрики) и отправки в CRM;
- специфику импорта офлайн-данных (заявки/заказы) в Метрику: сроки, форматы, статусы;
- рекомендации по UTM-разметке, макросам Директа, отчётам для контроля качества данных.
1. Что именно мы связываем и зачем
Цель сквозной аналитики — увидеть путь пользователя:
клик по объявлению → визиты на сайте → лид/сделка в CRM → выручка/маржа.
Ключ к связке — общий идентификатор:
- ClientID — уникальный ID посетителя браузера (cookie
_ym_uid). Рекомендуется как основной идентификатор, его можно получить черезgetClientIDAPI Метрики. - UserID — внутренний ID авторизованного пользователя (опционально).
- yclid — ID клика из Яндекс Директа.
Сроки привязки:
- офлайн-данные добавляются к сессиям в пределах 21 дня от визита;
- заказы можно обновлять до 111 дней после визита.
2. Архитектура решения
- Сайт: собираем ClientID и (при необходимости) UserID.
- Формы: добавляем скрытые поля и передаём идентификаторы в CRM.
- CRM/ETL: ежедневно формируем JSON/CSV с заказами и загружаем их в Метрику через API.
- Отчёты: проверяем данные в «Источниках заказов из CRM» и «Источниках, расходах и ROI».
3. Сбор ClientID на сайте
3.1. Добавьте скрытые поля в формы
<input type="hidden" name="ym_client_id" id="ym_client_id" value=""><input type="hidden" name="user_id" id="user_id" value=""> <!-- если у вас есть авторизация -->
3.2. Подставьте ClientID в скрытое поле
<script> (function () { var COUNTER_ID = 12345678; // замените на ID вашего счётчика
function readYmUidFromCookie() { var m = document.cookie.match('(?:^|;)\\s*_ym_uid=([^;]*)'); return m ? decodeURIComponent(m[1]) : null; }
function setField(id, val) { var el = document.getElementById(id); if (el && val) { el.value = val; } }
function setClientIdSafe(clientId) { if (!clientId) clientId = readYmUidFromCookie(); setField('ym_client_id', clientId); }
if (typeof ym === 'function') { try { ym(COUNTER_ID, 'getClientID', function(clientId) { setClientIdSafe(clientId); }); } catch (e) { setClientIdSafe(null); } } else { setTimeout(function () { setClientIdSafe(null); }, 800); } })();</script>
4. Подготовка CRM к выгрузке
4.1. Минимальный набор полей
order_id— ID заказа;client_crm_id— ID клиента;create_date_time— дата/время создания заказа (часовой пояс счётчика);order_status— статус заказа;revenue/final_order_price— выручка;cost— себестоимость (опционально);- список товаров (рекомендуется);
- идентификаторы: ClientID (лучше всего), либо email/phone (в хеше), либо UserID.
4.2. Сопоставление статусов
Метрика поддерживает: PAID, IN_PROGRESS, CANCELLED, SPAM, OTHER.
Сопоставьте их со своими CRM-статусами через API /schema/order_statuses.
4.3. Сроки
- добавление заказов — до 21 дня от визита;
- обновление заказов — до 111 дней.
5. Канал данных из CRM в Метрику
Вариант А. Прямой API (рекомендовано)
- Получите OAuth-токен и доступ к счётчику.
- Ежедневно формируйте JSON/CSV и отправляйте:
POST https://api-metrika.yandex.net/cdp/api/v1/counter/{counterId}/data/orders/json - Для офлайн-конверсий целей используйте метод
offline_conversions/upload.
Вариант B. Через облако/FTP
Если CRM выгружает только файлы → используйте коннектор, который:
- забирает файл,
- проверяет данные,
- отправляет их в Метрику через API.
6. UTM-метки
Базовый набор: utm_source, utm_medium, utm_campaign, utm_content, utm_term.
Шаблон для Директа:?utm_source=yandex&utm_medium=cpc&utm_campaign={campaign_id}&utm_content={ad_id}&utm_term={keyword}
Советы:
- используйте латиницу и единый регистр;
- заведите справочник значений для utm_medium;
- в utm_content удобно кодировать сегменты (например,
seg--retarget_a).
7. Проверка и отчёты
- Статусы загрузок смотрите в интерфейсе счётчика или через API.
- Основные отчёты: «Источники заказов из CRM» и «Источники, расходы и ROI».
- Проверяйте достижение целей типа JavaScript-событие.
- Для детальной диагностики используйте Reports API и Logs API.
8. Частые ошибки и как их избежать

1. Не передали ClientID в CRM.
Что будет: Метрика не сможет связать заказ с визитом, реклама покажет клики без продаж.
Как правильно: во все формы на сайте добавьте скрытое поле ym_client_id и передавайте его в CRM. Проверяйте, чтобы это поле не было пустым.
2. Перепутали часовой пояс или формат даты.
Что будет: заказ попадёт в отчёт в неправильный день или не загрузится.
Как правильно: указывайте дату и время строго в формате 2025-09-29T14:00:00+03:00 и с тем же часовым поясом, что стоит в счётчике Метрики.
3. Не сопоставили статусы заказов.
Что будет: все заказы будут отмечены как «прочие», вы не увидите конверсии «Оплачен».
Как правильно: заранее составьте таблицу соответствия «статус в CRM → статус в Метрике» (например, «Оплачен → PAID»).
4. Загрузили заказы позже срока.
Что будет: данные не привяжутся к визитам.
Как правильно: загружайте данные каждый день. Метрика принимает новые заказы только до 21 дня от визита, обновления — до 111 дней.
5. Дублировали расходы Директа.
Что будет: расходы в отчётах удвоятся, ROI станет некорректным.
Как правильно: не загружайте расходы вручную, если у вас включена автоматическая интеграция с Директом.
6. Разметили кампании по-разному.
Что будет: в отчётах появятся десятки разных источников вроде cpc, CPC, клик.
Как правильно: используйте только латиницу, один регистр (лучше строчные буквы) и общий справочник UTM-меток.
7. Передали персональные данные в чистом виде.
Что будет: нарушение закона о персональных данных и блокировка загрузки.
Как правильно: не передавайте имена и телефоны как есть. Используйте только e-mail и телефон, которые Метрика автоматически шифрует.
8. Сделали файл с ошибками.
Что будет: загрузка не пройдёт, данные не попадут в отчёты.
Как правильно: сначала протестируйте загрузку на 2–3 заказах, убедитесь, что они появились в отчётах, и только потом загружайте весь массив.
9. Перепутали счётчик или доступ.
Что будет: данные улетят не туда или вовсе не загрузятся.
Как правильно: проверяйте перед загрузкой, что используете правильный ID счётчика и токен доступа именно от него.
9. Чек-лист внедрения
На стороне сайта:
- установлен счётчик Метрики;
- во всех формах есть поле
ym_client_id; - работает скрипт
getClientID(есть резерв через cookie).
На стороне CRM:
- заведены поля под ClientID/UserID;
- лиды и заказы принимают эти значения;
- статусы сопоставлены с типами Метрики.
ETL:
- ежедневное формирование JSON/CSV;
- загрузка через API;
- при необходимости — офлайн-конверсии.
UTM:
- все кампании размечены корректно.
Контроль:
- статусы загрузок проверены;
- отчёты показывают корректные данные.
10. Примеры API-вызовов
Импорт заказов (JSON):POST https://api-metrika.yandex.net/cdp/api/v1/counter/{counterId}/data/orders/json
Импорт офлайн-конверсий (CSV):POST https://api-metrika.yandex.net/management/v1/counter/{counterId}/offline_conversions/upload
Сопоставление статусов:POST /cdp/api/v1/counter/{counterId}/schema/order_statuses
11. Безопасность
- Emails и телефоны можно передавать в открытом виде — Метрика сама хэширует их перед обработкой.
- Не передавайте лишние персональные данные.
- Основным ключом для связки используйте ClientID.
12. Быстрый старт
- Добавьте скрытое поле
ym_client_idи скриптgetClientID. - Создайте поле
ym_client_idв CRM и сохраняйте его в сделках. - Выгрузите несколько заказов за последние 2 недели и загрузите через API.
- Проверьте отчёт «Источники заказов из CRM».
13. Ответы на вопросы
Нужно ли обязательно передавать ClientID?
Нет, можно использовать e-mail или телефон, но ClientID всегда есть у каждого визита и даёт самую точную связку заказов с рекламой.
Что если заказ был в офлайне?
Если визит с ClientID был меньше 21 дня назад, заказ привяжется к нему. Если визита не было или срок больше — заказ попадёт в отчёт без источника.
Какая цель нужна для офлайн-конверсии?
Только JavaScript-событие. Метрика не примет загрузку по целям «Посещение страницы» или «Количество просмотров».
Сколько времени обрабатывается загрузка?
До 2 часов: небольшие файлы — быстрее, крупные партии заказов — дольше.
Заключение
Интеграция Метрики с CRM через ClientID и UTM-метки — это основа сквозной аналитики. Настроив всего несколько шагов, вы сможете видеть, какие рекламные кампании реально приносят деньги, а какие только создают клики. Для маркетолога это — инструмент контроля эффективности, для бизнеса — основа оптимизации бюджета. Чем раньше вы выстроите связку «сайт → CRM → Метрика», тем быстрее получите честную картину окупаемости рекламы.