Онлайн- и офлайн-отчет

Выбор режима

В зависимости от параметров и объема данных в отчете, сервер Директа может сформировать отчет в режиме онлайн или офлайн. Режим можно указать в HTTP-заголовке запроса processingMode:

processingMode: online

Отчет формируется в режиме онлайн. Если отчет успешно сформирован, он будет передан в теле ответа. Если отчет не может быть сформирован в режиме онлайн, возвращается ошибка.

processingMode: offline
Отчет ставится в очередь на формирование в режиме офлайн. Проверять готовность отчета нужно с помощью повторных запросов с теми же параметрами, см. подраздел Как проверить готовность офлайн-отчета. Рекомендуемый интервал проверки указан в HTTP-заголовке ответа retryIn. Если формирование отчета завершено успешно, сервер возвращает отчет в теле ответа.
processingMode: auto

Сервер автоматически выбирает режим формирования отчета. Если отчет успешно сформирован в режиме онлайн, он будет передан в теле ответа. Если отчет не может быть сформирован в режиме онлайн, он ставится в очередь на формирование в режиме офлайн. Приложение должно поддерживать оба режима.

Отсутствие заголовка эквивалентно значению auto.

Ограничение. Отчеты с типом SEARCH_QUERY_PERFORMANCE_REPORT могут быть сформированы только в режиме офлайн.

Как проверить готовность офлайн-отчета

Схема запросов и ответов для режимов offline и auto представлена ниже.

Последовательность действий для режима auto:

  1. Отправьте запрос, инициирующий формирование отчета. Укажите в запросе HTTP-заголовок processingMode: auto.

    В ответе сервера указан один из следующих HTTP-кодов:

    • 200 — отчет успешно сформирован в режиме онлайн и передан в теле ответа.

    • 201 — отчет успешно поставлен в очередь на формирование в режиме офлайн. Переходите к шагу 2.

    • 400 — ошибка в параметрах запроса либо превышено ограничение на количество запросов или отчетов в очереди. В этом случае проанализируйте сообщение об ошибке, скорректируйте запрос и отправьте его снова.

    • 500 — при формировании отчета произошла ошибка на сервере. Если для этого отчета ошибка на сервере возникла впервые, попробуйте сформировать отчет заново. Если ошибка повторяется, обратитесь в службу поддержки.

  2. Спустя интервал времени, указанный в HTTP-заголовке ответа retryIn (или другой выбранный вами интервал), отправьте повторный запрос с теми же параметрами.

    В ответе сервера указан один из следующих HTTP-кодов:

    • 200 — отчет успешно сформирован и передан в теле ответа.

    • 202 — формирование отчета еще не завершено. Повторите шаг 2.

    • 500 — при формировании отчета произошла ошибка на сервере. Если для этого отчета ошибка на сервере возникла впервые, попробуйте сформировать отчет заново — вернитесь к шагу 1. Если ошибка повторяется, обратитесь в службу поддержки.