Картинка статьи
Ольга Карповаредактор CyberBrain

Интеграция сквозной аналитики с Яндекс Метрикой и CRM: пошаговый гайд с UTM-метками

Статья подготовлена по состоянию на 29.09.2025. Проверяйте актуальность информации в официальной документации Яндекс Метрики и CRM-систем, так как форматы API и правила работы со сквозной аналитикой могут изменяться.

Этот материал — подробная инструкция, как связать поведение пользователя на сайте (Яндекс Метрика), заявки и продажи в CRM, а также рекламные кампании через UTM-метки.

Что вы получите:

  • чёткий план внедрения с чек-листами и типовыми ошибками;

  • готовые сниппеты кода для сбора ClientID (идентификатора посетителя Метрики) и отправки в CRM;

  • специфику импорта офлайн-данных (заявки/заказы) в Метрику: сроки, форматы, статусы;

  • рекомендации по UTM-разметке, макросам Директа, отчётам для контроля качества данных.

1. Что именно мы связываем и зачем

Цель сквозной аналитики — увидеть путь пользователя:
клик по объявлению → визиты на сайте → лид/сделка в CRM → выручка/маржа.

Ключ к связке — общий идентификатор:

  • ClientID — уникальный ID посетителя браузера (cookie _ym_uid). Рекомендуется как основной идентификатор, его можно получить через getClientID API Метрики.

  • UserID — внутренний ID авторизованного пользователя (опционально).

  • yclid — ID клика из Яндекс Директа.

Сроки привязки:

  • офлайн-данные добавляются к сессиям в пределах 21 дня от визита;

  • заказы можно обновлять до 111 дней после визита.

2. Архитектура решения

  1. Сайт: собираем ClientID и (при необходимости) UserID.

  2. Формы: добавляем скрытые поля и передаём идентификаторы в CRM.

  3. CRM/ETL: ежедневно формируем JSON/CSV с заказами и загружаем их в Метрику через API.

  4. Отчёты: проверяем данные в «Источниках заказов из CRM» и «Источниках, расходах и ROI».

3. Сбор ClientID на сайте

Generated image

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 (рекомендовано)

  1. Получите OAuth-токен и доступ к счётчику.

  2. Ежедневно формируйте JSON/CSV и отправляйте:
    POST https://api-metrika.yandex.net/cdp/api/v1/counter/{counterId}/data/orders/json

  3. Для офлайн-конверсий целей используйте метод 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. Частые ошибки и как их избежать

Generated image

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. Быстрый старт

  1. Добавьте скрытое поле ym_client_id и скрипт getClientID.

  2. Создайте поле ym_client_id в CRM и сохраняйте его в сделках.

  3. Выгрузите несколько заказов за последние 2 недели и загрузите через API.

  4. Проверьте отчёт «Источники заказов из CRM».

13. Ответы на вопросы

Нужно ли обязательно передавать ClientID?
Нет, можно использовать e-mail или телефон, но ClientID всегда есть у каждого визита и даёт самую точную связку заказов с рекламой.

Что если заказ был в офлайне?
Если визит с ClientID был меньше 21 дня назад, заказ привяжется к нему. Если визита не было или срок больше — заказ попадёт в отчёт без источника.

Какая цель нужна для офлайн-конверсии?
Только JavaScript-событие. Метрика не примет загрузку по целям «Посещение страницы» или «Количество просмотров».

Сколько времени обрабатывается загрузка?
До 2 часов: небольшие файлы — быстрее, крупные партии заказов — дольше.

Заключение

Интеграция Метрики с CRM через ClientID и UTM-метки — это основа сквозной аналитики. Настроив всего несколько шагов, вы сможете видеть, какие рекламные кампании реально приносят деньги, а какие только создают клики. Для маркетолога это — инструмент контроля эффективности, для бизнеса — основа оптимизации бюджета. Чем раньше вы выстроите связку «сайт → CRM → Метрика», тем быстрее получите честную картину окупаемости рекламы.

поделиться:
Популярные статьи
статья 10 min read Как и зачем внедрять data-driven атрибуцию в бизнес: 5 основных шагов Атрибуция на основе данных — мощное решение для контроля эффективности и оптимизации рекламы. Но как его интегрировать и можно ли это сделать самостоятельно? В этой статье мы вместе преодолеем пять основных препятствий на пути к внедрению атрибуции — и превратим их в пять конкретных шагов для реализации.
Ольга Карповаредактор CyberBrain
оптимизация 12 min read Больше лидов — меньше CPA: первый и единственный гайд по оптимизации медийной рекламы от CyberBrain Медийная реклама должна работать на продажи — и точка. В статье вас ждёт описание фреймворка, который служит именно этой цели.
Никита Лисицын CEO CyberBrain
проблемы и решения 3 min read Анализ расхождений трекера и кабинетов Системный подход к оптимизации медийной рекламы невозможен без чистых данных. Но что если данные трекера и рекламного кабинета не совпадают? Рассказываем, откуда берутся расхождения и что с этим делать.
Никита Лисицын CEO CyberBrain
памятка 10 min Распространённые ошибки в маркетинговой атрибуции и как их избежать Ошибки в атрибуции могут стоить бизнесу дорого: вы теряете бюджет, усиливаете неэффективные каналы и делаете неверные выводы. В этой статье — типичные ошибки в настройке и интерпретации атрибуции и рекомендации, как их избежать.
Ольга Карповаредактор CyberBrain
статья 8 min Атрибуция и инкрементальность: различия и применение Разбираем два ключевых подхода к оценке эффективности рекламы: атрибуцию и инкрементальность. Чем они отличаются, какие задачи решают и как их применять в связке. В материале — понятные определения, сравнительная таблица, примеры и ограничения каждого метода.
Ольга КарповаCEO CyberBrain
статья 12 min Мобильная Data Driven атрибуция: как узнать эффективность рекламы Мобильная data-driven атрибуция показывает реальный вклад каналов в продажи. Объясняем, как объединить web+app, зачем нужен Stable ID и кому выгодно внедрение.
Ольга Карповаредактор CyberBrain
Подписывайтесь на канал Мониторим рынок из первоисточников и делимся краеугольными событиями IT и digital-рынков