Ошибки, ограничения и баллы
Используйте этот файл при конкретной ошибке или подготовке запроса. Локальные числа и размеры пакетов берутся из limits.json; ограничения кабинета и валюты уточняются через Clients.get и Dictionaries.get. Не меняйте число наугад, если API сообщает иной предел.
Порядок действий при ошибке
- Прочитайте код, понятное сообщение и идентификатор запроса. Не выводите токен и заголовок авторизации.
- Определите уровень: весь вызов или отдельные объекты внутри успешного HTTP-ответа.
- Покажите, что уже применилось, что не применилось и что осталось неизвестным.
- Временно неудавшееся чтение можно повторить с задержкой. Запись с неизвестным исходом сначала проверяется чтением: повтор может создать дубли.
HTTP 200 не гарантирует успех. При чтении LimitedBy означает следующую страницу; отсутствие запрошенного объекта и неполная выборка — разные ситуации.
Деньги в JSON API обычно выражены миллионными долями валюты кабинета. Денежный формат Reports определяется параметрами запроса. Не смешивайте эти значения и явно называйте валюту, НДС и выбранную модель атрибуции в отчёте.
2. Что ломается чаще всего
| Симптом | Причина | Раздел |
|---|---|---|
error_code 54 на AgencyClients.get |
токен не агентский, это штатный ответ | 9.5 |
| HTTP 200, а объекты не создались | ошибки лежат внутри элементов результата | 9.2 |
| В ответе меньше объектов, чем в кабинете | сработал лимит выборки, вернулся LimitedBy |
4.2 |
| После обновления объявления остался один заголовок | update требует полного комплекта |
API_OBJECTS.md, раздел о ResponsiveAd |
| Бюджет отличается в миллион раз | забыт множитель | 5 |
error_code 506 |
больше пяти одновременных запросов | 4.4 |
error_code 152 |
кончились баллы, ждать начисления | 6.5 |
error_code 53 на методе версии 4 при исправном токене |
токен ушёл заголовком, а четвёртая версия берёт его из тела | 7 |
3. Количественные ограничения
3.1. Длины текстов
| Поле | Ограничение | Слово | Структура |
|---|---|---|---|
| Заголовок комбинаторного объявления | 56 символов с учётом «узких» | 22 символа | ResponsiveAd.Titles[] |
| Текст комбинаторного объявления | 81 символ без учёта «узких» + 15 «узких» | 23 символа | ResponsiveAd.Texts[] |
| Заголовок 1 текстово-графического | 56 символов с учётом «узких» | 22 символа | TextAd.Title |
| Заголовок 2 текстово-графического | 30 символов без учёта «узких» + 15 «узких» | 22 символа | TextAd.Title2 |
| Текст текстово-графического | 81 символ без учёта «узких» + 15 «узких» | 23 символа | TextAd.Text |
| Текст динамического объявления | 81 символ без учёта «узких» + 15 «узких» | 23 символа | DynamicTextAd.Text |
| Заголовок объявления для приложений | 56 символов с учётом «узких» | 22 символа | MobileAppAd.Title |
| Текст объявления для приложений | 75 символов с учётом «узких» | 23 символа | MobileAppAd.Text |
| Ссылка на сайт | 1024 символа, с протоколом и доменом | — | Href во всех структурах |
| Отображаемая ссылка | 20 символов | — | DisplayUrlPath |
| Заголовок быстрой ссылки | 30 символов | — | Sitelink.Title |
| Описание быстрой ссылки | 60 символов | — | Sitelink.Description |
| Адрес быстрой ссылки | 1024 символа, с протоколом и доменом | — | Sitelink.Href |
| Уточнение | 25 символов | — | AdExtension.Callout.CalloutText |
| Трекинговые параметры группы | 1024 символа | — | AdGroup.TrackingParams |
| Ссылка на приложение в магазине | 1024 символа | — | MobileAppAdGroup.StoreUrl |
| Домен динамической группы | 100 символов | — | DynamicTextAdGroup.DomainUrl |
| Название кампании | 255 символов | — | Campaign.Name |
| Название клиента | 255 символов | — | Campaign.ClientInfo |
| Название группы | от 1 до 255 символов | — | AdGroup.Name |
| Название набора минус-фраз | 255 символов | — | NegativeKeywordSharedSet.Name |
| Название условия ретаргетинга | 250 символов | — | RetargetingList.Name |
| Примечание к условию ретаргетинга | 4096 символов | — | RetargetingList.Description |
| Наименование изображения | 255 символов | — | AdImage.Name |
| Название фида | 255 символов | — | Feed.Name |
| Ссылка на фид | 1024 символа | — | Feed.Url |
| Логин доступа к фиду | 50 символов | — | Feed.Login |
| Имя файла фида | 255 символов | — | Feed.Filename |
| Элемент списка запрещённых площадок | 255 символов | — | Campaign.ExcludedSites[] |
| То же для видеообъявлений | 255 символов | — | CpmBannerCampaign.ExcludedSitesForVideoAds[] |
| Строка счётчика показов | 1024 символа | — | TrackingPixels[] |
3.3. Ключевые фразы и минус-фразы
| Величина | Значение |
|---|---|
| Длина ключевой фразы | 4096 символов, включая минус-слова, пробелы и операторы |
| Слов в ключевой фразе | 7, без учёта стоп-слов и минус-слов |
| Длина слова во фразе | 35 символов, без учёта минуса перед минус-словом |
Оператор ! перед минус-словом |
в длине не учитывается, -! считается одним символом |
| Ключевых фраз в группе | 200 (значение по умолчанию, см. 3.6) |
| Автотаргетингов в группе | 1 |
| Суммарная длина минус-фраз группы | 4096 символов; пробелы, дефисы и операторы не считаются |
| Суммарная длина минус-фраз кампании | 20 000 символов; пробелы, дефисы и операторы не считаются |
| Суммарная длина минус-фраз набора | 4096 символов; пробелы, дефисы и операторы не считаются |
| Слов в минус-фразе | 7 |
| Длина слова в минус-фразе | 35 символов |
| Наборов минус-фраз на группу или кампанию | 3 |
| Наборов минус-фраз у пользователя | 30 |
Значение UserParam1, UserParam2 |
255 символов |
3.4. Количества объектов
| Величина | Значение |
|---|---|
| Кампаний на кабинет, всего | 3000 |
| Кампаний на кабинет, неархивных | 1000 |
| Групп в кампании | 1000 |
| Объявлений в группе | 50 |
| Комбинаторных объявлений в группе, неархивных | 3 |
| Комбинаторных объявлений в группе с учётом архивных | 10 |
Товарных объявлений (ShoppingAd) в группе ЕПК |
1 неархивное |
Объявлений для страниц каталога (ListingAd) в группе ЕПК |
1 неархивное |
| Заголовков в комбинаторном объявлении | от 1 до 7 |
| Текстов в комбинаторном объявлении | от 1 до 3 |
| Изображений в комбинаторном объявлении | от 1 до 5 |
| Видеодополнений в комбинаторном объявлении | от 1 до 6 |
| Быстрых ссылок в наборе | от 1 до 8 |
| Кампаний в одной пакетной стратегии | 100 |
| Пакетных стратегий у пользователя | 1500, из них неархивных 500 |
| Наборов быстрых ссылок на объявление | 1 или ни одного |
| Уточнений на объявление | 50 |
Расширений в AdExtensionIds |
50 |
| Изображений у пользователя | 1000 + 2 × количество объявлений |
| Изображений на объявление, кроме комбинаторного | 1 или ни одного |
| Видео на объявление, кроме комбинаторного | 1 или ни одного |
| Фидов у пользователя | 50 |
| Условий ретаргетинга у пользователя | 2000 |
| Правил отбора в условии ретаргетинга | от 1 до 50 |
| Целей или сегментов в правиле отбора | от 1 до 250 |
| Правил на основе сегментов по интересам | 3 |
| Интересов в правиле по интересам | 10 |
Условий нацеливания в группе TEXT_AD_GROUP, MOBILE_APP_AD_GROUP |
50 |
Условий с типом AUDIENCE в TEXT_AD_GROUP |
1 |
Ключевых целей в стратегии (PriorityGoals) |
от 1 до 30 |
| То же для стратегий по нескольким целям | не менее 2 |
Текстов по умолчанию (DefaultTexts) в товарном объявлении |
ровно 1 при передаче; у ShoppingAd обязателен при создании, при частичной правке можно опустить |
Запрещённых IP-адресов (BlockedIps) |
25 |
Запрещённых площадок (ExcludedSites) |
1000 |
Запрещённых площадок для видеообъявлений (ExcludedSitesForVideoAds) |
100 |
Элементов временного таргетинга (Schedule) |
7, по 25 чисел в каждом |
Почасовой коэффициент в Schedule |
0…200 %, кратно 10; 0 — показов в этот час нет |
Коэффициент в праздники (HolidaysSchedule.BidPercent) |
10…200 %, кратно 10 |
Начало показов в праздники (StartHour) |
0…23 |
Окончание показов в праздники (EndHour) |
1…24 |
Срок выполнения цели (MembershipLifeSpan) |
от 1 до 540 дней |
Условий нацеливания в CPM_BANNER_AD_GROUP с подтипом USER_PROFILE |
1 |
Условий нацеливания в CPM_VIDEO_AD_GROUP |
1 |
| Фильтров в правилах отбора товаров | 30, суммарно не более 65 КБайт JSON |
| Тип корректировки | Сколько на кампанию или группу | Диапазон коэффициента |
|---|---|---|
| На мобильных | 1 | 0…1300 % |
| На компьютерах, планшетах, Smart TV | — | 0…1300 % |
| Для видеодополнений | 1 | 50…1300 % |
| По полу и возрасту | 12 | 0…1300 % |
| Для целевой аудитории | 100 | 0…1300 % |
| Эксклюзивное размещение, платежеспособность, на группу | — | 1…1300 % |
| По региону показа | — | 10…1300 % |
| Для смарт-баннеров | — | 20…1300 % |
3.5. Медиа
| Правило | Соотношение сторон | Размер |
|---|---|---|
| Квадрат и близкие | от 3:4 до 4:3, то есть от 0,75 до 1,3333 | обе стороны от 450 до 5000 пикселей |
| Широкое | 16:9 с допуском ±0,005, то есть от 1,7728 до 1,7828 | от 1080 × 607 до 5000 × 2812 |
| Правило | Край | Принято | Отвергнуто |
|---|---|---|---|
| стороны 450…5000 | нижний | 450 × 450 → REGULAR |
449 × 449 → 5004 |
| ^ | верхний | 5000 × 5000 → REGULAR |
5001 × 5001 → 5004 |
| 16:9 от 1080 × 607 | нижний | 1080 × 607 → WIDE |
1079 × 607 → 5004 |
| ^ | верхний | 5000 × 2812 → WIDE |
не пробовался |
3.6. Лимиты кабинета читаются из Clients.get
| Элемент | Что ограничивает |
|---|---|
CAMPAIGNS_TOTAL_PER_CLIENT |
кампаний у рекламодателя |
CAMPAIGNS_UNARCHIVED_PER_CLIENT |
кампаний вне архива |
ADGROUPS_TOTAL_PER_CAMPAIGN |
групп в кампании |
ADS_TOTAL_PER_ADGROUP |
объявлений в группе |
KEYWORDS_TOTAL_PER_ADGROUP |
ключевых фраз в группе |
AD_EXTENSIONS_TOTAL |
расширений у рекламодателя |
STAT_REPORTS_TOTAL_IN_QUEUE |
одновременно формируемых отчётов |
FORECAST_REPORTS_TOTAL_IN_QUEUE |
хранимых прогнозов бюджета |
WORDSTAT_REPORTS_TOTAL_IN_QUEUE |
хранимых отчётов по статистике запросов |
API_POINTS |
суточный лимит баллов |
GENERAL_DOMAIN_BLACKLIST_SIZE |
запрещённых площадок |
VIDEO_DOMAIN_BLACKLIST_SIZE |
запрещённых площадок для видео |
Ключ в limits.json |
Элемент Restrictions |
|---|---|
campaigns_per_client |
CAMPAIGNS_TOTAL_PER_CLIENT |
unarchived_campaigns_per_client |
CAMPAIGNS_UNARCHIVED_PER_CLIENT |
adgroups_per_campaign |
ADGROUPS_TOTAL_PER_CAMPAIGN |
ads_per_adgroup |
ADS_TOTAL_PER_ADGROUP |
keywords_per_adgroup |
KEYWORDS_TOTAL_PER_ADGROUP |
ad_extensions_per_client |
AD_EXTENSIONS_TOTAL |
excluded_sites |
GENERAL_DOMAIN_BLACKLIST_SIZE |
excluded_sites_for_video_ads |
VIDEO_DOMAIN_BLACKLIST_SIZE |
4. Батчи, выборка, параллелизм
4.1. Сколько объектов допускается за один вызов
| Метод | Предел | Метод | Предел |
|---|---|---|---|
AdExtensions.add |
1000 | AdExtensions.delete |
10 000 |
AdGroups.add |
1000 | AdGroups.delete |
10 000 |
AdGroups.update |
1000 | AdImages.add |
100 (рекомендуется 3) |
AdImages.delete |
10 000 | Ads.add |
1000 |
Ads.update |
1000 | Ads.delete |
10 000 |
Ads.archive |
10 000 | Ads.unarchive |
10 000 |
Ads.suspend |
10 000 | Ads.resume |
10 000 |
Ads.moderate |
10 000 | AdVideos.add |
10 ссылок или 1 файл |
AgencyClients.add |
100 клиентов в день | AgencyClients.update |
1000 |
AudienceTargets.add |
1000 | AudienceTargets.delete |
10 000 |
AudienceTargets.suspend |
10 000 | AudienceTargets.resume |
10 000 |
BidModifiers.add |
1000 | BidModifiers.set |
1000 |
BidModifiers.delete |
1000 | Creatives.add |
10 видео |
Campaigns.add |
10 | Campaigns.update |
10 |
Campaigns.delete |
1000 | Campaigns.archive |
1000 |
Campaigns.unarchive |
1000 | Campaigns.suspend |
1000 |
Campaigns.resume |
1000 | Feeds.add |
50 |
Feeds.update |
50 | Feeds.delete |
50 |
Keywords.add |
1000 | Keywords.update |
1000 |
Keywords.delete |
10 000 | Keywords.suspend |
10 000 |
Keywords.resume |
10 000 | KeywordsResearch.deduplicate |
400 000 |
NegativeKeywordSharedSets.add |
30 | NegativeKeywordSharedSets.update |
30 |
NegativeKeywordSharedSets.delete |
30 | RetargetingLists.add |
1000 |
RetargetingLists.update |
1000 | RetargetingLists.delete |
1000 |
Sitelinks.add |
1000 | Sitelinks.delete |
1000 |
Strategies.archive |
10 000 | Strategies.unarchive |
10 000 |
4.2. Постраничная выборка
| Параметр | Значение |
|---|---|
Limit |
от 0 до 10 000; если не указан — 10 000 |
Offset |
сколько объектов пропустить; если не указан — 0 |
| Метод и поле | Диапазон |
|---|---|
Ads.get — Ids |
1…10 000 |
Ads.get — AdGroupIds |
1…1000 |
Ads.get — CampaignIds |
1…10 |
Ads.get — VCardIds, SitelinkSetIds, AdImageHashes, AdExtensionIds |
1…50 |
AdImages.get — AdImageHashes |
до 10 000 |
AdGroups.get — Ids |
1…10 000 |
AdGroups.get — CampaignIds |
1…10 |
Campaigns.get — Ids |
до 1000 |
Keywords.get — Ids |
1…10 000 |
Keywords.get — AdGroupIds |
1…1000 |
Keywords.get — CampaignIds |
1…10 |
Creatives.get — Ids |
1…10 000 |
AdExtensions.get — Ids |
до 10 000 |
AgencyClients.get — Logins |
до 10 000 |
Strategies.get — Ids |
до 1000 |
4.3. Дубли внутри одного запроса
| Методы | Что происходит при повторе идентификатора |
|---|---|
update, set, delete |
операция не выполняется для всех дублей, возвращается ошибка 9800; остальные объекты обрабатываются |
suspend, resume, moderate, archive, unarchive |
операция выполняется, для повторов возвращается предупреждение 10000 |
6. Баллы
6.3. Стоимость успешных вызовов
| Сервис | Метод | За вызов | За объект |
|---|---|---|---|
| AdExtensions | add | 5 | 1 |
| AdExtensions | delete | 10 | 1 |
| AdExtensions | get | 5 | 1 |
| AdGroups | add | 20 | 20 |
| AdGroups | delete | 10 | 0 |
| AdGroups | get | 15 | 1 |
| AdGroups | update | 20 | 20 |
| AdImages | add | 20 | 20 |
| AdImages | delete | 10 | 0 |
| AdImages | get | 15 | 1 |
| Ads | add | 20 | 20 |
| Ads | archive | 15 | 0 |
| Ads | delete | 10 | 0 |
| Ads | get | 15 | 1 |
| Ads | moderate | 15 | 0 |
| Ads | resume | 15 | 0 |
| Ads | suspend | 15 | 0 |
| Ads | unarchive | 40 | 0 |
| Ads | update | 20 | 20 |
| AgencyClients | add | 10 | 1 |
| AgencyClients | get | 10 | 1 |
| AgencyClients | update | 10 | 1 |
| AudienceTargets | add | 10 | 2 |
| AudienceTargets | delete | 10 | 2 |
| AudienceTargets | get | 1 | 1 |
| AudienceTargets | resume | 10 | 2 |
| AudienceTargets | setBids | 10 | 2 |
| AudienceTargets | suspend | 10 | 2 |
| Bids | get | 15 | 3 за каждые 2000 фраз |
| Bids | set | 25 | 0 |
| Bids | setAuto | 25 | 0 |
| BidModifiers | add | 15 | 1 |
| BidModifiers | delete | 15 | 0 |
| BidModifiers | get | 1 | 0 |
| BidModifiers | set | 2 | 0 |
| Businesses | get | 10 | 1 |
| Campaigns | add | 10 | 5 |
| Campaigns | archive | 10 | 5 |
| Campaigns | delete | 10 | 2 |
| Campaigns | get | 10 | 1 |
| Campaigns | resume | 10 | 5 |
| Campaigns | suspend | 10 | 5 |
| Campaigns | unarchive | 10 | 5 |
| Campaigns | update | 10 | 3 |
| Changes | check | 10 | 0 |
| Changes | checkCampaigns | 10 | 0 |
| Changes | checkDictionaries | 10 | 0 |
| Clients | get | 10 | 0 |
| Clients | update | 10 | 1 |
| Creatives | get | 15 | 1 |
| Dictionaries | get | 1 | 0 |
| DynamicTextAdTargets | add | 20 | 5 |
| DynamicTextAdTargets | delete | 10 | 1 |
| DynamicTextAdTargets | get | 15 | 1 |
| DynamicTextAdTargets | resume | 10 | 1 |
| DynamicTextAdTargets | setBids | 25 | 0 |
| DynamicTextAdTargets | suspend | 10 | 1 |
| Feeds | add | 20 | 20 |
| Feeds | delete | 10 | 0 |
| Feeds | get | 15 | 1 |
| Feeds | update | 20 | 20 |
| KeywordBids | get | 15 | 3 за каждые 2000 фраз |
| KeywordBids | set | 25 | 0 |
| KeywordBids | setAuto | 25 | 0 |
| Keywords | add | 20 | 2 |
| Keywords | delete | 10 | 1 |
| Keywords | get | 15 | 3 за каждые 2000 фраз при запросе Productivity, StatisticsSearch или StatisticsNetwork; иначе 1 за каждые 2000 |
| Keywords | resume | 15 | 0 |
| Keywords | suspend | 15 | 0 |
| Keywords | update | 20 | 2 |
| KeywordsResearch | deduplicate | 10 | 0 |
| KeywordsResearch | hasSearchVolume | 1 | 0 |
| Leads | get | 1 | 1 |
| NegativeKeywordSharedSets | add | 20 | 20 |
| NegativeKeywordSharedSets | delete | 10 | 0 |
| NegativeKeywordSharedSets | get | 15 | 1 |
| NegativeKeywordSharedSets | update | 20 | 20 |
| RetargetingLists | add | 10 | 2 |
| RetargetingLists | delete | 10 | 2 |
| RetargetingLists | get | 1 | 1 |
| RetargetingLists | update | 10 | 2 |
| Sitelinks | add | 20 | 20 |
| Sitelinks | delete | 10 | 0 |
| Sitelinks | get | 15 | 1 |
| SmartAdTargets | add | 20 | 5 |
| SmartAdTargets | delete | 10 | 1 |
| SmartAdTargets | get | 15 | 1 |
| SmartAdTargets | resume | 10 | 1 |
| SmartAdTargets | setBids | 10 | 0 |
| SmartAdTargets | suspend | 10 | 1 |
| SmartAdTargets | update | 10 | 1 |
| TurboPages | get | 15 | 1 |
| VCards | add | 20 | 20 |
| VCards | delete | 10 | 0 |
| VCards | get | 15 | 1 |
6.4. Чьи баллы списываются
| Кто выполняет запрос | Заголовок Use-Operator-Units |
С кого списываются |
|---|---|---|
| Представитель рекламодателя | любой | с рекламодателя |
| Представитель агентства | отсутствует | с рекламодателя — клиента агентства |
| Представитель агентства | true |
с агентства |
7. Заголовки
| Заголовок запроса | Назначение |
|---|---|
Authorization: Bearer <токен> |
обязателен; отсутствие или неверный формат — код 8000, недействительный токен — 53 |
Client-Login |
логин клиента агентства; обязателен для запросов от имени агентства, кроме сервиса AgencyClients |
Use-Operator-Units: true |
списывать баллы агентства; допустим только в запросах от агентства |
Accept-Language |
ru, en, tr; по умолчанию английский |
Accept-Encoding: gzip |
сжатие ответа |
Payment-Token |
финансовый токен для финансовых методов |
| Заголовок ответа | Назначение |
|---|---|
RequestId |
идентификатор запроса; возвращается и при успехе, и при ошибке — указывается при обращении в поддержку |
Units |
израсходовано / остаток / суточный лимит |
Units-Used-Login |
чьи баллы списаны |
9. Коды ошибок
9.1. Серверные ошибки
| Код | Сообщение | Что произошло | Что делать скиллу |
|---|---|---|---|
| 52 | Сервер авторизации временно недоступен | API не может получить данные от Яндекс.OAuth | повторить с экспоненциальной задержкой |
| 1000 | Сервер временно недоступен | внутренняя ошибка API | повторить с задержкой; при повторении — в поддержку |
| 1001 | Ошибка инициализации сервиса | — | повторить с задержкой |
| 1002 | Ошибка операции | — | повторить с задержкой |
| 1003 | Не удалось создать учётную запись | сбой при создании пользователя | повторить с задержкой |
| 1004 | Не удалось создать клиента | сбой при создании клиента | повторить с другим логином |
| 1020 | Внутренняя ошибка сервера | не определён список валют | не повторять, в поддержку |
9.2. Доступ и аутентификация
| Код | Сообщение | Что произошло | Что делать скиллу |
|---|---|---|---|
| 53 | Ошибка авторизации | токен недействителен | не повторять; сообщить, что токен истёк, и указать config/README.md |
| 54 | Нет прав | см. 9.5 | зависит от вызова |
| 58 | Незавершённая регистрация | нет подтверждённой заявки на доступ к API | не повторять; объяснить процедуру заявки |
| 513 | Ваш логин не подключен к Яндекс Директу | у пользователя нет аккаунта в Директе | не повторять; предложить создать кампанию в интерфейсе |
| 3000 | Нет доступа к API | доступ закрыт, идёт перевод в валюту, или запрещён этот IP | не повторять; назвать три возможные причины |
| 3001 | Нет доступа к методу | AgencyClients.add открывается агентству по заявке |
не повторять |
9.3. Ограничения и баллы
| Код | Сообщение | Что произошло | Что делать скиллу |
|---|---|---|---|
| 152 | Недостаточно баллов | суточный лимит исчерпан | ждать следующего интервала; под агентским токеном — предложить Use-Operator-Units |
| 506 | Превышено ограничение на количество соединений | больше пяти одновременных запросов | снизить параллелизм и повторить |
| 9300 | Превышено ограничение на количество объектов в одном запросе | батч больше допустимого | разрезать пакет по 4.1 и повторить |
| 9301 | Слишком широкое условие отбора | сумма Limit и Offset больше 120 000 |
сузить выборку |
| 7000 | Количество допустимых элементов превышено или равно нулю | нарушен диапазон элементов | исправить состав объекта, не повторять как есть |
| 7001 | Достигнуто максимальное количество объектов | упёрлись в лимит кабинета | перечитать Restrictions, сообщить пользователю |
| 7002 | Данный домен трекинговой системы не поддерживается | — | не повторять |
9.4. Данные объекта
| Код | Сообщение | Частая причина |
|---|---|---|
| 3500 | Не поддерживается | корректировка несовместима с типом кампании |
| 3600 | Ограниченная функциональность | попытка использовать PAY_FOR_CONVERSION |
| 4000 | Параметры запроса указаны неверно | параметры не соответствуют типу объекта; неверная структура стратегии; неверный формат даты или часовой пояс |
| 4001 | Неверно заданы параметры фильтрации SelectionCriteria |
превышено число идентификаторов; не задан ни один критерий |
| 4002 | Неверно указаны параметры страницы | неверные Limit или Offset |
| 4003 | Не передано ни одного из необходимых параметров | пуста обязательная совокупность |
| 4004 | Передан больше чем один параметр | заданы взаимоисключающие параметры |
| 4005 | В одном запросе необходимо использовать Id одного типа |
при назначении ставок смешаны разнородные объекты |
| 4006 | В одном запросе заданы несовместимые операции | уточнения правятся либо ADD/REMOVE, либо SET |
| 5000 | Поле обязательно для заполнения | значение пустое или из пробелов |
| 5001 | Превышена допустимая длина | превышена длина поля или суммарная длина текстов быстрых ссылок |
| 5002 | Используются недопустимые символы | недопустимый символ во фразе, минус-фразе или тексте быстрой ссылки; отдельно стоящий ! |
| 5003 | Указано пустое значение | пустая строка, например в Href |
| 5004 | Неверный формат | некорректный адрес, телефон, часы работы; неподходящий тип или размер изображения — два разных сообщения, см. ниже |
| 5005 | Поле задано неверно | идентификатор не целое положительное; недопустимая валюта клиента; ссылка на несуществующее изображение; пустой RegionIds; ставка вне диапазона |
| 5006 | Неверное использование поля | стратегия не соответствует типу кампании; слишком длинное слово; пробел перед запятой; основная ссылка дублирует быструю |
| 5007 | Повторяющийся элемент | совпадают тексты быстрых ссылок или их адреса |
| 5008 | Не передано ни одного из необходимых полей | пуста обязательная совокупность полей |
| 5009 | Передано больше чем одно поле | заданы взаимоисключающие поля |
| 5010 | Некорректная длина поля; у загрузки изображения — «Превышен допустимый размер файла» | поле слишком короткое; вес файла изображения больше 10 МБ — см. ниже |
| 5100 | Неправильное использование шаблона | некорректные ## в заголовке или тексте |
| 5120 | Геотаргетинг задан неправильно | несуществующий регион; повтор региона; только минус-регионы |
| 5140 | Ключевая фраза содержит много слов | больше семи слов |
| 5141 | Некорректное использование стоп-слов | фраза состоит только из стоп-слов |
| 5142 | Превышена допустимая длина слова в ключевой фразе | слово длиннее 35 символов |
| 5160 | Минус-слово не может быть словосочетанием | минус-слово с пробелом |
| 5161 | Некорректное использование минус-слов | фраза только из минус-слов; точка или апостроф в минус-слове; превышена суммарная длина |
| 5162 | Превышена допустимая длина минус-слова | — |
| 5181 | Запрещено изменять рекламируемое приложение | — |
| 5200 | Логин уже используется | логин занят другим пользователем Яндекса |
| 6000 | Неконсистентное состояние объекта | тип объекта не соответствует родителю; набор быстрых ссылок без основной ссылки; попытка удалить используемый набор |
| 6001 | Указан объект несоответствующего типа | фраза в группе динамических объявлений; автотаргетинг в неподдерживаемой группе |
| 6100 | Регион показа не соответствует тексту объявления | смена регионов нарушила соответствие языку |
| 6101 | Язык не соответствует геотаргетингу | объявление на языке, не разрешённом для регионов группы |
| 55 | Операция не найдена | неверное значение ключа method |
| 8000 | Некорректный запрос | нет токена; неизвестный или обязательный параметр; невалидный JSON; значение вне набора FieldNames |
| 8300 | Неверный статус у объекта | операция с объектом в архивной кампании; модерация не-черновика; архивация активного объявления |
| 8301 | Невозможно удалить объект | группа содержит объявления или условия показа; удаление единственной активной фразы; на кампании есть средства; изображение привязано к объявлению |
| 8302 | Невозможно остановить показы | попытка остановить единственную активную фразу |
| 8303 | Невозможно заархивировать объект | на кампании есть средства, она не остановлена или это черновик — см. ниже |
| 8304 | Невозможно разархивировать объект | кампания в состоянии CONVERTED; превышен лимит активных кампаний |
| 8312 | Отчёт невозможно построить в режиме online | нужен офлайн-режим, заголовок processingMode |
| 8600 | Ошибка подключения общего счёта | — |
| 8800 | Объект не найден | несуществующий логин в Client-Login; идентификатор чужого или удалённого объекта |
| 9600 | Поле не соответствует установленной стратегии | отсутствует поле, обязательное при этой стратегии |
| 9601 | Не допускается изменение ставки | автоматическая стратегия; показы на площадке отключены |
| 9800 | Объект не может присутствовать в запросе более одного раза | дубль идентификатора в update, set или delete |
| 9801 | Объект с указанными характеристиками уже существует | повторное добавление той же корректировки |
| 9802 | Элемент не может присутствовать в списке более одного раза | повторы в BlockedIps, CounterIds, NegativeKeywords, Schedule, TargetDeviceType, уточнениях |
Отказы загрузки изображения — дословно
| Что отправлено | Код | Сообщение | Подробность |
|---|---|---|---|
| JPG 450 × 700 — соотношение 0,64 | 5004 | Неверный формат | Размер изображения некорректен |
| JPG 1000 × 600 — соотношение 1,67, между 4:3 и 16:9 | 5004 | Неверный формат | Размер изображения некорректен |
| JPG 449 × 449 — сторона на пиксель меньше 450 | 5004 | Неверный формат | Размер изображения некорректен |
| JPG 5001 × 5001 — сторона на пиксель больше 5000 | 5004 | Неверный формат | Размер изображения некорректен |
| JPG 1079 × 607 — на пиксель уже нижней границы правила 16:9 | 5004 | Неверный формат | Размер изображения некорректен |
| WEBP 600 × 600 | 5004 | Неверный формат | Недопустимый тип файла изображения, используйте графические форматы GIF, JPEG, PNG |
| 40 000 случайных байт — не изображение вовсе | 5004 | Неверный формат | Недопустимый тип файла изображения, используйте графические форматы GIF, JPEG, PNG |
| PNG 2000 × 1900 в 11 416 979 байт | 5010 | Превышен допустимый размер файла | Размер файла изображения больше допустимого (10 МБ) |
AdImages.delete на изображении, привязанном к объявлению |
8301 | Невозможно удалить объект | Невозможно удалить привязанное изображение |
9.6. Предупреждения
| Код | Сообщение |
|---|---|
| 10000 | Объект присутствует в запросе более одного раза |
| 10020 | Объект уже остановлен |
| 10021 | Объект не остановлен |
| 10022 | Объект уже заархивирован |
| 10025 | Объект уже помечен как удалённый |
| 10100 | Указанная визитка дублирует ранее созданную визитку |
| 10120 | Указанный набор быстрых ссылок дублирует ранее созданный набор |
| 10140 | Ключевое слово уже существует |
| 10141 | Новое ключевое слово создано в результате обновления |
| 10160 | Ставка не будет применена |
| 10161 | Приоритет не будет применён |
| 10163 | Настройка не будет изменена |
| 10165 | Параметр не будет применён |
| 10175 | Будет использована настройка с более высоким приоритетом |
| 10200 | Объявление уже остановлено |
| 10201 | Объявление не остановлено |
| 10202 | Объявление уже заархивировано |
| 10203 | Объявление не заархивировано |
| 10240 | Ключевое слово уже остановлено |
| 10241 | Ключевое слово не остановлено |
| 10242 | Условие нацеливания уже остановлено |
| 10243 | Условие нацеливания не остановлено |
10. Стратегия повторов
| Класс | Коды | Повтор |
|---|---|---|
| Серверные | 52, 1000, 1001, 1002, 1003 | да, с экспоненциальной задержкой; баллы за них не списываются |
| Серверные, но с правкой тела | 1004 | да, с задержкой и другим логином: с тем же запросом повтор бессмыслен |
| Серверные, невосстановимые | 1020 | нет, в поддержку |
| Параллелизм | 506 | да, снизив число одновременных запросов |
| Баллы | 152 | да, но не раньше следующего часового интервала |
| Права и доступ | 53, 58, 513, 3000, 3001 | нет, требуется действие человека |
| Данные объекта | 3500, 3600, 4xxx, 5xxx, 6xxx, 7xxx, 8xxx, 9xxx | нет, повтор даст тот же результат |
AgencyClients.get → 54 |
54 | не повтор, а ветка логики |
Практические замечания
Узкие символы !,.;:" могут считаться отдельно от обычных символов текста объявления. Решётки шаблона не входят в его длину; обычная решётка фрагмента URL входит. Для правильного расчёта используйте штатную проверку, а не простое обрезание строки.
Ошибка 54 от AgencyClients.get может означать, что токен принадлежит прямому рекламодателю. Проверьте через Clients.get; не объявляйте токен испорченным по одному этому ответу. Ошибка 58 означает незавершённый доступ приложения: API_ACCESS.md.
При нехватке баллов остановите требующие их операции и назовите причину. Агентский доступ может использовать баллы агентства по поддержанному механизму; это не повод менять выбранный кабинет. Остаток v4 и v5 не смешивается.
Если пакет применился частично, продолжайте только с установленным результатом по каждому объекту. Полного автоматического отката нескольких успешных API-запросов Директ не обещает. Журнал прежних значений помогает восстановить поля, но не возвращает удалённому объекту его историю.
Источники: ограничения API, справочник API.