# API VK Рекламы: Выгрузить статистику кампаний по дням

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

Показы, клики и расходы по кампаниям — в отчёт или сквозную аналитику.

1. Получи кампании: GET /api/v2/ad_plans.json с limit и offset; только активные — _status = active.
2. Запроси статистику: GET /api/v2/statistics/{object}/{period}.json с object = campaigns, period = day, id — ID кампаний через запятую (до 200), date_from и date_to. Набор метрик — metrics (base по умолчанию, all — всё).
3. В ответе items[] с rows по датам и total. Посуточная статистика доступна за последние 365 дней.
4. Для больших выборок с сортировкой и постраничным выводом используй GET /api/v3/statistics/{object}/day.json с limit (до 250) и offset.

```bash
curl -G "https://ads.vk.ru/api/v2/statistics/campaigns/day.json" \
  -H "Authorization: Bearer $VKADS_TOKEN" \
  -d id=6617841,6711647 -d date_from=2026-10-01 -d date_to=2026-10-23 -d metrics=base
```

## Базовые URL

- Боевой: `https://ads.vk.ru`
- Методы: `/api/v2/`

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

Тип: OAuth 2.0

Токен получают методом `POST /api/v2/oauth2/token.json` (`application/x-www-form-urlencoded`) и передают в заголовке:

Токен живёт сутки (`expires_in` = 86400) и продлевается через `refresh_token`. На пару «client_id + пользователь» — не больше 5 токенов одновременно; запрос сверх лимита возвращает HTTP 403.

```
Authorization: Bearer {access_token}
```

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

### GET /api/v2/ad_plans.json — Список кампаний

| Параметр | Где | Тип | Обяз. | Описание |
|---|---|---|---|---|
| `limit` | query | integer | нет | Число кампаний, по умолчанию 20 |
| `offset` | query | integer | нет | Смещение |
| `_id` | query | integer | нет | Фильтр по ID; несколько — _id__in=6617841,6711647 |
| `_status` | query | string | нет | active, blocked, deleted; также _status__ne, _status__in |
| `sorting` | query | string | нет | id, name, status; минус — по убыванию, например -id |

Пример ответа:

```json
{
    "count": 3,
    "offset": 0,
    "items": [
        {
            "id": 6617841,
            "name": "New campaign 2022-07-15 17:53"
        },
        {
            "id": 6711647,
            "name": "New campaign 2022-08-16 19:49"
        },
        {
            "id": 6711665,
            "name": "New campaign 2022-08-16 19:51"
        }
    ]
}
```

### GET /api/v2/statistics/{object}/{period}.json — Статистика

`object` — `banners`, `campaigns` или `users`; `period` — `day` или `summary`.

В ответе: `items[]` (`id`, `rows` по датам, `total`) и общий `total`.

| Параметр | Где | Тип | Обяз. | Описание |
|---|---|---|---|---|
| `object` | path | string | да | banners, campaigns, users |
| `period` | path | string | да | day или summary |
| `id` | query | string | да | ID объектов через запятую, до 200 |
| `date_from` | query | string | нет | Начало периода YYYY-MM-DD (обязателен для day) |
| `date_to` | query | string | нет | Конец периода включительно (обязателен для day) |
| `metrics` | query | string | нет | all, base (по умолчанию), events, video, uniques, tps, playable, romi |
| `attribution` | query | string | нет | Модель атрибуции impression; для summary игнорируется |

### GET /api/v3/statistics/{object}/day.json — Статистика с пагинацией

| Параметр | Где | Тип | Обяз. | Описание |
|---|---|---|---|---|
| `object` | path | string | да | banners, campaigns, users |
| `date_from` | query | string | да | Начало периода YYYY-MM-DD |
| `date_to` | query | string | нет | Конец периода, по умолчанию текущая дата |
| `id` | query | string | нет | ID объектов через запятую |
| `fields` | query | string | нет | Наборы метрик, по умолчанию base |
| `attribution` | query | string | нет | impression или conversion (по умолчанию) |
| `campaign_id` | query | string | нет | Фильтр по кампаниям (для статистики объявлений) |
| `sort_by` | query | string | нет | Сортировка metric.field_name |
| `d` | query | string | нет | Направление: asc (по умолчанию) или desc |
| `limit` | query | integer | нет | 1–250, по умолчанию 20 |
| `offset` | query | integer | нет | Смещение, по умолчанию 0 |

## Нюансы

- Фильтры в списках задаются префиксом `_` и суффиксами `__in`, `__ne`, `__lt`, `__lte`, `__gt`, `__gte`.
- `ad_groups` нельзя запрашивать через `fields` в списке кампаний.
- Посуточная статистика доступна не больше чем за последние 365 дней.
- Временные токены удаляются автоматически после месяца без использования.
- Есть отдельные эндпоинты статистики по целям (`/api/v2/statistics/goals/...`), in-app событиям (`/api/v2/statistics/inapp/...`) и офлайн-конверсиям.
- Для агентств и менеджеров — ресурсы AgencyClients и ManagerClients и токен с `grant_type=agency_client_credentials`.

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

- [Получить токен доступа к рекламному кабинету](https://mcp-everything.ru/integrations/vk-ads/scenarios/poluchit-token-dostupa-k-reklamnomu.md)
- [Создать кампанию с группой объявлений](https://mcp-everything.ru/integrations/vk-ads/scenarios/sozdat-kampaniyu-s-gruppoy-obyavleniy.md)

---

Если этого недостаточно — официальная документация: https://ads.vk.ru/en/doc/api/info/Authorization
Вся интеграция одним документом: https://mcp-everything.ru/integrations/vk-ads.md
