Архитектура API Яндекс Метрики и взаимодействие с ней
Чтобы стабильно работать с API Метрики, нужно понимать не только «какой метод вызвать», но и как устроен контур: OAuth-приложение -> токен -> права на счётчик -> выбор API -> лимиты и обработка ошибок. Ниже -- схема взаимодействия для директолога и разработчика.
Коротко: Запросы идут на https://api-metrika.yandex.net с заголовком Authorization: OAuth <token>. Права = скоупы приложения + доступ аккаунта к счётчику. Reports -- синхронные агрегаты; Logs и часть импорта -- асинхронные пайплайны.
← Каталог: Метрика · Введение · Системы аналитики · Счётчик и код · Безопасность данных · Основы HTML/JS · Карта настройки · Типы целей · Цели · Автоцели и ecommerce · ЯТМ на практике · Тег Менеджер · Фильтры и операции · Доступы и роли · Вебвизор и карты · Карты и формы · Семплирование · Отчёты · Стандартные отчёты · Атрибуция · Сегментация · Офлайн-конверсии · ClientID и идентификаторы · Measurement Protocol · CRM и интеграции · Битрикс24 и Albato · Мессенджеры · Воронки · AppMetrica · API: введение · API: возможности · API: окружение · API: отчёты на практике · API: Logs · DataLens · Чек-лист · Справка Яндекс Метрики
Содержание
- Общая схема
- OAuth и скоупы
- Счётчик как единица доступа
- Синхронное взаимодействие: Reports
- Асинхронное взаимодействие: Logs
- Импорт: как данные входят в Метрику
- Ошибки и безопасность
- Рекомендуемая архитектура для агентства
Общая схема
Упрощённый поток:
- Регистрируете OAuth-приложение на oauth.yandex.ru (тип «для доступа к API»).
- Запрашиваете токен от имени пользователя, у которого есть доступ к счётчику.
- Клиент (скрипт, ETL, AdPump/BI) шлёт HTTPS-запросы на api-metrika.yandex.net.
- Management/Stat отвечают JSON сразу; Logs -- через заявку и скачивание файлов.
- Данные уходят в хранилище / дашборд / обратно в Директ как офлайн-конверсии.
| Слой | Компонент | Ответственность |
| Доступ | OAuth + права на счётчик | Кто может читать/писать |
| Управление | Management API | Счётчики, цели, фильтры, logrequests |
| Аналитика | Stat / Reports API | Готовые агрегаты для отчётов |
| Сырьё | Logs API | Построчные visits/hits |
| Обратный поток | Data Import | CRM, офлайн, expenses, user params |
| Потребитель | BI / скрипт / Директ | Решения и оптимизация |
OAuth и скоупы
Токен передаётся в каждом запросе:
Authorization: OAuth <access_token>Основные доступы приложения:
| Scope | Что даёт |
metrika:read | Статистика, чтение настроек своих и доверенных счётчиков, список счётчиков |
metrika:write | Создание/изменение счётчиков, загрузка данных |
metrika:expenses | Загрузка расходов (опционально при наличии write) |
metrika:user_params | Параметры посетителей |
metrika:offline_data | Офлайн-данные: CRM, конверсии, звонки |
passport:business | Нужен для porg-логинов организации |
Важно: Владелец токена -- аккаунт, под которым выдали токен, а не владелец OAuth-приложения. Если у этого аккаунта нет доступа к счётчику -- будет 403.
Пошагово: быстрый старт -> OAuth.
Счётчик как единица доступа
Почти все методы привязаны к counterId. Сначала получают список:
GET https://api-metrika.yandex.net/management/v1/counters
Authorization: OAuth ...Типы доступа на стороне Метрики (владелец / гость просмотр / гость редактирование) должны соответствовать операции. Для записи целей и импорта офлайна обычно нужен edit.
Практика ролей: Доступы и роли в Метрике.
Синхронное взаимодействие: Reports
Типовой запрос отчёта:
GET https://api-metrika.yandex.net/stat/v1/data?ids=COUNTER_ID&metrics=ym:s:visits,ym:s:goal%3Cgoal_id%3Ereaches&dimensions=ym:s:date&date1=2026-07-01&date2=2026-07-31
Authorization: OAuth ...Ответ -- JSON с массивами data / totals. Ошибки квот и неверных метрик возвращаются сразу -- удобно для cron-дашбордов.
Коротко: Ставьте разумный accuracy и лимиты строк. Тяжёлые отчёты лучше дробить по дням или счётчикам, а не забирать год одним запросом.
Асинхронное взаимодействие: Logs
Схема Logs API:
POST .../logrequests-- создать заявку (поля visits/hits, даты);GET .../logrequest/{requestId}-- статус (created -> processed_failed / processed);GET .../part/{N}/download-- скачать TSV/части;POST .../clean-- освободить слот.
Важно: Не оставляйте необработанные заявки: они занимают лимит. Заложите retry и мониторинг статусов.
Дальше данные обычно грузят в ClickHouse / BigQuery и уже там строят атрибуцию.
Импорт: как данные входят в Метрику
Офлайн-конверсии и CRM-заказы передаются с идентификаторами визита/клиента (ClientID, PurchaseID, телефоны/email в разрешённых форматах -- по правилам метода). После загрузки Метрика пытается привязать событие к визиту; статус привязки можно контролировать в отчётах (см. обновления 2026).
Инструкция: Офлайн-конверсии.
Ошибки и безопасность
| Код / симптом | Частая причина | Что сделать |
| 401 | Нет/битый Authorization | Проверить заголовок OAuth |
| 403 | Нет скоупа или доступа к счётчику | metrika:read/write + права гостя/владельца |
| 400 | Неверные metrics/dimensions/даты | Сверить имена полей в справке |
| 429 / quota | Превышен лимит запросов | Backoff, кэш, меньше параллелизма |
| Токен умер | Смена пароля / отзыв | Перевыпустить OAuth |
Храните токены в секретах, не в репозитории. Для агентства -- отдельные приложения или чёткое разделение клиентских доступов.
Рекомендуемая архитектура для агентства
- Scheduler (cron) -- ежедневные Reports по ключевым счётчикам.
- Token vault -- OAuth refresh/перевыпуск без хардкода.
- Import worker -- CRM -> Data Import (офлайн-конверсии) раз в N часов.
- Optional Logs ETL -- только для клиентов с DWH.
- Alerting -- падение целей / ошибка 403 -> чат команде.
Параллельно с API Директа: серия API Директа.
Чек-лист внедрения
- Создать OAuth-приложение и выписать скоупы
- Проверить доступ аккаунта токена к боевому счётчику
- Сделать тестовый GET /counters и один stat/v1/data
- Настроить секреты и ротацию токена
- Если нужен офлайн -- отдельный worker Data Import с мониторингом ошибок
Комментарий эксперта
|
Роман Скороходов «Директ — мой вайб» Главная ошибка -- сразу лезть в Logs «потому что круто». Сначала стабилизируйте Reports и офлайн-импорт: это то, что реально двигает CPA в Директе. Архитектуру DWH имеет смысл строить, когда данные уже чистые. |
Частые вопросы
Чем API Метрики отличается от API Директа?
Метрика -- поведение на сайте, цели, офлайн; Директ -- кампании, ставки, расходы рекламы. Для полной картины нужны оба.
Можно ли одним токеном ходить во все счётчики агентства?
Только в те, куда выдан доступ аккаунту-владельцу токена. Иначе -- отдельные гостевые доступы или токены.
Reports или Logs -- что выбрать?
95% задач директолога закрывает Reports + Data Import. Logs -- когда нужна своя атрибуция или сырые поля.
Обзор возможностей: Возможности API Метрики. Дальше по практике: выбор окружения и готовые запросы Reports API. Официально: yandex.ru/dev/metrika.
Материал подготовлен редакцией AdPump совместно со специалистами Monster Context (m-context.ru) на основе практики ведения аккаунтов Яндекс Директа и обновлений Яндекс Метрики 2026 года.
← Каталог: Метрика · Введение · Системы аналитики · Счётчик и код · Безопасность данных · Основы HTML/JS · Карта настройки · Типы целей · Цели · Автоцели и ecommerce · ЯТМ на практике · Тег Менеджер · Фильтры и операции · Доступы и роли · Вебвизор и карты · Карты и формы · Семплирование · Отчёты · Стандартные отчёты · Атрибуция · Сегментация · Офлайн-конверсии · ClientID и идентификаторы · Measurement Protocol · CRM и интеграции · Битрикс24 и Albato · Мессенджеры · Воронки · AppMetrica · API: введение · API: возможности · API: окружение · API: отчёты на практике · API: Logs · DataLens · Чек-лист