# API Яндекс Метрики: Посчитать конверсию по целям

Сценарий из mcp-everything. Актуально на 2026-10-24.

Сколько визитов закончилось заявкой или покупкой — по источникам и кампаниям.

1. Получи цели счётчика: GET /management/v1/counter/{counterId}/goals — id, name и type каждой цели.
2. Запроси отчёт: GET /stat/v1/data с metrics вида ym:s:goal<ID цели>reaches и ym:s:goal<ID цели>conversionRate и нужными dimensions, например ym:s:lastTrafficSource.
3. Новый счётчик для сайта создаётся через POST /management/v1/counters с counter.name и counter.site2.site.

```bash
curl -G https://api-metrika.yandex.net/stat/v1/data \
  -H "Authorization: OAuth $METRIKA_TOKEN" \
  -d ids=44147844 \
  -d 'metrics=ym:s:visits,ym:s:goal123456reaches,ym:s:goal123456conversionRate' \
  -d dimensions=ym:s:lastTrafficSource -d date1=2026-10-01 -d date2=2026-10-23
```

## Базовые URL

- Боевой: `https://api-metrika.yandex.net`

## Авторизация

Тип: OAuth 2.0

OAuth-токен Яндекса передаётся в заголовке `Authorization` в каждом запросе. Без токена или с недействительным токеном сервер отвечает `401`.

```
Authorization: OAuth <токен>
```

## Методы сценария

### POST /management/v1/counters — Создание счётчика

| Параметр | Где | Тип | Обяз. | Описание |
|---|---|---|---|---|
| `field` | query | string | нет | Доп. поля ответа |
| `ytm` | query | boolean | нет | Использовать систему управления тегами, по умолчанию false |
| `counter.name` | body | string | нет | Название счётчика, до 255 символов |
| `counter.site2.site` | body | string | нет | Полный домен сайта, до 255 символов |

### GET /management/v1/counter/{counterId}/goals — Список целей

В ответе — `goals[]`: `id`, `name`, `type`, `default_price`, `goal_source`, `is_favorite`, `status` и поля, зависящие от типа цели.

| Параметр | Где | Тип | Обяз. | Описание |
|---|---|---|---|---|
| `counterId` | path | integer | да | ID счётчика |
| `useDeleted` | query | boolean | нет | Включать удалённые цели, по умолчанию false |

### GET /stat/v1/data — Отчёт «Таблица»

В ответе: `data[]` (`dimensions[]` и `metrics[]`), `totals`, `total_rows`, `sampled`, `sample_share`, `query`, `contains_sensitive_data` и др.

| Параметр | Где | Тип | Обяз. | Описание |
|---|---|---|---|---|
| `ids` | query | array | нет | ID счётчиков через запятую |
| `metrics` | query | string | нет | Метрики через запятую, до 20 |
| `dimensions` | query | string | нет | Группировки через запятую, до 10 |
| `date1` | query | string | нет | Начало периода: YYYY-MM-DD, today, yesterday, ndaysAgo; по умолчанию 6daysAgo |
| `date2` | query | string | нет | Конец периода, по умолчанию today |
| `filters` | query | string | нет | Фильтр сегментации |
| `sort` | query | string | нет | Поля сортировки; - — по убыванию |
| `limit` | query | string | нет | Строк на странице, по умолчанию 100, максимум 100 000 |
| `offset` | query | string | нет | Первая строка (с 1) |
| `accuracy` | query | string | нет | Размер выборки (семплирование) |
| `preset` | query | string | нет | Шаблон отчёта, например sources_summary |
| `lang` | query | string | нет | Язык ответа |
| `timezone` | query | string | нет | Часовой пояс ±hh:mm, + передаётся как %2B |
| `direct_client_logins` | query | array | нет | Логины клиентов Яндекс Директа |
| `include_undefined` | query | boolean | нет | Строки с неопределёнными значениями |
| `proposed_accuracy` | query | boolean | нет | Разрешить API повышать accuracy |

Пример запроса:

```
https://api-metrika.yandex.net/stat/v1/data.csv?id=44147844&metrics=ym:s:avgPageViews&dimensions=ym:s:operatingSystem&limit=5
```

## Нюансы

- Префиксы метрик и группировок: `ym:s:` — визиты, `ym:pv:` — хиты; смешивать их в одном запросе нельзя.
- Социально-демографические данные выдаются только при выборке больше 10 посетителей; признак ограничения — `contains_sensitive_data: true`.
- Logs API: период запроса — не больше 1 года, `date2` не может быть текущим днём, фильтрации на уровне запроса нет.
- Поток выгрузки логов: `evaluate` → создание запроса → опрос статуса до `processed` → скачивание частей → `clean`.
- Ограничения фильтров отчётов: до 20 фильтров, до 10 000 символов в строке, до 100 значений в одном условии.

## Другие сценарии

- [Получить посещаемость и источники трафика за период](https://mcp-everything.ru/integrations/yandex-metrika/scenarios/poluchit-poseschaemost-i-istochniki.md)
- [Построить график посещаемости по дням](https://mcp-everything.ru/integrations/yandex-metrika/scenarios/postroit-grafik-poseschaemosti-po-dnyam.md)
- [Выгрузить сырые визиты через Logs API](https://mcp-everything.ru/integrations/yandex-metrika/scenarios/vygruzit-syrye-vizity-cherez-logs-api.md)

---

Если этого недостаточно — официальная документация: https://yandex.ru/dev/metrika/ru/
Вся интеграция одним документом: https://mcp-everything.ru/integrations/yandex-metrika.md
