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.
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

Авторизация

Тип: 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

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

{
    "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

Нюансы

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


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