API Метрики + CRM · проверяемые формулы

Как собрать дашборд из API с AI-пояснениями

Пошаговая схема соединения API Яндекс Метрики и CRM на собственном сервере: почему финансовые KPI всегда считает детерминированный SQL-код, как обойти семплирование и коэффициенты IEEE 754 в Logs API и как получать текстовые сводки без передачи персональных данных во внешние модели.

Редакция ForMarketing Обновлено Чтение 18 минут
Архитектура аналитического дашборда: потоки из API источников в защищённое серверное ядро расчётов и экран с графиками KPI и AI-резюме
Золотое правилоДеньги и коэффициенты всегда считает детерминированный код (SQL / TypeScript). ИИ только объясняет уже посчитанную таблицу.
API Яндекс МетрикиКонтролируйте флаг семплирования sampled в API отчётов и делите масштабированные поля цен в Logs API (IEEE 754).
Сверка с кассой и CRMСчитайте CAC и ДРР по оплаченным сделкам за вычетом возвратов, а не по сырым заявкам с сайта.
Безопасность и 152-ФЗПеред вызовом языковой модели удаляйте телефоны, ФИО и ClientID: в промпт уходят только обезличенные агрегаты.

Почему ИИ нельзя пускать напрямую в сырую базу и считать им финансовые KPI

Самая частая ошибка при попытке «прикрутить нейросеть к аналитике» выглядит так: разработчик выгружает из CRM и Яндекс Метрики 5 000 строк в CSV, отправляет их в чат-модель и просит «посчитать стоимость клиента и рентабельность по каналам». В ответ модель выдаёт гладко написанный отчёт с правдоподобными, но математически неверными числами: языковая модель предсказывает вероятные слова, а не складывает столбцы с бухгалтерской точностью.

Надёжный аналитический дашборд всегда строится из пяти последовательных звеньев, где ИИ подключается только на самом последнем шаге к уже выверенным агрегатам:

Четырёхэтапный конвейер данных: источники API, серверный фильтр обезличивания персональных данных, таблица SQL-расчётов и экран графика с блоком AI-резюме
Демонстрационная схема конвейера (сгенерирована для примера). Ключи API и персональные данные клиентов никогда не покидают защищённый сервер компании в РФ.
  1. Серверный коннектор (только чтение): забирает данные из API Яндекс Метрики, рекламных кабинетов и CRM по расписанию. Все токены лежат в серверном .env.
  2. Нормализация и очистка: приводит даты к единому часовому поясу (например, +03:00), очищает UTM-метки, склеивает визиты со сделками по ClientID и удаляет персональные данные (ФИО, телефоны, почту).
  3. Детерминированный расчёт KPI (SQL / ClickHouse / TypeScript): вычисляет CPL, CAC, CR1, CR2 и ДРР по строгим формулам с проверкой деления на ноль.
  4. Визуализация таблиц и графиков: выводит цифры на экран руководителя; дашборд полностью работоспособен даже при отключённом модуле ИИ.
  5. Текстовое AI-пояснение по агрегатам: модель получает компактный обезличенный JSON (10–20 итоговых строк) и формулирует сводку со ссылками на конкретные ячейки таблицы.

Интерактивный стенд: проверьте формулы KPI и разницу между «сырыми заявками» и оплатами в CRM

Ниже представлен рабочий стенд на синтетических агрегированных данных (демонстрационный пример, не отчёт реального клиента). Переключайте каналы трафика и включите тумблер «Считать без сверки с CRM», чтобы увидеть, как спам и отказы искажают картину, если строить отчёт только по целям сайта:

Срез сквозной аналитики по каналам (демоданные за 30 дней)

Детерминированный расчёт + проверяемый вывод
CPL (цена лида) 3 333 ₽ Формула: Расход / Квалиф. лиды
CAC (цена клиента) 8 537 ₽ Формула: Расход / Оплаченные сделки
Конверсия Лид → Оплата 39.0% Формула: Оплаты / Квалиф. лиды × 100%
ДРР (доля расходов) 14.3% Формула: Расход / Выручка оплат × 100%
Канал трафикаВизиты (Метрика)Сырые заявки сайтаКвалиф. лиды (CRM)Оплаты (касса)Выручка оплатРасход
Органический поиск (SEO)6 4206452241 320 000 ₽95 000 ₽
Платная реклама (поиск + сети)4 85098 (много спама)3510680 000 ₽220 000 ₽
Геосервисы и Карты1 94022187450 000 ₽35 000 ₽
Проверяемая сводка по таблице (каждое число сверяется со столбцами выше) Проверенный расчёт по закрытым сделкам CRM: при расходе 350 000 ₽ получено 105 квалифицированных лидов (CPL = 3 333 ₽) и 41 оплаченный заказ на сумму 2 450 000 ₽ (CAC = 8 537 ₽, конверсия в оплату 39.0%, фактический ДРР = 14.3%). Все числа вычислены детерминированной формулой до вызова языковой модели.

Обратите внимание на строку «Платная реклама»: по сырым целям сайта она дала 98 конверсий и кажется лидером, но после фильтрации спама и сверки с оплатами в CRM её фактический ДРР составляет 32,4% против 7,2% у органического поиска.

Два контура API Яндекс Метрики: когда хватает API отчётов, а когда нужен Logs API

В официальной документации Яндекс Метрики предусмотрены два принципиально разных программных интерфейса для выгрузки статистики. Выбор между ними зависит от того, нужно ли вам склеивать каждый конкретный визит со сделкой в CRM по идентификатору посетителя:

Reporting API (/stat/v1/data)

Готовые агрегированные таблицы

Для каких задач подходит
Ежедневные сводки трафика по источникам (ym:s:trafficSource), посадочным страницам, регионам и достижению целей без хранения миллионов сырых хитов на своём сервере.
Контроль семплирования (accuracy)
При большом числе визитов API отчётов может применить семплирование (расчёт по части выборки). Всегда передавайте параметр accuracy=1 (или proposed_accuracy=true) и проверяйте в JSON-ответе флаги sampled и sample_share.
Порог конфиденциальности
Если в ответе пришёл флаг contains_sensitive_data: true, то при выборке менее 10 посетителей социально-демографические срезы и поисковые фразы скрываются алгоритмом Яндекса.
Logs API + ClickHouse

Сырые неагрегированные визиты и события

Для каких задач подходит
Полноценная сквозная аналитика: выгрузка каждого визита с полем ym:s:clientID, UTM-метками и массивом целей для точного соединения (JOIN) с таблицей сделок и оплат из CRM в СУБД ClickHouse.
Окно дозревания визитов (3 дня)
По справке Яндекса данные за текущий день в Logs API недоступны, а 99% визитов полностью завершаются в течение 3 дней после начала. Поэтому коннектор должен перезапрашивать скользящее окно за последние 3 суток.
Квота 10 ГБ и очистка (/clean)
На один счётчик выделяется квота 10 ГБ под подготовленные лог-файлы. После скачивания чанка в вашу базу скрипт обязан вызывать метод /clean, чтобы не заблокировать выгрузку.

Инженерный инспектор: запрос к API Метрики, коэффициенты IEEE 754, обезличивание по 152-ФЗ и защита промпта

Переключайте четыре вкладки инспектора ниже, чтобы увидеть готовые шаблоны запросов, формулу пересчёта денежных полей из Logs API и архитектуру безопасной передачи сводки в языковую модель:

Код конвейера: выгрузка → нормализация → обезличенный JSON для ИИ

// Серверный запрос к API отчётов Яндекс Метрики без семплирования:
const url = new URL('https://api-metrika.yandex.net/stat/v1/data');
url.searchParams.set('ids', process.env.METRIKA_COUNTER_ID!);
url.searchParams.set('metrics', 'ym:s:visits,ym:s:goal123456reaches');
url.searchParams.set('dimensions', 'ym:s:lastSignTrafficSource');
url.searchParams.set('date1', '30daysAgo');
url.searchParams.set('date2', 'yesterday');
url.searchParams.set('accuracy', '1'); // 100% выборка без семплинга
url.searchParams.set('timezone', '+03:00');

const res = await fetch(url, {
  headers: { Authorization: `OAuth ${process.env.METRIKA_OAUTH_TOKEN}` },
  signal: AbortSignal.timeout(20000)
});
const json = await res.json();
// Обязательная проверка флагов ответа в логах дашборда:
console.log({ sampled: json.sampled, lagSec: json.data_lag });

На что обратить внимание в запросе к /stat/v1/data

  • Единая модель атрибуции в префиксе группировки: префикс ym:s:lastSign... задаёт атрибуцию «Последний значимый переход». Если в Метрике стоит lastSign, а в отчёте рекламного кабинета — firstClick, суммы по каналам никогда не сойдутся.
  • Вывод sampled и data_lag на экран: всегда показывайте в углу дашборда долю выборки (sample_share) и задержку обновления данных в секундах (data_lag), чтобы руководитель видел свежесть цифр.

Пять причин, почему данные в Яндекс Метрике, рекламном кабинете и CRM никогда не совпадают копейка в копейку

Когда руководитель впервые открывает сводный дашборд, он всегда задаёт вопрос: «Почему в Метрике написано 120 конверсий, а в CRM за этот же месяц числится 85 сделок?». Это не поломка кода, а фундаментальная разница методики учёта в разных системах, которую нужно явно подписать в интерфейсе дашборда:

Причина расхожденияКак считает Яндекс МетрикаКак считает CRM и бухгалтерияКак правильно свести в дашборде
1. Когорта по дате событияПривязывает цель к дате визита или кликаПривязывает выручку к дате выставления счёта или прихода денег на кассу (сделка может закрыться через 3 недели)Держать два переключателя: «Когортный отчёт по дате первого визита» и «Финансовый отчёт по дате оплаты»
2. Дубли, спам и тестовые заявкиСчитает каждое срабатывание формы (включая повторную отправку и звонки поставщиков)Менеджер объединяет дубли от одного клиента и бракует нецелевой спамВыводить в таблицу воронку: Сырые события → Очищенные от дублей обращения → Квалифицированные лиды
3. Телефонные звонки и мессенджерыВидит только клик по номеру или виджету, если не подключён динамический коллтрекингФиксирует реальный входящий звонок с АТС и привязывает к карточке контактаПередавать ClientID Яндекс Метрики в скрытое поле формы и в скрипт динамического коллтрекинга
4. Блокировщики рекламы и отсутствие cookieТеряет 5–15% визитов у пользователей с жёсткими блокировщиками скриптовВидит 100% реально поступивших на сервер заявок и оплатВыделять сделки без ClientID в отдельную прозрачную строку «Источник не определён (прямой / блокировщик)»
5. Возвраты, отмены и НДСХранит сумму корзины в момент нажатия кнопки «Заказать»Учитывает частичный выкуп, отмену брони, возврат товара и налоги (402-ФЗ, 54-ФЗ)Передавать в аналитику финальный статус оплаченной сделки из CRM или кассы по офлайн-конверсиям

Конфигуратор архитектуры дашборда под стек компании

Отметьте системы, которые уже работают в вашем бизнесе, чтобы сформировать техническое задание на сборку конвейера аналитики:

Какие источники данных нужно свести в единый отчёт?

Выберите ваши сценарии ниже: в списке появятся необходимые узлы архитектуры.

Отметьте используемые источники

Состав аналитического конвейера

Отметьте один или несколько источников выше, и здесь появится перечень инженерных модулей для вашего дашборда. Или нажмите «Показать все модули».

  • Серверное хранилище данных в РФ (ClickHouse или PostgreSQL) с ежедневным расписанием выгрузкиединая точка правды под вашим контролем
  • Коннектор к API Яндекс Метрики с контролем флага sampled, параметра accuracy=1 и окна дозревания 3 дняплюс деление масштабированных полей IEEE 754 при работе с Logs API
  • Импорт фактических расходов по дням и кампаниям с единым справочником UTM-разметки и учётом НДСчтобы расход в рублях сходился с закрывающими актами
  • Передача скрытого поля ym_client_id во все формы сайта и карточки сделок CRMключ для точной склейки визита с продажей
  • Двухконтурный расчёт выручки: когортный (по дате визита) и кассовый (по дате оплаты за вычетом возвратов)с разделением новых и повторных продаж (LTV)
  • Дедупликация обращений по номеру телефона за выбранное окно времени (например, 14 или 30 дней)чтобы три звонка одного клиента не считались тремя разными лидами
  • Детерминированная витрина SQL-представлений (Views) с жёстко зафиксированными формулами CPL, CAC, CR и ДРРзащита от деления на ноль и расхождений в формулах между отделами
  • Блок диагностики качества данных на экране: процент сделок без источника, дата последней синхронизации и лаг APIпозволяет заметить поломку счётчика или вебхука в первый же день
  • Шлюз обезличивания по 152-ФЗ перед вызовом LLM: полное удаление телефонов, ФИО, почты и ClientIDв модель передаются только сгруппированные суммы и коэффициенты
  • Санитизация строковых названий кампаний и меток от косвенной инъекции промпта (OWASP LLM01)и подключение AI-модуля к БД строго с правами READ ONLY
  • Обязательные ссылки из каждого предложения AI-сводки на конкретную строку и столбец исходной таблицычтобы любой вывод модели проверялся глазами за 5 секунд
  • Журнал ошибок синхронизации (очередь повторных запросов при HTTP 429/502 и квотах API)плюс автоматическое освобождение квоты 10 ГБ методом /clean в Logs API

Проверенный Open-Source стек с GitHub для собственного аналитического сервера

Вместо того чтобы платить ежемесячную комиссию закрытым облачным сервисам сквозной аналитики и отдавать им клиентскую базу, вы можете развернуть промышленный BI-контур на собственном сервере в РФ из открытых компонентов с мировым признанием:

  • ClickHouse (Apache-2.0 License): высокопроизводительная колоночная СУБД, для которой в документации Яндекс Метрики предусмотрена штатная интеграция с Logs API. Мгновенно считает агрегаты по десяткам миллионов визитов и сделок.
  • apache/superset (75 270+ ★ на GitHub, Apache-2.0 License): открытая платформа визуализации данных и BI-дашбордов промышленного уровня с ролевым доступом, SQL-лабораторией и кэшированием отчётов.
  • metabase/metabase (49 820+ ★ на GitHub): удобная self-hosted BI-система для руководителей и маркетологов, позволяющая строить дашборды, расписания рассылок и срезы по таблицам PostgreSQL и ClickHouse.

Чек-лист приёмки аналитического дашборда у разработчика

Перед тем как принимать дашборд в работу и опираться на его цифры при распределении рекламного бюджета, проверьте его по 12 инженерным пунктам:

Отмечено 0 из 12 пунктов.

Опасные ошибки при сборке дашбордов с ИИ

Арифметика внутри промпта LLM

Модель считает сумму столбца из 500 строк «на глаз», ошибается на 20% и уверенным тоном советует отключить самый прибыльный канал.

Забытый делитель IEEE 754 в Logs API

Разработчик выгрузил ym:s:goalsPrice без деления на 1 000, и целевой доход в дашборде вырос в тысячу раз.

Переполнение квоты 10 ГБ в Метрике

Скрипт скачивает логи, но не вызывает метод /clean: через две недели квота забивается и дашборд перестаёт обновляться.

Смешение даты визита и даты оплаты

При цикле сделки в 20 дней маркетолог смотрит на отчёт за текущую неделю, видит нулевую выручку и останавливает работающие кампании.

Утечка базы клиентов в облачную LLM

Коннектор отправляет в зарубежный AI-сервис таблицу сделок вместе с телефонами и именами покупателей, нарушая 152-ФЗ.

Генерация SQL-запросов с правами записи

Чат-боту дали прямой доступ к рабочей базе CRM без ограничения READ ONLY, создав риск повреждения или удаления таблиц.

Вопросы и ответы

Можно ли поручать нейросети самостоятельно считать выручку, CPL и ROMI по сырой выгрузке?

Нет. Языковая модель предсказывает токены текста, а не выполняет точные бухгалтерские операции, поэтому на больших таблицах она пропускает строки и ошибается в округлении. Все финансовые KPI (расход, выручка, CPL, CAC, ДРР) всегда вычисляются детерминированным SQL- или TypeScript-кодом, а нейросеть получает уже готовую таблицу итогов для написания текстового резюме.

Чем отличается API отчётов Яндекс Метрики (/stat/v1/data) от Logs API?

API отчётов (/stat/v1/data) возвращает уже сгруппированные агрегаты (с возможным семплированием на больших объёмах, которым управляет параметр accuracy). Logs API отдаёт сырые неагрегированные записи каждого визита и события для загрузки в собственную базу (например, ClickHouse) и точной склейки с CRM по ClientID.

Почему цифры в Logs API Яндекс Метрики могут отличаться от веб-интерфейса в тысячу или миллион раз?

По официальной документации Яндекс Метрики для защиты от погрешностей чисел с плавающей запятой (стандарт IEEE 754) некоторые денежные поля в Logs API хранятся умноженными на коэффициент: например, ym:s:goalsPrice умножается на 1 000, а ym:s:productsPrice — на 1 000 000. При загрузке в базу их нужно делить на соответствующий делитель.

Какие данные из CRM запрещено передавать во внешнюю языковую модель по 152-ФЗ?

Нельзя передавать ФИО клиентов, телефоны, адреса электронной почты, записи звонков, тексты личных сообщений и индивидуальные идентификаторы покупателей. Перед вызовом модели серверный скрипт агрегирует данные до обезличенных сумм и количества сделок по каналам, регионам и неделям.

Почему конверсия и выручка за вчерашний день в дашборде меняются спустя трое суток?

По документации Яндекс Метрики в среднем 99% визитов полностью завершаются и обогащаются данными в течение 3 дней после начала, а в CRM сделка может перейти из статуса «Новая заявка» в «Оплачено» через неделю. Поэтому в дашборде всегда разделяют дату визита, дату создания заявки и дату фактической оплаты.

На каких открытых инструментах можно развернуть дашборд на своём сервере без платных облачных BI?

Проверенный открытый стек с GitHub: колоночная СУБД ClickHouse для хранения логов Метрики и сделок, плюс визуальная BI-платформа Apache Superset (75 000+ звёзд на GitHub) или Metabase (49 800+ звёзд) на собственном российском сервере.

О редакции и первоисточниках

Редакция ForMarketingКоманда студии. Проектирует системы сквозной аналитики, связку сайтов с Яндекс Метрикой и CRM и отвечает за достоверность инженерных материалов базы знаний.

Руководство составлено по официальной документации API Яндекс Метрики, стандартам безопасности OWASP и законодательству РФ о защите персональных данных.

Первоисточники и документация

  1. API Яндекс Метрики — справочник API отчётов, метод /stat/v1/data (параметры accuracy, timezone, флаги sampled, sample_share, data_lag, contains_sensitive_data): yandex.ru/dev/metrika/ru/stat/openapi/data_1
  2. API Яндекс Метрики — введение и ограничения Logs API (квота 10 ГБ, окно завершения 99% визитов 3 дня, коэффициенты стандарта IEEE 754 для goalsPrice и productsPrice): yandex.ru/dev/metrika/ru/logs/
  3. API Яндекс Метрики — подключение Logs API к СУБД ClickHouse: yandex.ru/dev/metrika/ru/logs/clickhouse-integration
  4. Справка Яндекс Метрики — установка и настройка счётчика, передача параметров визитов и целей: yandex.ru/support/metrica/ru/code/install-counter
  5. OWASP GenAI Security Project — Top 10 for Large Language Model Applications (LLM01 Prompt Injection, LLM06 Sensitive Information Disclosure, LLM08 Excessive Agency): github.com/OWASP/www-project-top-10-for-large-language-model-applications
  6. Законодательство РФ: Федеральный закон № 152-ФЗ «О персональных данных» (ст. 3 — обезличивание ПДн, ч. 5 ст. 18 — локализация баз в РФ), Федеральный закон № 402-ФЗ «О бухгалтерском учёте» и № 54-ФЗ (кассовый учёт оплат и возвратов).
  7. GitHub Open Source — платформа визуализации данных Apache Superset (github.com/apache/superset, 75 270+ ★) и BI-система Metabase (github.com/metabase/metabase, 49 820+ ★).

История обновлений

  • — первая публикация руководства, интерактивного стенда расчёта KPI по агрегатам, инспектора API Яндекс Метрики (/stat/v1/data и Logs API) и чек-листа приёмки.

Связанные руководства и услуги

Прозрачная аналитика начинается с правильно спроектированного сайта и чистой структуры посадочных страниц. Изучите наше парное руководство «Как создать сайт с помощью ИИ и проверить код» или посмотрите, как мы выстраиваем поисковое продвижение с привязкой к заявкам и сделкам в разделе SEO-продвижения.

Гайд: создание сайта с ИИ Услуга: SEO-продвижение Все руководства базы Обсудить задачу