direct Статистика Яндекс Директа за неделю и месяц
Отдаёт статистику Яндекс Директа из отчётов проекта, сформированных за календарную неделю (пн–вс) или месяц (с 1-го по последнее число). Проект адресуется по ID, период — датами, хеш отчёта знать не нужно. Данные берутся из готового отчёта, Директ при запросе не вызывается: ответ быстрый, а для неизменного отчёта всегда одинаковый, включая порядок строк.
Отдаются только базовые метрики — расход с НДС, показы, клики, конверсии, средняя позиция. CTR, CPC, CR, CPA и динамику к прошлому периоду считает клиент. Отчёты формируются в разделе «Отчёты» проекта — вручную или по расписанию; в API попадают те, чей период совпадает с календарной неделей или месяцем.
- Адрес
/api/v1/projects/{project_id}/direct-statistics- Авторизация
- ключ API в заголовке
Authorization: Bearer(или параметромtoken) - Ответ
- JSON, ошибки — HTTP-кодами
- Лимиты
- не тратит; 120 запросов в минуту на ключ
Периоды со сформированным отчётом
/api/v1/projects/{project_id}/direct-statistics/periods
Недели и месяцы, за которые есть полный отчёт с данными Директа, от новых к старым. Отчёт попадает в список, если он сформирован после окончания периода и Директ отдал все блоки; если за период отчётов несколько, берётся последний по generated_at. Будущих и незавершённых периодов в списке нет.
Параметры query
-
project_idint обязательный в адресеID проекта в Пиксель Тулс — виден в адресе страницы проекта. -
period_typestringТолько недели или только месяцы. Без параметра — оба типа. -
limitintСколько периодов отдать, от 1 до 200.
Ответ
-
meta.schema_versionstringВерсия схемы ответа. -
project_idintID проекта. -
periods[]arrayПериоды: сначала поздние; месяц — перед неделей, которая кончается тем же днём.Вложенные поля
-
period_typestringmonthилиweek. -
date_from, date_todateГраницы периода включительно — их передают в direct-statistics. -
report_idstringОтчёт, из которого берутся данные. -
generated_atdatetimeКогда отчёт сформирован, ISO 8601 с часовым поясом.
-
Статистика за период
/api/v1/projects/{project_id}/direct-statistics
Базовые метрики отчёта за неделю или месяц. Схема одинакова для недели и месяца. Отсутствие значения — null, ноль — 0: если кампании весь период стояли, метрики нулевые, это не ошибка. Числа — без форматирования. Строки таблиц — по убыванию spend_vat, при равенстве — по id.
Нет отчёта за период — 404 report_not_found; отчёт ещё формируется или Директ при генерации не отдал часть блоков — 409 report_not_ready.
Параметры query
-
project_idint обязательный в адресеID проекта в Пиксель Тулс — виден в адресе страницы проекта. -
period_typestring обязательныйТип периода. -
date_fromdate обязательныйНачало периода,YYYY-MM-DD: 1-е число месяца или понедельник. -
date_todate обязательныйКонец периода: последнее число того же месяца или воскресенье той же недели. -
sectionsstringСекции через запятую:summary,platforms,campaigns,groups,ads,dynamics,goals,regions,devices,genders,ages. Без параметра — все, кромеads.metaотдаётся всегда. -
include_previousboolДобавитьsummary_previous— итоги предыдущей недели или месяца. -
ads_pageintСтраница секцииads. -
ads_per_pageintОбъявлений на странице, до 2000.
Ответ
-
metaobjectОтчёт и период.Вложенные поля
-
schema_versionstringВерсия схемы ответа. -
project_id, report_idint, stringПроект и отчёт-источник. -
period_type, date_from, date_tostring, dateПериод. -
generated_atdatetimeКогда отчёт сформирован, ISO 8601 с часовым поясом. -
currency, vat_includedstring, boolRUB,true— деньги в рублях с НДС.
-
-
summaryobjectИтоги периода — раздел 1 отчёта «Общая сводка».Вложенные поля
-
spend_vatnumberРасход с НДС, ₽, до 2 знаков. -
impressionsintПоказы. -
clicksintКлики. -
conversionsintКонверсии: по целям из настроек отчёта, без целей — как считает Директ.
-
-
summary_previousobject|nullТолько сinclude_previous=true: итоги предыдущего периода с егоdate_fromиdate_to;null— отчёта за прошлый период нет. -
platforms[]arrayРаздел 2:platform—search(Поиск) иnetwork(РСЯ), обе всегда, + метрики. -
campaigns[]arrayРаздел 3:id,name,platform(null— в отчёте по кампаниям площадки нет), метрики,avg_position.Вложенные поля
-
spend_vatnumberРасход с НДС, ₽, до 2 знаков. -
impressionsintПоказы. -
clicksintКлики. -
conversionsintКонверсии: по целям из настроек отчёта, без целей — как считает Директ. -
avg_positionnumber|nullСредняя позиция показа, 1 знак;null, если показов нет.
-
-
groups[]arrayРаздел 4:id,campaign_id,name, метрики,avg_position.campaign_id—nullв отчётах, сформированных до запуска API. -
adsobjectРаздел 5, только если указан вsections:page,per_page,total,items[]—id,group_id,campaign_id, метрики,avg_position. Объявления — те, что попали в блок отчёта: сколько строк и с какими отборами, задаётся в настройках блока «Сводка по объявлениям».group_idиcampaign_id—nullв отчётах, сформированных до запуска API. -
dynamicsobjectРаздел 6:granularity—month;items[]—date_from,date_to, метрики, по месяцам с начала работы до конца периода. Последний месяц недельного отчёта — неполный, поdate_toпериода. -
goals[]arrayРаздел 7:goal_id,name,conversions— цели из настроек отчёта; целей нет — пустой массив. -
regions[]arrayРаздел 8:region_id,name,clicks,spend_vat. Регионы сведены до областей, как в отчёте; «Не определено» —region_id: null. -
devices[]arrayРаздел 9:device— как в Директе, в нижнем регистре (desktop,mobile,tablet,smart_tv),clicks,spend_vat. -
genders[]arrayРаздел 10:gender—female,male,unknown;clicks,conversions. -
ages[]arrayРаздел 11:age_group—0-17,18-24,25-34,35-44,45-54,55+,unknown;clicks,conversions.
Ошибки
| Код | Сообщение | Когда |
|---|---|---|
401 |
unauthorized |
Ключ не передан или не найден. |
403 |
forbidden |
У владельца ключа нет доступа к проекту. |
404 |
project_not_found, report_not_found |
Проекта нет, или за период нет сформированного отчёта с данными Директа. Различаются полем error, пояснение — в detail. |
409 |
report_not_ready |
Отчёт за период есть, но ещё формируется или Директ при генерации не отдал часть блоков. Повторите позже или переформируйте отчёт. |
422 |
invalid_params |
Неверные параметры: в errors — причина по каждому полю, например границы не совпадают с неделей или месяцем, неизвестная секция. |
429 |
too_many_requests |
Больше 120 запросов в минуту с одним ключом. Через сколько секунд повторить — в заголовке Retry-After. |
500 |
internal |
Внутренняя ошибка. request_id — для обращения в поддержку. |
Ключ
Подходит ключ API из настроек аккаунта: он видит проекты, доступные владельцу. Для сервисного доступа ЛК выдаётся отдельный ключ с доступом ко всем проектам. Методы только читают отчёты и ничего не меняют.
Пример ошибки параметров
HTTP/1.1 422 Unprocessable Entity
{"error":"invalid_params","errors":{"date_to":"month must be calendar: date_from is the 1st, date_to is the last day of the same month"}}