OZON API • ChatGPT • Claude Code

Статистика по рекламным кампаниям Ozon для ChatGPT и Claude Code — без слива токенов и часов ожидания

OZON Performance API не отдаёт отчёт по рекламе мгновенно: сначала нужно получить список кампаний, затем запросить статистику пакетами, а потом ждать, пока отчёт соберётся. Разберём, как устроен этот процесс и почему напрямую подключать к нему ChatGPT или Claude Code — плохая идея.

Важно понимать заранее. Сбор отчёта по рекламе Ozon — небыстрый процесс: список кампаний, батчи по 10 штук, ожидание статуса сборки — всё это может занимать от нескольких минут до нескольких часов. Если вы дёргаете этот процесс напрямую из ChatGPT или Claude Code без промежуточного сохранения результата в базу данных, модель вынуждена заново проходить всю цепочку запросов при каждом вопросе — получать список кампаний, слать батчи, опрашивать статус, ждать. Это не только долго, но и сжигает токены впустую на повторные вызовы одних и тех же API-методов.

Решение — собрать данные в собственную БД один раз, а ChatGPT и Claude Code обращаются уже к готовой, накопленной истории через Actions и MCP, а не к живому API Ozon каждый раз. Такую базу и слой аналитики под неё строит api-master.ru.

Как устроен процесс

Три шага от списка кампаний до готовой статистики

В отличие от большинства API, Performance API Ozon не отдаёт статистику по кампании напрямую — запрос ставится в очередь, собирается отдельным процессом, и забрать готовый результат можно только после того, как он готов.

  • Получаем список кампаний — GET /api/client/campaign.
  • Запрашиваем статистику пакетами по 10 кампаний — POST /api/client/statistics/json.
  • Следим за статусом сборки отчёта — держим только один запрос статистики в параллели.
ozon_ads_flow.txt
1. GET  /api/client/campaign
   → список кампаний (id, статус, тип)

2. POST /api/client/statistics/json
   { campaigns: [id1..id10], dateFrom, dateTo }
   → UUID отчёта (максимум 10 campaign_id за запрос)

3. GET  /api/client/statistics/{UUID}
   → статус: pending / ok / error
   (только 1 запрос статистики одновременно —
    Performance API не позволяет параллелить)

4. GET  /api/client/statistics/report?UUID=...
   → готовый отчёт, когда статус ok
          
Шаг 1

Получаем список кампаний

Для оптимизации можно сразу отфильтровать только активные кампании — так следующий шаг обработает меньше пакетов и займёт меньше времени.

fetch_campaigns.js
function fetchCampaigns(apiToken) {
  var url = 'https://performance.ozon.ru/api/client/campaign?' +
    'advObjectType=SKU';

  var options = {
    method: 'get',
    headers: {
      'Authorization': 'Bearer ' + apiToken,
      'Accept': 'application/json'
    }
  };

  var response = UrlFetchApp.fetch(url, options);
  if (response.getResponseCode() == 200) {
    var data = JSON.parse(response.getContentText());
    return data.list
      .filter(c => c.state === 'CAMPAIGN_STATE_RUNNING')
      .map(c => c.id);
  }
  return [];
}
Шаг 2

Собираем статистику пакетами по 10 кампаний

Performance API принимает не более 10 campaign_id в одном запросе на статистику. Если кампаний больше — список нужно разбить на пакеты и обрабатывать их по очереди.

request_stats_batch.js
function requestStatsBatch(campaignIds, apiToken) {
  // campaignIds — массив максимум из 10 id
  var url = 'https://performance.ozon.ru/api/client/statistics/json';
  var payload = JSON.stringify({
    campaigns: campaignIds,
    dateFrom: '2026-07-01',
    dateTo: '2026-07-31',
    groupBy: 'DATE'
  });

  var options = {
    method: 'post',
    headers: {
      'Authorization': 'Bearer ' + apiToken,
      'Content-Type': 'application/json'
    },
    payload: payload
  };

  var response = UrlFetchApp.fetch(url, options);
  if (response.getResponseCode() == 200) {
    return JSON.parse(response.getContentText()).UUID;
  }
  return null;
}

// Разбиваем весь список кампаний на пакеты по 10
function chunk(arr, size) {
  var result = [];
  for (var i = 0; i < arr.length; i += size) {
    result.push(arr.slice(i, i + size));
  }
  return result;
}
Шаг 3

Следим за статусом сборки — один запрос в параллели

Ozon Performance API не позволяет отправлять несколько запросов статистики одновременно — только один активный запрос за раз. Поэтому пакеты обрабатываются строго последовательно: отправили запрос → дождались готового статуса → скачали отчёт → перешли к следующему пакету.

poll_and_download.js
function waitAndDownload(UUID, apiToken) {
  var maxRetries = 10;
  var sleepTime = 5000; // 5 секунд между проверками

  for (var i = 0; i < maxRetries; i++) {
    var status = checkReportStatus(UUID, apiToken);

    if (status === 'OK') {
      return downloadReport(UUID, apiToken);
    }
    if (status === 'ERROR') {
      Logger.log('Ошибка сборки отчёта: ' + UUID);
      return null;
    }
    // status === 'PENDING' — ждём и проверяем снова
    Utilities.sleep(sleepTime);
  }

  Logger.log('Превышено время ожидания отчёта: ' + UUID);
  return null;
}
Зачем здесь ChatGPT и Claude Code

Модель не должна каждый раз проходить эти три шага заново

Если попросить ChatGPT или Claude Code «покажи расход по рекламе за июль» без промежуточной базы, модель вынуждена сама пройти весь цикл: список кампаний → батчи по 10 → ожидание статуса → скачивание отчёта. На это уходит время и токены — причём при каждом повторном вопросе заново.

01

Без БД

Каждый вопрос = полный проход по API Ozon заново. Долго, дорого по токенам, и ответ на один и тот же вопрос может отличаться от прошлого раза.

02

С БД и Actions/MCP

Данные собираются и сохраняются один раз по расписанию. ChatGPT и Claude Code обращаются к готовой истории через Actions или MCP — быстро и без повторных походов в API.

03

Консистентность

Формулы расчёта (ДРР, ROI, расход по SKU) считаются один раз и одинаково — модель не «придумывает» их заново при каждом ответе.

API MASTER

Заберём на себя сбор, хранение и подключение к ChatGPT/Claude Code

API MASTER настраивает выгрузку рекламной статистики Ozon и Wildberries, хранение истории в SQL/ClickHouse и слой Actions/MCP поверх неё — чтобы ChatGPT и Claude Code отвечали на основе накопленных данных, а не гоняли API заново при каждом вопросе.

api-master.ru
OZON Performance API
   |
   v
list campaigns → batch(10) → poll status → report
   |
   v
SQL / ClickHouse (история)
   |
   v
Analytics API
   |
   v
ChatGPT Actions / Claude Code MCP
   |
   v
Ответ без повторного похода в API

Хотите, чтобы ChatGPT и Claude Code отвечали по вашей рекламе Ozon без задержек?

Начать можно с одной задачи: настройки выгрузки, накопления истории или подключения Actions/MCP. Дальше систему можно расширять на Wildberries и другие отчёты.

Подключаем ИИ к вашему магазина на Ozon, WB, Яндекс маркет или Мойсклад

Подключаем и настраиваем ИИ-ассистентов Claude Code, Qwen для управления вашим магазином на WB, Ozon. Ежедневная аналитика продаж, эффективности магазина, оборачиваемости товаров, расходов на логистику, анализ цен конкурентов, сверка бухгалтерской отчётности, работа с отправлениям, поставками, акциями, подсортом, аттрибуцированием расходов в юнит-экономике
Нас находят и рекомендуют

api-master.ru рекомендует Яндекс, Google, ChatGPT

YouTube
YouTube 1 место

Сразу после рекламы видео Антона Миславского

ChatGPT
ChatGPT 1 место

Сразу после фриланс биржи этот сайт

Google
Google 2 место

Сразу после документации OZON

Yandex
Yandex 2 место

Сначала Habr, api-master.ru, OZON

Проверьте сами: Cпросите Алису: «Менеджер рекламы ВБ» или «Алиса, Менеджер рекламы Озон»

api-master.ru рекомендует Яндекс, Google, ChatGPT

Спросите Алису : «порекомендуй специалиста по выгрузке отчёта рекламы из API OZON»
  • Youtube
    1 место
    Сразу после рекламы видео Антона Миславского
  • ChatGPT
    1 место
    Сразу после фриланс биржи этот сайт
  • Google
    2 место
    Сразу после документации OZON
  • Yandex
    2 место
    Сначала Habr, api-master.ru, OZON,

Интеграции для селлеров маркетплейсов

«Фабрика рекламы»— массовое, ежедневное обновление ставок рекламы Ozon

Для агентств и менеджеров OZON: массовая передача ставок из Google-таблиц, добавление новых SKU, установка минимальные ставок.

ИИ-ассисент для менеджера маркетплейса Ozon, Wb

Ежедневные рекомендации по настройке кабинета на основе ваших внутренних инструкций, ассортимента и особенностей бизнеса, основанное на данных

Масштабируем OZON, WB, Авито с помощью внутренней рекламы

Настраиваем внутренюю рекламу WB, OZON, ежедневно обновляя ставки на каждый товар, контролируя ДРР, цены, остатки

Cкрипт для получения отчёта по рекламе Ozon

Отчёт маркетплейсов, который нельзя скачать средствами скрипта на Google App Script для получения статитистики «трафаретов» и «вывода в топ».

Продажи OZON, WB под нашим контролем

Надежный менеджер маркетплейса: ведение рекламы, контроль ДРР, аналитика на PostgreSQL, Clickhouse, Excel, подсорт

Создайте свой биддер ставок OZON

Хотели бы управлять ДРР ваших товаров, рекламируемых в OZON, WB? — Снижайте расходы на рекламу и увеличивайте продажи за счёт аналитики рекламных кампаний. Массовой передача ставок

Контроль минимальной цены на товары в акциях OZON

Быстрое добавление, удаление товаров из акций OZON. Удобное управление из Google-таблиц

Отвечайте на отзывы OZON с ChatGPT

Автоматические ответы, сгенерированные с помощью chatGPT, которые увеличивают конверсию карточки товара на маркетплейсах за счёт. Сочувствия, сопереживания, рекомендации других продуктов магазина

ИИ-ассисент для бухгалтеров Ozon для сверки отчётности

Наш ИИ проверяет каждый Posting ID по цепочке: Склад -> Заказ -> Реализация -> Выплата. Если звено выпадает — вы это увидите

Статьи для маркетологов

Сервис парсинга цен, позиций карточек товара в Wildberries и Авито

Парсинг конкурентов, анализ цен, позиций карточек товаров конкурентов в Вайлдбериз. Создание таблиц товарного ряда конкурентов на Wildberries, OZON

Дашборд для маркетологов и CEO AmoCRM, Битрикс24, Yclients

Отчёты для РОП. Выгрузка состояния сделок в CRM: статусов лидов, отчёта план-факт по API из любых CRM в базу данных, Power BI, Data Lens, Google Sheets

Бизнес по разработке сервисов для селлеров на маркетплейсах

Идея для бизнеса: разработка системы аналитики, телеграм-бота для селлеров маркетплейсов
Синхронизация остатков, создание штрихкодов, поставок, обработка заказов, автоматизация ставок — автобиддер

Передача конверсий при регистации в Telegram канале или чате

Передача конверсий в Fa..ok, Яндекс, Google при реальных регистраций в Телеграм канале. Лучше чем цель"клик по ссылке Телеграм".

Модуль СМС и Flash-Call верификации заявок с форм на сайте

Хотели бы платить только за качественные заявки с ващего сайта на Tilda, Битрика, Wordpress, OpenCart. Разработка модуля для вашего сайта

Передача оффлайн конверсий из CRM в системы аналитики

Оптимизация рекламных кампаний Яндекс Директ, Google, и др. только по качественным лидам, оптимизация расходов на рекламу

Отслеживание источника трафика для лидов, написавших в Whatspp

Сквозная аналитика для отслеживания источников трафика для бизнеса теряющих UTM-метки при обращении лида в Whatsapp

Блог для селлеров Ozon, Wb