Когда сервис автоматизации, агентская платформа или ИИ-помощник отвечают «этого я не умею», хочется списать это на лень разработчиков. Иногда так и есть. Но у Яндекс Директа довольно много вещей, которых нет в API вовсе, — и никакой сторонний инструмент их не сделает, потому что делать нечем.
Список ниже — не жалоба, а карта. Зная её, вы перестанете искать сервис, который «умеет», и сразу пойдёте делать это в кабинете.
Уточнения нельзя привязать к объявлению
Уточнения — короткие фразы под объявлением вроде «Доставка за 2 часа». Через API их можно создать, прочитать и удалить. Привязать к объявлению — нельзя.
Мы проверили все правдоподобные способы: поле AdExtensions внутри обычного объявления, внутри комбинаторного, в старой версии API и в новой. Ответ везде один: неизвестный параметр. При этом прочитать уже привязанные уточнения API даёт: запрос их возвращает.
То есть связь между объявлением и уточнением существует и видна снаружи, но создаётся только в интерфейсе Директа. Практически это значит: сервис может подготовить вам уточнения списком, но расставить галочки в кампании придётся руками.
Визитку нельзя создать
Та же история: визитки читаются и удаляются через API, а создаются — нет. Ответ при попытке недвусмысленный: создание визиток не поддерживается.
Рекламы в мессенджерах в API нет
Реклама в мессенджерах — относительно новый формат Директа. В API он выглядит существующим: есть тип кампании, есть тип группы, есть тип объявления, у объявления описаны заголовки, тексты, картинки и кнопка.
А работать с ним нельзя. Любая операция — и создание, и даже чтение по фильтру типа — отвечает кодом 3500 «Тип кампании не поддерживается».
Это стоит знать до того, как вы начнёте искать сервис для управления такими кампаниями. Их не ведёт никто, кроме самого кабинета Директа: место под формат в API зарезервировано, но наружу не открыто.
Комбинаторные объявления не правятся в старой версии API
Тонкость, которая стоила нам отдельного расследования.
С 30 июня 2026 года Директ создаёт все новые объявления комбинаторными. При этом изменить такое объявление через пятую версию API нельзя — она отвечает: «Объявление данного типа не поддерживается в v5, используйте v501».
Коварство в другом. Если отправить такой запрос с несуществующим идентификатором, пятая версия ответит «объявление не найдено» — то есть проверку схемы запрос пройдёт. Отказ по типу приходит только тогда, когда объявление реально найдено. Значит, на тестовых данных всё выглядит рабочим, а ломается на настоящих.
Если ваш подрядчик или сервис жалуется, что не может отредактировать объявление, а создавать умеет — почти наверняка дело в этом.
Ставка, приоритет и автотаргетинг одной фразы живут в трёх разных местах
Ключевая фраза в Директе — один объект. Но изменить у неё три вещи одним запросом нельзя, потому что они лежат в трёх разных сервисах:
- ставка — в сервисе ставок;
- приоритет внутри автоматической стратегии — в сервисе приоритетов;
- статус и категории автотаргетинга — в сервисе ключевых фраз.
Попытка передать ставку туда, где лежит сама фраза, отвечает «неизвестный параметр Bid». Приоритет — «неизвестный параметр StrategyPriority». Логики в этом разделении немного, это следы истории, но знать о нём полезно: «поменяйте ставку и приоритет» — это два разных обращения к API, и одно может пройти, а второе нет.
Автотаргетинг — это ключевая фраза с именем ---autotargeting
Ещё одна вещь, которая объясняет странное поведение отчётов.
Автотаргетинг в API не переключатель группы, а псевдофраза с буквальным текстом ---autotargeting. Она появляется в каждой группе сама, вместе с группой. Включить и выключить автотаргетинг — значит запустить или остановить эту фразу; сузить категории — изменить её свойства.
Отсюда два следствия. Во-первых, если вы выгружаете список ключевых фраз, эта строка будет среди них — и её не надо принимать за чей-то недосмотр. Во-вторых, статистика по автотаргетингу собирается там же, где по обычным фразам.
Нельзя узнать, к каким аккаунтам у вас есть доступ
Если вы представитель в чужом рекламном кабинете, доступ работает: указываете логин кабинета и работаете с ним. Но спросить у API, к каким кабинетам у вас есть доступ, нельзя — метода, который вернул бы такой список, нет.
Практически это значит, что любой сервис вынужден спрашивать логин у вас. Если подключение требует вписать логин кабинета руками — это не недоработка, а единственный доступный способ.
Пустой список ошибок — это успех
Напоследок деталь, которая стоит дороже, чем выглядит, — в первую очередь для тех, кто пишет интеграции сам.
Отвечая на пакетный запрос, Директ кладёт в каждый элемент ответа поле с ошибками всегда. У успешной операции это поле присутствует и содержит пустой список.
Проверка «если поле с ошибками есть — значит, не получилось» даёт ровно противоположный результат: каждая успешная операция считается провалом. Мы на этом обожглись сами — пользователи получали «успешно: 0 из 1» на полностью применённых изменениях и подтверждали их повторно.
Проверять нужно длину списка, а не его наличие. И это общее правило для всех пакетных операций Директа: успех одного элемента и провал другого приезжают в одном успешном ответе, и если считать только успехи, потерянные объявления вы заметите нескоро.
Всё перечисленное проверено на живых рекламных кабинетах 13 сентября 2026 года. Ограничения API меняются: то, чего нет сегодня, может появиться — но, как видно по рекламе в мессенджерах, объявленный в API тип ещё не означает работающий.