MCP для Claude и ChatGPT

Что умеет MCP для Директа, VK и Авито Рекламы

Подключите рекламу к Claude или ChatGPT и управляйте ей словами: «где уходят деньги впустую?», «поставь недельный бюджет 30 000», «собери кампанию по этим ключам». Ниже — каналы, команды и полный набор инструментов.

Что подключается к ассистенту

131
инструмент
19
разделов
11
сценариев
6+
ИИ-клиентов

Работает в Claude (Desktop, веб, Code) и ChatGPT по ссылке-коннектору; в Cursor, VS Code, Cline, Zed и других MCP-клиентах — через мост mcp-remote.

Команды обычными словами

Имена инструментов знать не нужно — пишете задачу как человеку, ассистент сам выбирает и вызывает нужное. Вот типичные примеры.

Аналитика

  • «Где я теряю деньги за последние 14 дней?»
  • «Разложи расходы по устройствам и гео — где горит бюджет?»
  • «Диагностируй, почему просели конверсии за неделю.»
  • «Сделай сводку по всем аккаунтам.»
  • «Покажи расход и результаты кампаний VK Рекламы за неделю.»
  • «Покажи статистику кампаний Авито Рекламы за последние 14 дней.»

Управление

  • «Поставь недельный бюджет 30 000 на кампанию «Ремонт — Поиск».»
  • «Подними ставки на топ-ключах с ROAS выше 3.»
  • «Добавь мусорные запросы в минус-слова.»
  • «Поставь на паузу кампании с нулевыми конверсиями.»
  • «Останови неэффективную кампанию VK Рекламы.»

Слова и сборка

  • «Собери семантику по «увлажнитель воздуха», регион Москва.»
  • «Покажи сезонность спроса на этот запрос.»
  • «Собери кампанию из этих ключей с UTM-метками.»
  • «Сгенерируй баннер для товара и проверь тексты объявлений.»

Готовые сценарии в один клик

В Claude видны как slash-команды коннектора — запускают целый набор действий разом.

/morning_check
Утренняя пятиминутка

Быстрая проверка аккаунта: сводка, алёрты, три главных действия на сегодня.

/cleanup_waste
Вычистить лишние траты

Найти лишние траты, согласовать список правок и применить одобренные.

/client_report
Отчёт клиенту за неделю

Готовый текст отчёта для клиента: динамика, сделанное, план на следующую неделю.

/collect_semantics
Собрать семантику под нишу

Wordstat: подбор фраз, сезонность, чистка шума, кластеры по интентам — и раскладка в кампанию ключами/минус-фразами.

/build_campaign
Собрать кампанию под нишу

Полный цикл: Wordstat → структура → кампания, группы, объявления, ключи, минус-фразы.

/clean_placements
Почистить площадки РСЯ

Найти площадки, где расход есть, а заявок нет, согласовать список и исключить одобренные.

/negatives_from_queries
Минус-фразы из поисковых запросов

Разобрать поисковые запросы, найти нецелевые и добавить их в минус-фразы после согласования.

/dedupe_keywords
Дубли ключевых фраз и кросс-минусовка

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

/boost_best_keywords
Ставки на лучших фразах

Найти фразы с заявками дешевле целевой цены и предложить поднять по ним ставки.

/rebalance_budget
Перераспределить бюджет

Перенести деньги из кампаний, которые не окупаются, в окупающиеся кампании, которым не хватает бюджета.

/tired_ads
Выгоревшие объявления

Найти объявления, у которых при прежних показах упал CTR, и предложить им замену текста.

Полный набор инструментов

Ровно то, что видит Claude после подключения. Пометка «правка» — инструмент меняет аккаунт; «опасно» — перезаписывает или удаляет, и ИИ-клиент попросит подтверждение перед действием.

Показать все 131 инструмент

Сводка и ИИ-аналитика

14

С чего начинать разговор: общая картина, находки и выводы в деньгах.

  • Мастер-дашбордчтение

    Сводка по аккаунту за период: ключевые метрики, оценка неэффективных расходов, топ-проблемы и приоритизированные рекомендации с готовыми действиями. В total, кроме денег и заявок, приходит поведение людей на сайте по данным Метрики: отказы (bounces), визиты (sessions), доля отказов (bounceRate, % от визитов) и глубина просмотра (avgPageviews). behaviorMeasured:false означает «счётчик Метрики не привязан, поведение не измеряли», а не «отказов нет» — вердикта о качестве сайта из этого выносить нельзя.

  • Баланс и пейсингчтение

    Баланс аккаунта, прогноз исчерпания (на сколько дней хватит) и темп расходования бюджета по кампаниям (limited — упирается в бюджет, under — недорасход).

  • Сводка за неделючтение

    Готовая executive-сводка одним вызовом: ключевые метрики, прогноз расхода и runway, главный драйвер изменений и топ-находки с конкретными действиями. Для отчёта/чата/бота. Отдельным блоком behavior — поведение людей на сайте по данным Метрики: отказы, визиты, доля отказов и глубина просмотра за то же окно. behavior.measured:false означает «счётчик Метрики не привязан, поведение не измеряли», а не «отказов нет»: вердикта о качестве сайта из этого делать нельзя. ⚠️ Охват разбора приходит в ответе: leaksMeasured — считались ли лишние траты за это окно (по умолчанию 7 дней, а снимок срезов покрывает не любой период), segmentsMeasured — читались ли срезы кампаний. При false сумма приходит прочерком: это «не измеряли», а не «лишних трат нет».

  • Поиск неэффективных расходовчтение

    Находит критерии (ключи, автотаргет, площадки), где бюджет тратится неэффективно. Разбор идёт по снимку срезов, и он покрывает не любое окно: если срезы за запрошенный период не читались, ответ несёт leaksMeasured:false и totalWaste:null — это «не измеряли», а не «лишних трат нет». leaks — самые дорогие находки (по оценке потерь), не больше limit (по умолчанию 50); total — сколько их всего, totalWaste — сумма по ВСЕМ. underWatch — критерии «под наблюдением»: заявок меньше ожидаемого, но это ещё не доказано; суммы потерь у них нет, в totalWaste они не входят, и останавливать их как лишние траты нельзя — reason говорит, с какого расхода ноль заявок станет выводом.

  • Доля показов (на боевом кабинете недоступна)чтение

    НЕДОСТУПЕН на живых кабинетах: Direct API v5 не отдаёт ни долю полученных показов, ни потери показов из-за бюджета и ставки. Инструмент оставлен для совместимости и на живом аккаунте возвращает только состояние, без цифр (строки приходят лишь на демо-данных). Про охват спрашивайте campaign_stats с withPositions — объём трафика позиции. Это ДРУГОЕ число: оно про заметность места в уже состоявшихся показах и молчит о проигранных аукционах, поэтому долей показов его называть нельзя.

  • Анализ кампании по разрезамчтение

    Глубокий анализ кампании по срезам (устройства, демография, площадки РСЯ, категории автотаргета, регионы) с поиском неэффективных и эффективных сегментов. Окно по умолчанию — ПОСЛЕДНИЕ 14 ДНЕЙ, другое задаётся параметром days; фактический период всегда приходит в ответе полем range. Спросили про 30 дней — передайте days: 30, иначе суммы разойдутся с campaign_stats за тот же вопрос.

  • Алёртычтение

    Текущие сигналы, требующие внимания: убыточные кампании, заканчивающийся баланс, деградация показателей, возможности масштабирования.

  • Топ-находки по аккаунтучтение

    ИИ-синтез находок по аккаунту: слив бюджета, разрезы (устройства/гео/площадки/демография/автотаргет) и рекомендации, ранжированные по эффекту в деньгах (в валюте кабинета, как статистика Директа). Хорошая отправная точка «с чего начать». ⚠️ Охват разбора приходит в самом ответе: segmentsMeasured говорит, читались ли срезы кампаний (по снимку аккаунта они не читаются), leaksMeasured — считались ли лишние траты за этот период. Пустой список при segmentsMeasured:false или leaksMeasured:false означает «не смотрели», а не «проблем нет».

  • Диагностика: почему просели заявкичтение

    Разбирает, почему изменились заявки период-к-периоду: декомпозиция трафик / конверсия сайта (CR) / цена клика + симптомы (паузы, модерация, локальные просадки кампаний). Возвращает ранжированные вероятные причины с доказательствами.

  • Объяснение измененийчтение

    Что изменилось период-к-периоду по расходу и заявкам и какие кампании это вытянули (топ-драйверы с долей вклада в изменение).

  • Прогноз расхода и балансачтение

    Прогноз расхода и заявок на 30 дней при текущем темпе + на сколько дней хватит баланса (runway). Вердикт: ok / низкий баланс / простой.

  • Возможности по запросамчтение

    Из реальных поисковых запросов: фразы с заявками, которых ещё нет в ключах (добавить), и расход без заявок (в минус-фразы). ⚠️ Охват разбора приходит в самом ответе: keywordsMeasured:false значит «ключи кабинета прочитать не удалось», и тогда «фраз ещё нет в ключах» — не факт, а несверенный список; source говорит, откуда строки (snapshot/live). opportunityRows/wastefulRows называют усечение списков: truncated:true значит «показаны не все находки».

  • Разбор поисковых запросовчтение

    Разбирает реальные запросы: что добавить в ключи, что отправить в минус-фразы и какие конвертирующие запросы дорогие. Порог рассчитывается от target CPA/наблюдаемого CPA. Архивные и завершённые кампании исключены из разбора и из summary — так же, как в кабинете, в campaign_stats и search_queries; includeArchived их вернёт.

  • Объяснить изменение результатачтение

    Связывает изменение результата с метриками, кампаниями-драйверами, трафиком, CR, CPC, состояниями кампаний и историей правок. Возвращает доказательства, а не только дельты. В metrics.previous/metrics.current приходит и поведение людей на сайте по данным Метрики: отказы, визиты, доля отказов и глубина просмотра — по ним видно, изменился ли трафик по качеству, а не только по цене. behaviorMeasured:false значит «счётчик Метрики не привязан, поведение не измеряли», а не «отказов нет». Архивные и завершённые кампании исключены из обоих периодов — так же, как в кабинете и в campaign_stats, иначе расход за один и тот же период в чате и в кабинете расходится; includeArchived их вернёт.

Состав и статистика

23

Чтение всего, что есть в аккаунте: структура, цифры, справочники.

  • Список кампанийчтение

    Возвращает все кампании аккаунта (id, название, состояние, статус модерации, недельный бюджет; legacy dailyBudget — только для старых ответов Direct). status — статус модерации (ACCEPTED/DRAFT/MODERATION/REJECTED), statusPayment — оплата показов (ALLOWED/DISALLOWED): «отклонено модерацией» и «не оплачено» — разные беды с разными действиями, не путайте их. statusClarification — пояснение Директа к статусу своими словами; null означает, что причины Директ НЕ НАЗВАЛ. Не придумывайте причину сами и не выдавайте null за «всё в порядке».

  • Группы объявленийчтение

    Группы объявлений кампании (id, название, статус, регионы, групповые минус-фразы). Может быть усечено — см. truncated/total (по умолчанию 300 строк, limit поднимает до 2000). Список negativeKeywords внутри строки тоже урезается — не больше 200 фраз на группу; срезанное называет блок phrasesTruncated и поле negativeKeywordsTotal, поднять потолок — phraseLimit.

  • Объявлениячтение

    Объявления (заголовки, тексты, ссылки, статус модерации). status: DRAFT — ЧЕРНОВИК, он не показывается никогда, пока не отправлен на модерацию; state: SUSPENDED — остановлено владельцем, ARCHIVED — в архиве. Без campaignId — по всему аккаунту (может быть усечено — см. truncated/total).

  • Ключи и таргетингичтение

    Ключевые фразы и условия показа (id, фраза, ставка, статус). state — состояние фразы: ON работает, SUSPENDED остановлена владельцем, OFF выключена; отсутствие поля значит «не прочитано». Без campaignId — по всему аккаунту (может быть усечено — см. truncated/total).

  • Минус-фразы кампаниичтение

    Текущие минус-фразы уровня кампании.

  • Корректировки ставокчтение

    Корректировки ставок кампании и её групп (устройства, демография, регионы). pct — знаковый процент: -100 = срез отключён, 0 = нейтраль, +30 = ставка повышена на 30%. У разреза region в value стоит ЧИСЛОВОЙ идентификатор региона (название ищи через list_regions): Директ адресует регион только им и названия в ответе не присылает. Нижняя граница у региона своя — −90% (Direct принимает 10–1300): полностью выключить регион корректировкой нельзя, для этого его убирают из геотаргетинга группы. enabled:false означает «корректировка есть, но не действует»; отсутствие поля значит «признак не прочитан», а не «действует». level показывает, где живёт корректировка: групповая перекрывает кампанийную. Строка — это один срез одного уровня, поэтому у кампании с сотней групп и десятками регионов строк тысячи: отдаётся не больше 1000 (limit поднимает до 5000), усечение видно по truncated/total. ⚠️ На усечённом ответе нельзя делать вывод «корректировки по этому срезу нет» — за окном остались непрочитанные строки.

  • Цели Метрикичтение

    Цели Метрики уровня аккаунта (id, название) — общий список по выбранному/всем счётчикам. Чтобы задать цели КОНКРЕТНОЙ кампании, бери валидные из list_campaign_goals (по её счётчику).

  • Приоритетные цели кампаниичтение

    Id приоритетных целей кампании (по ним считаются заявки) и их ценность — в валюте кабинета, как статистика Директа. conversionValue: null — ценность не задана (это НЕ ноль).

  • Цели Метрики кампаниичтение

    Цели Метрики из счётчиков, привязанных к КОНКРЕТНОЙ кампании (id, название). Только эти цели можно ставить кампании как приоритетные или как цель конверсионной стратегии — используй перед set_campaign_goals / set_strategy.

  • Стратегия кампаниичтение

    Текущая стратегия показов кампании и её параметры.

  • Настройки кампаниичтение

    Читает даты, расписание, часовой пояс, расширенный геотаргетинг, мониторинг сайта, атрибуцию, URL-параметры, запрещённые площадки/IP и места показа. ⚠️ excludedSites и blockedIps: пустой массив означает «список пуст», а null — «Директ списка не вернул, мы его не знаем». Не пересказывайте null как «запрещённых площадок нет».

  • Поисковые запросычтение

    Реальные поисковые запросы пользователей с метриками (расход/клики/заявки) — основа для минус-фраз и новых ключей. Архивные и завершённые кампании исключены (как в кабинете) — includeArchived их вернёт. Может быть усечено — см. truncated/total. withSource добавляет ИСТОЧНИК запроса: matchType (KEYWORD — по своей ключевой фразе, SYNONYM — по семантическому соответствию, RELATED_KEYWORD — по дополнительной релевантной фразе, NONE — прочее) и matchedKeyword (подобранная фраза). Это ответ на «откуда взялся мусорный запрос»: если мусор идёт из RELATED_KEYWORD, минус-фразы лечат следствие, а причина — переключатель дополнительных релевантных фраз в настройках кампании (get_campaign_settings → relevantKeywords). matchedKeyword: null при matchType KEYWORD — это НЕ пробел в данных: показ пришёл по ключевой фразе самого кабинета, и подбирать было нечего. ⚠️ withSource меняет ГРАНУЛЯРНОСТЬ отчёта: оба поля — сегменты, один и тот же запрос приезжает несколькими строками (по одной на источник), поэтому строк больше, а расход делится между ними. Считая уникальные запросы или суммы по запросу, складывай строки сам.

  • Статистика по кампаниямчтение

    Статистика по кампаниям за период с разбивкой по дням (строка = кампания×день): показы, клики, расход, заявки, выручка. Отказы, визиты, доля отказов и глубина просмотра (данные Метрики) приходят отдельным блоком behavior — итогом за период и по каждой кампании, а не в строках дней: долю отказов считают от визитов и только из сумм за период, а среднее дневных долей даёт другое, неверное число. behavior.measured:false означает «счётчик Метрики не привязан, отказы не измеряли», а не «отказов нет». Архивные и завершённые кампании исключены — так же, как в кабинете, иначе сумма расхода в чате выше той, что человек видит в кабинете; includeArchived их вернёт, а адресный запрос по campaignId отдаёт кампанию всегда. На больших аккаунтах и окнах данных много — сужай campaignId/days; усечение видно по truncated/total. byNetwork:true добавляет разрез на поиск и РСЯ (у них разные цена клика, конверсия и проблемы): у строк появляется поле network, строк становится больше (дробятся только кампании, шедшие в обеих сетях), а сводка byNetwork считается по всем строкам. network:"unsplit" — строка собрана БЕЗ разбивки (поиск и сети внутри вместе), это не поиск и не ноль в РСЯ. includePurchases добавляет блок purchases — деньги ТОЛЬКО по целям-покупкам (оплаченные заказы) отдельным отчётом Директа; revenue/roas в строках при этом остаются деньгами по ВСЕМ целям и в блок покупок не превращаются. withPositions добавляет блок positions — объём трафика позиции, средний номер позиции и среднюю ставку участия в аукционе. ⚠️ Объём трафика — это НЕ доля показов: доли показов Директ не отдаёт вовсе, и подменять одно другим нельзя. Объём трафика говорит, насколько заметным было место в УЖЕ состоявшихся показах (100 — самое заметное место), и молчит о проигранных аукционах. Числа приходят сводкой, а не в строках дней: это средние по показам, и складывать или усреднять их по дням нельзя. bySlot добавляет разрез по блокам выдачи (премиум-блок / прочие блоки / саджест): у строк появляется поле slot, строк становится больше, а доли в блоке bySlot считаются от НАШИХ показов и расхода, а не от объёма блока. ⚠️ withPositions и bySlot вместе не проверялись на живом API и отклоняются до запроса — спрашивайте порознь.

  • Статистика по критериямчтение

    Статистика по ключам / автотаргету / площадкам за период (без разбивки по дням). У каждой строки едет её ГРУППА объявлений (adGroupId/adGroupName), а byAdGroup — свод по группам, посчитанный по ВСЕМ строкам отчёта, а не по усечённому списку: он и отвечает на вопрос «какая группа сливает». Архивные и завершённые кампании исключены (как в кабинете) — includeArchived их вернёт. Может быть усечено — см. truncated/total.

  • Статистика по объявлениямчтение

    Метрики по объявлениям кампании (для сравнения A/B вариантов). Строки — по убыванию расхода; по умолчанию 300 строк, не больше 5000 (limit). Усечение видно по truncated/total: в обрезке остаются самые дорогие объявления, и вывод «такого объявления в кампании нет» или сумма по строкам по нему неверны — итог по ВСЕМ объявлениям в totals.

  • Баланс аккаунтачтение

    Текущий баланс рекламного аккаунта (только цифра). Для прогноза «на сколько дней хватит» — account_status или forecast.

  • История измененийчтение

    Изменения в аккаунте за период — кто/что правил (для оценки работы над аккаунтом). Может быть усечено — см. truncated/total.

  • Товарные фидычтение

    Товарные фиды аккаунта (для смарт-баннеров и динамических объявлений).

  • Списки ретаргетингачтение

    Списки ретаргетинга / аудитории аккаунта. Может быть усечено — см. truncated/total (по умолчанию 500 строк, limit поднимает до 5000).

  • Аудитории: надбавки к ставкечтение

    Корректировки ставок за аудиторию у кампании (сервис bidmodifiers): насколько дороже или дешевле покупается показ тем, кто попал в список ретаргетинга. ⚠️ Это НЕ условия показа: сама по себе корректировка показов не даёт — она меняет цену там, где показ уже возможен по другому условию. Условия показа по аудитории (ретаргетинг в РСЯ) — list_audience_conditions. Строка — корректировка одного уровня (кампания или группа), поэтому их столько же, сколько групп × условий: отдаётся не больше 500 (limit поднимает до 5000), усечение видно по truncated/total.

  • Справочник регионовчтение

    Регионы геобазы Яндекса (id, название, родитель, тип) — для человекочитаемых названий гео и выбора регионов таргетинга. Геобаза огромная (~17 тыс. строк) — фильтруй по query (подстрока названия) или parentId; без фильтров вернётся только верх списка.

  • Настройки аккаунтачтение

    Параметры рекламного аккаунта: валюта, НДС, дневной бюджет аккаунта, уведомления, число представителей, овердрафт. forbiddenPlatform — площадка, где кабинету ЗАПРЕЩЕНЫ показы (NETWORK = РСЯ, SEARCH = поиск, NONE = запретов нет): это прямой ответ на «почему нет показов в сетях», проверяйте его прежде, чем искать причину в кампаниях. availableCampaignTypes — типы кампаний, которые Директ разрешает ЭТОМУ логину; не предлагайте пользователю остальные. restrictions — количественные лимиты кабинета (имя ограничения → число). accountQuality: null означает «Директ качество не посчитал», а не нулевое качество. Отсутствующее поле означает «не прочитано» и никогда не означает «ограничений нет».

  • Общие наборы минус-фразчтение

    Общие (shared) наборы минус-фраз уровня аккаунта с их списками фраз. Отдаётся не больше 50 наборов (limit поднимает до 500); усечение видно по truncated/total. ⚠️ Вес ответа держат не наборы, а ФРАЗЫ в них: список keywords урезается до 200 фраз на набор, полная длина — в keywordsTotal, и остальное НЕ ПРОЧИТАНО, а не отсутствует. Нужен весь набор целиком (например, чтобы сверить, есть ли в нём фраза) — спрашивайте с phraseLimit, иначе вывод «такой фразы в наборе нет» будет сделан по обрезку.

Правки и решения

25

Изменения на живом аккаунте — Claude подтверждает опасные действия.

  • Поставить кампанию на паузуправка·опасно

    Останавливает показы кампании.

  • Возобновить кампаниюправка·опасно

    Снимает кампанию с паузы. Показы и РАСХОД БЮДЖЕТА начинаются сразу, потраченное вернуть нельзя — вызывайте только после явной просьбы пользователя возобновить именно эту кампанию.

  • Изменить дневной бюджет (отключён)правка·опасно

    ОТКЛЮЧЁН: Direct убрал дневной бюджет (DailyBudget) 22 августа 2026, инструмент оставлен только для совместимости и ничего не меняет. Задавайте недельный бюджет через set_weekly_budget.

  • Изменить недельный бюджетправка·опасно

    Устанавливает НЕДЕЛЬНЫЙ бюджет кампании (WeeklySpendLimit) — в валюте кабинета, как статистика Директа; по курсу не пересчитывать; пределы Директа зависят от валюты (пол схемы 300). Работает на АВТОСТРАТЕГИЯХ. У кампаний с ручными ставками бюджет задаётся только в интерфейсе Яндекс Директа: дневной бюджет Директ отключил 22 августа 2026, а обещанная замена в API пока не развёрнута. В этом случае так и скажите пользователю и предложите либо задать бюджет в кабинете Директа, либо перевести кампанию на автостратегию. Если кампания состоит в пакетной стратегии, Директ не даёт менять её стратегию, ключевые цели, счётчики и модель атрибуции — об этом сказано в ответе полями packageStrategy*, перескажите их пользователю.

  • Сменить стратегию кампанииправка·опасно

    Меняет стратегию показов. weeklyBudget применяется только к автостратегиям: на ручной (MANUAL) недельный бюджет через campaigns API не задаётся вообще и будет отброшен. Без weeklyBudget недельный бюджет кампании ОСТАЁТСЯ ПРЕЖНИМ: коннектор переносит его из текущей стратегии, а если Директ его не отдал — не отправляет поле вовсе. Своего числа он не подставляет. Для MAX_PROFIT и multi-goal передай goals [{goalId,value}]. networkType управляет показами в сетях (РСЯ): SERVING_OFF ОТКЛЮЧАЕТ показы в сетях целиком — назови это последствие пользователю до вызова. Без confirmed:true вызов с SERVING_OFF ничего не меняет и возвращает предпросмотр (что выключится); повторите его с confirmed:true только после явного согласия, прочие правки стратегии подтверждения не требуют. Без networkType сеть кампании остаётся прежней. Деньги (weeklyBudget, targetCpa, goals[].value) — в валюте кабинета, как статистика Директа; по курсу не пересчитывать; пределы Директа зависят от валюты. То же, что set_campaign_strategy (исторический синоним).

  • Изменить стратегию кампанииправка·опасно

    Меняет стратегию показов. weeklyBudget применяется у автостратегий; при переводе на MANUAL он НЕ переносится — на ручных ставках недельный бюджет задаётся пакетной стратегией Директа, вне коннектора. Поддержаны также MAX_PROFIT и стратегии по нескольким целям; для них передай goals [{goalId,value}], где value — маржа или индивидуальный CPA. networkType управляет показами в сетях (РСЯ): SERVING_OFF ОТКЛЮЧАЕТ показы в сетях целиком — назови это последствие пользователю до вызова. Без confirmed:true вызов с SERVING_OFF ничего не меняет и возвращает предпросмотр (что выключится); повторите его с confirmed:true только после явного согласия, прочие правки стратегии подтверждения не требуют. Если networkType не указан, сеть остаётся такой, как в кампании сейчас. Деньги (weeklyBudget, targetCpa, goals[].value) — в валюте кабинета, как статистика Директа; по курсу не пересчитывать; пределы Директа зависят от валюты.

  • Задать приоритетные цели кампанииправка·опасно

    Задаёт приоритетные цели кампании (по ним считаются заявки) из списка list_campaign_goals. Заменяет весь набор. conversionValue — ценность заявки, в валюте кабинета, как статистика Директа; по курсу не пересчитывать; нужна для стратегии «Целевой ROAS» и денежной аналитики (для лидов — маржа с заявки). conversionValue НЕ ПЕРЕДАН — заданная в кампании ценность СОХРАНЯЕТСЯ (перечитывается и пересылается: PriorityGoals заменяет набор целиком); прочитать её не удалось — запись отменяется с отказом, а не пишется умолчание. Ответ возвращает ЗАПИСАННОЕ по каждой цели (goals[].conversionValue), а не переданное. Пустой goalIds — снять все цели.

  • Изменить ставку ключаправка·опасно

    Устанавливает ставку по ключевой фразе — в валюте кабинета, как статистика Директа; по курсу не пересчитывать. Пределы ставки Директа зависят от валюты: ставку вне пределов своей валюты Директ отклонит.

  • Добавить ключевые фразыправка·опасно

    Добавляет ключевые фразы в группу объявлений. Возвращает id добавленных ключей. moderateDraftAds:true дополнительно отправляет ЧЕРНОВИКИ объявлений этой группы на модерацию — делайте это, когда фразы добавлены к только что созданному объявлению: до модерации черновик не показывается никогда. По умолчанию false: в чужой уже работающей группе черновик мог быть оставлен человеком намеренно, и отправка на модерацию — видимое ему действие. Спросите, прежде чем включать.

  • Остановить или удалить ключевую фразуправка·опасно

    Действие над ключевой фразой или автотаргетингом по id. action:"suspend" ОСТАНАВЛИВАЕТ показы, сохраняя фразу и всю её статистику — предлагайте пользователю именно это, когда фраза плохо работает: удаление стирает историю безвозвратно и сравнить «до и после» будет нечем. action:"resume" возвращает остановленную фразу в показы. action:"delete" (по умолчанию) удаляет её вместе со статистикой — и удаление выполняется ТОЛЬКО с confirmed:true: без него инструмент ничего не удаляет и возвращает предпросмотр с напоминанием про suspend. Остановка и возврат в показы подтверждения не требуют: они обратимы.

  • Добавить минус-фразыправка

    Добавляет минус-фразы в кампанию (отсекает нецелевой трафик). Директ отвергает запись ЦЕЛИКОМ, если нарушено любое из его ограничений: не больше 7 слов во фразе, не больше 35 символов в слове и не больше 20000 символов суммарно по всему списку кампании. Длинный набор надо делить по кампаниям, а не слать одним куском.

  • Убрать минус-фразыправка·опасно

    Убирает минус-фразы из кампании (откат ошибочной минусовки: минус-фраза режет целевой трафик так же молча, как и мусорный). Слова, которых нет в списке, игнорируются. За один вызов принимается не больше 1000 фраз — столько же, сколько Директ вообще держит в списке кампании.

  • Корректировки ставокправка·опасно

    Задаёт корректировки ставок кампании или конкретной группы (если передан adGroupId) по срезам. dimension: device | gender | age | region. value для device: «Мобильные», «Десктоп» или «Планшеты»; для gender: «Женщины»/«Мужчины»; для age: «18-24», «25-34», «45-54» и т.п.; для region — ЧИСЛОВОЙ идентификатор региона (ищется через list_regions), названия Директ не принимает. pct — знаковый процент: -100 = отключить срез, 0 = нейтраль, +30 = поднять на 30%. У региона нижний предел иной: от -90% — полностью выключить регион корректировкой нельзя, его убирают из геотаргетинга. remove: true снимает перечисленные корректировки совсем (pct тогда не нужен) — это НЕ то же самое, что выставить 0: снятая корректировка наследует настройку уровнем выше, а нулевая продолжает действовать. Весь пакет валидируется до обращения к Direct API. Upsert: существующая корректировка среза обновляется. Текущие значения — get_bid_adjustments. ⚠️ adGroupId обязан принадлежать названной кампании: принадлежность сверяется до записи, и на чужой группе вызов отказывает, ничего не изменив. ⚠️ Пакетного upsert у Директа нет — корректировки пишутся по одной, поэтому ответ содержит applied (уже в кабинете), failed (отбито Директом с причиной) и skipped (не отправлено: пакет остановлен квотой или недоступностью). ok:false при непустом applied означает ЧАСТИЧНО применённый пакет, а не «ничего не произошло»: повторять нужно только failed и skipped. ⚠️ pct на пределе шкалы (−100, у региона его предел) ПОЛНОСТЬЮ отключает срез: без confirmed:true такой пакет не применяется ЦЕЛИКОМ — инструмент возвращает предпросмотр с отключаемыми срезами. Перескажите его пользователю и вызовите повторно с confirmed:true только после явного согласия. Прочие значения и remove применяются сразу.

  • Изменить объявлениеправка·опасно

    Обновляет обычное или комбинаторное объявление, а также включает и выключает его показы. state:"SUSPENDED" останавливает показы ОДНОГО объявления (кампания и остальные объявления продолжают работать), state:"ON" возвращает их, state:"ARCHIVED" убирает объявление в архив — архивировать Директ разрешает только уже остановленное объявление, поэтому сначала SUSPENDED, потом ARCHIVED. state можно передать и без правок текста. ⚠️ Для комбинаторного titles и descriptions ЗАМЕНЯЮТ текущий набор вариантов ЦЕЛИКОМ — Direct перезаписывает массивы, а не дополняет их, поэтому передавайте полный набор: 2–7 заголовков и 2–3 текста. Одиночный вариант отклоняется до запроса, иначе он стёр бы остальные безвозвратно. Чтобы поменять только ссылку, titles/descriptions не передавайте вовсе — сервис сохранит текущие. Для обычного объявления — title/title2/text.

  • Изменить настройки кампанииправка·опасно

    Частично меняет настройки кампании: переданные поля, непереданные не трогает. ⚠️ НО excludedSites (запрещённые площадки) и blockedIps ЗАМЕНЯЮТ свой список ЦЕЛИКОМ, а не дополняют его: прислав одну площадку, вы сотрёте все остальные, накопленные в кабинете. Чтобы ДОБАВИТЬ площадку или IP — прочитайте текущий список через get_campaign_settings и пришлите его целиком вместе с новой записью. Если записи из текущего списка всё же должны исчезнуть, инструмент сначала вернёт предпросмотр (что именно пропадёт) и ничего не запишет; повторный вызов с confirmed:true применит замену. Если текущий список Директ вообще не вернул, посчитать потерю нечем — тогда предпросмотр приходит на ЛЮБУЮ замену. Директ историю исключений не хранит — стёртый список не восстановить. ⚠️ networkType:SERVING_OFF (выключить РСЯ) и searchPlacements.searchResults:NO (выключить показы в результатах поиска) без confirmed:true не применяются: инструмент вернёт предпросмотр, что именно выключится, и не запишет ни одного поля. Площадки из защищённого списка кабинета (страница «Площадки») ДОБАВИТЬ в excludedSites нельзя: такой вызов отклоняется целиком до записи, confirmed этого не снимает; убрать площадку из исключений защита не мешает. options принимает официальные ключи Direct, например ENABLE_AREA_OF_INTEREST_TARGETING, ENABLE_SITE_MONITORING, ENABLE_COMPANY_INFO и ALTERNATIVE_TEXTS_ENABLED. relevantKeywords — показы по дополнительным релевантным фразам: объект включает их (budgetPercent 1–100 — потолок доли бюджета на ДРФ), null выключает совсем. Именно ДРФ обычно и есть причина мусорных показов, у которых в search_queries источник RELATED_KEYWORD: минус-фразы лечат следствие, этот переключатель — причину. ⚠️ Настройка существует только у текстовых кампаний; у единой перфоманс-кампании её в API нет.

  • Изменить настройки группыправка·опасно

    Меняет название, географию, минус-фразы, URL-параметры и категории автотаргетинга группы. ⚠️ negativeKeywords ЗАМЕНЯЕТ список минус-фраз группы ЦЕЛИКОМ, а не дополняет его: всё, что было в группе и не пришло в вызове, исчезнет. Текущий список группы этот инструмент прочитать не может, поэтому замена выполняется только с confirmed:true — покажите пользователю, какой список вы собираетесь записать, и получите согласие. Минус-фразы КАМПАНИИ живут отдельно и дополняются без потерь: add_negative_keywords / remove_negative_keywords. Ограничения Директа на минус-фразы группы: не больше 7 слов во фразе, не больше 35 символов в слове, суммарно не больше 4096 символов (пробелы, дефисы и операторы не считаются); список, нарушающий их, отклоняется до записи. Пустой список очищает минус-фразы группы.

  • Изменить текст ключевой фразыправка·опасно

    Меняет текст ключа с сохранением операторов и минус-фраз. Перед записью проверяет дубликат в группе; ставку переносит best-effort, если Direct вернул новый ID. Операция составная, не атомарная.

  • Изменить расширения объявленияправка·опасно

    Заменяет быстрые ссылки и/или уточнения объявления. Пустой массив снимает соответствующее расширение.

  • Вернуть расширения к наследованиюправка·опасно

    Снимает переопределение быстрых ссылок и/или уточнений на объявлении. Параметры независимы.

  • Пресеты расширенийчтение

    Список прикладных пресетов быстрых ссылок и уточнений кампании/группы.

  • Сохранить пресет расширенийправка·опасно

    Создаёт или обновляет пресет кампании/группы. null снимает управление конкретным полем, [] явно убирает расширение.

  • Удалить пресет расширенийправка·опасно

    Удаляет только прикладной пресет; текущие расширения объявлений в Direct не меняет.

  • Применить пресет расширенийправка·опасно

    Пакетно применяет эффективные расширения к объявлениям кампании. По умолчанию только показывает план; для записи передайте dryRun=false. ⚠️ Применено или нет — говорит поле applied, а не ok: ok:true означает «вызов отработал без ошибки». applied:false при dryRun=false означает, что записывать было нечего (ни одного батча), и тогда ответ несёт note с причиной — перескажите её пользователю, а не докладывайте «применено».

  • Надбавка к ставке за аудиториюправка·опасно

    Задаёт КОРРЕКТИРОВКУ СТАВКИ за аудиторию на уровне кампании (сервис bidmodifiers). bidPct — знаковый процент: -100 отключает показы этой аудитории, 0 без корректировки, +30 повышает ставку на 30%. ⚠️ Показов сама по себе не даёт: она меняет цену там, где показ уже возможен по другому условию. Чтобы ВКЛЮЧИТЬ показы по аудитории (ретаргетинг в РСЯ), нужны условия нацеливания — add_audience_conditions.

  • Снять надбавку к ставке за аудиториюправка·опасно

    Снимает КОРРЕКТИРОВКУ СТАВКИ за аудиторию по ID корректировки (сервис bidmodifiers); список — list_audiences. ⚠️ targetId — это поле id строки из list_audiences, а НЕ listId (номер списка ретаргетинга): удаление у Директа одно на все виды корректировок, поэтому чужой номер снял бы, например, корректировку по устройствам. Перед удалением вид корректировки сверяется, и на несовпадении вызов отказывает, ничего не изменив. ⚠️ Показы по аудитории этим не выключаются: за них отвечают условия нацеливания — pause_audience_conditions / delete_audience_conditions.

Сборка кампаний

10

Создание кампании с нуля прямо из чата: кампания → группа → объявление.

  • Создать кампаниюправка

    Создаёт текстово-графическую кампанию с недельным бюджетом на стратегии «оптимизация кликов». Кампания создаётся ОСТАНОВЛЕННОЙ: сразу после создания инструмент ставит её на паузу (как apply_campaign_plan), и прошедшая модерация показов сама не начнёт — запуск только resume_campaign после согласия пользователя. Состояние в ответе — факт: state SUSPENDED и paused:true, если пауза встала; иначе paused:false, прочитанное состояние (или null — не прочитано) и предупреждение — тогда остановите кампанию pause_campaign. Ручные ставки включаются потом через set_campaign_strategy с типом MANUAL, но недельный бюджет на них через API не задаётся. weeklyBudget — в валюте кабинета, как статистика Директа; по курсу не пересчитывать; пределы Директа зависят от валюты (пол схемы 300). Возвращает id. Дальше: create_adgroup, create_ad, add_keywords.

  • Создать группу объявленийправка

    Создаёт группу объявлений в кампании с гео-таргетингом (regionIds; по умолчанию вся Россия [225]). Возвращает id группы.

  • Создать объявлениеправка·опасно

    Создаёт объявление. Если переданы titles и descriptions — создаёт комбинаторное объявление (ResponsiveAd, v501); иначе использует совместимый TextAd. Комбинаторное принимается только полным набором: 2–7 заголовков и 2–3 текста (варианты потом заменяются целиком, а не дополняются). Возвращает id. ⚠️ Директ создаёт объявление ЧЕРНОВИКОМ, и черновик не показывается никогда: инструмент сразу отправляет его на модерацию (sendToModeration:false — не отправлять). Модерация не принимается, пока в группе нет условий показа, — тогда в ответе придёт moderation.skipped с причиной: добавьте ключевые фразы через add_keywords с moderateDraftAds:true. Пока в ответе нет moderation.sent, объявление НЕ работает — так и скажите пользователю, не отвечайте «готово».

  • Проверить план кампаниичтение

    Проверяет согласованный план рекламной кампании до записи в Директ: структуру групп, дубли ключей, стратегии, лимиты объявлений и обязательные поля. Ничего не меняет и не вызывает API.

  • Создать кампанию по согласованному плануправка·опасно

    Создаёт кампанию и сразу ставит её на паузу, затем стратегию, группы, объявления, ключи и минус-фразы по заранее согласованному плану, а созданные объявления отправляет на модерацию Яндекса (черновик не показывается никогда). Показы и расход не начнутся, пока кампанию не запустят инструментом resume_campaign. В ответе есть paused: если там false, паузу применить не удалось, состояние кампании неизвестно — перескажи это пользователю и останови кампанию инструментом pause_campaign. Перед записью повторно валидирует весь план. Без confirmed:true НИЧЕГО не создаёт: отдаёт предпросмотр — что именно появится в кабинете (кампания, сколько групп, объявлений и ключей) и напоминание, что отправку на модерацию не отозвать. Перескажите предпросмотр пользователю и вызовите повторно с confirmed:true только после явного согласия. В ответе у каждой группы есть moderation: то, что попало в notSent, показываться НЕ будет — перескажи это пользователю.

  • Сохранить черновик кампанииправка

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

  • Список черновиков кампанийчтение

    Показывает сохранённые черновики: id, название, статус и дату изменения. В команде список общий — план, собранный коллегой, виден и применяется отсюда же.

  • Получить черновик кампаниичтение

    Возвращает полный сохранённый план по id, чтобы ассистент мог продолжить интервью или показать его клиенту.

  • Обновить черновик кампанииправка·опасно

    Заменяет содержимое сохранённого черновика после правок клиента. Применённые планы редактировать нельзя.

  • Применить сохранённый план кампанииправка·опасно

    Создаёт кампанию по сохранённому planId, сразу ставит её на паузу и помечает черновик применённым. Показы и расход не начнутся, пока кампанию не запустят инструментом resume_campaign; если в ответе paused:false — паузу применить не удалось, останови кампанию инструментом pause_campaign. Без confirmed:true НИЧЕГО не создаёт: отдаёт предпросмотр — что именно появится в кабинете. Перескажите предпросмотр пользователю и вызовите повторно с confirmed:true только после явного согласия.

Автопилот и правила

7

План оптимизации, применение пунктов по одному или скопом, автоправила.

  • План оптимизациичтение

    Единый план: все правки (неэффективные расходы, срезы, пейсинг) с приоритетом, эффектом в деньгах (в валюте кабинета, как статистика Директа) и пометкой «безопасно». Основа ИИ-автопилота. Отдельный пункт применяется через apply_plan_item по его id. Ключевая фраза, тратящая без заявок, предлагается к ОСТАНОВКЕ (action.type: suspendKeyword — keywords.suspend, обратимо, статистика сохраняется), а не в минус-фразы: минус-фразу из текста самого ключа Директ игнорирует. Такой пункт не помечен безопасным и автопилотом не применяется.

  • Автопилот: применить безопасные правкиправка·опасно

    Применяет безопасные правки из плана оптимизации: минус-фразы, исключение площадок и ПОНИЖЕНИЕ корректировок. Часть понижений — это ПОЛНОЕ отключение среза до предела шкалы Директа (−100% у устройства/пола/возраста, −90% у региона — ниже Директ по региону не опускается), срез перестаёт получать показы; они возвращаются отдельным списком disableSegments. Паузы кампаний, остановку ключевых фраз и увеличение бюджета не применяет никогда. Без confirmed:true ничего не меняет: отдаёт предпросмотр — сколько правок и какие срезы будут отключены. Перескажите предпросмотр пользователю и дождитесь явного согласия, прежде чем вызывать с confirmed:true.

  • Применить пункт планаправка·опасно

    Применяет ОДИН пункт плана оптимизации по его id (из get_optimization_plan). Для выборочного применения: пользователь согласовал пункты 2 и 5 — вызывай для каждого. run_autopilot применяет все безопасные скопом. Часть пунктов — понижение корректировки на −100%, то есть ПОЛНОЕ отключение среза: устройство, пол, возраст или площадка перестают получать показы совсем. Без confirmed:true инструмент ничего не меняет: возвращает предпросмотр — что именно сделает пункт и какой срез будет отключён. Перескажите предпросмотр пользователю ДО вызова с confirmed:true и убедитесь, что он согласился именно на это.

  • Проверить автоправилачтение

    Прогоняет автоправила против текущих метрик кампаний и возвращает срабатывания (что и почему сработало, какое действие предписано).

  • Создать автоправилоправка·опасно

    Создаёт правило вида «если [метрика] [оператор] [порог] → [действие]». metric: drr|cpa|roas|profit|conversions|cost|clicks|ctr; operator: gt|lt|eq0; action: pause|notify. Без windowDays — прежнее правило по метрикам периода (только drr|cpa|roas|profit, gt|lt). windowDays (1–30) — значение считается ЗА последние N полных дней из сумм (CPA = расход/заявки за окно); conversions|cost|clicks|ctr и eq0 — только с окном; eq0 = «нет заявок» (только metric:conversions, срабатывает на кампании с расходом за окно). Деньги (threshold у cpa|profit|cost и minCost) — числа в валюте кабинета, как статистика Директа; по курсу не пересчитывать. minCost — не судить кампанию с расходом за окно меньше, в валюте кабинета (для eq0 рекомендуется; для action:"pause" по conversions обязателен: не задан — 1000, меньше 500 — отказ). У правила для групп по cpa с operator gt срабатывание — только от 3 заявок за окно и когда превышение порога не случайно. Правило не проверяется, пока статистика за окно не загружена; по заявкам не судится объект, у которого заявки не измеряются (ни одной за 90 дней), и объект моложе окна. level: campaign (по умолчанию) | adGroup — правило для групп объявлений, только с windowDays; группы считаются по отчёту Директа при ежечасном прогоне правил (evaluate_rules их не проверяет), pause останавливает объявления группы. ⚠️ action:"pause" — это АВТОМАТИЧЕСКАЯ ОСТАНОВКА кампаний: планировщик проверяет правила раз в час и сам ставит на паузу все кампании, попавшие под условие. Такое правило создаётся ВЫКЛЮЧЕННЫМ и без включения человеком не сработает — включить его можно в веб-разделе автоправил либо через set_rule_enabled с confirmed:true после явного согласия пользователя на предпросмотр. После включения первый прогон только присылает «остановило бы», останавливать правило начинает со следующего; за прогон — не больше 10 остановок на кабинет; объект, который включил человек после остановки правилом, правило не трогает до конца окна. action:"notify" только уведомляет и создаётся включённым. campaignIds — необязательно: правило судит только эти кампании (до 50); без него — все кампании всех кабинетов.

  • Включить/выключить автоправилоправка·опасно

    Включает или выключает автоправило по id (список — в evaluate_rules). ⚠️ Включение правила с action:"pause" — это АВТОМАТИЧЕСКАЯ ОСТАНОВКА кампаний: планировщик раз в час сам ставит на паузу все кампании под условием. Без confirmed:true такое правило НЕ включается: инструмент возвращает предпросмотр. Перескажите его пользователю и вызывайте с confirmed:true только после его явного согласия. Выключение и правила-уведомления подтверждения не требуют.

  • Удалить автоправилоправка·опасно

    Удаляет автоправило по id (список — в evaluate_rules). Отключить, не удаляя, — set_rule_enabled.

Wordstat

4

Подбор фраз с разметкой шума и минус-фразами, сезонность спроса, раскладка в группы объявлений и спрос по регионам (месячная квота тарифа).

  • Подбор фраз Wordstatтратит квоту

    Тратит единицу месячной квоты Wordstat вашего тарифа (сверх неё — предоплаченный пакет); повтор из кэша за сутки бесплатен. Частотности и похожие фразы по запросу, с разметкой шума (инфо-запросы, «бесплатно», вакансии), адресуемым спросом (addressableTotal — сумма частотностей без шума и без фраз, вложенных в другие строки выдачи: частотность Wordstat — широкое соответствие, поэтому «купить робот пылесос» уже включает «купить робот пылесос недорого». addressableTotal — порядок величины спроса, а не измеренная ёмкость ниши: вложенные фразы из суммы вычтены (иначе одни и те же люди считались бы дважды), но непрочитанные частотности и не отданные источником строки в неё не вошли. Направление ошибки неизвестно — числу нельзя доверять ни как потолку, ни как гарантированному минимуму. rawTotal — просто сумма всех строк, спросом её называть нельзя), разбивкой по интенту (intent: commercial/informational/navigational/branded/other) и готовым списком минус-фраз (negativeKeywords — маркеры шума, можно сразу в add_negative_keywords). Регион — id геобазы: 225 Россия, 213 Москва, 2 Санкт-Петербург, 65 Новосибирск, 54 Екатеринбург. device — фильтр устройств (desktop/phone/tablet; по умолчанию все). Ответ ПОДПИСАН регионом и срезом устройств (region/regionName/device): числа с разной подписью между собой несравнимы — у Москвы вместо России частотность меньше примерно на порядок. Операторы Вордстата (кавычки, !, +, -, []) источник ПРИМЕНЯЕТ: кавычки дают точное соответствие (меньше в разы), ! фиксирует словоформу (примерно вдвое меньше). Если нужен широкий спрос — присылайте фразу без операторов; если оператор прислан осознанно, ответ его назовёт в operators. Сезонность — wordstat_dynamics, разбивка по регионам — wordstat_regions. Строк выдачи отдаётся не больше предела тарифа (50); limit сужает это число, но не поднимает — остальные фразы у нас есть, их прячет платная граница, а не источник.

  • Сезонность спроса Wordstatтратит квоту

    Тратит единицу месячной квоты Wordstat (ту же, что wordstat_suggest; сверх квоты — предоплаченный пакет), повтор из кэша — бесплатно. Помесячная динамика спроса по фразе за последние 24 месяца (Wordstat): когда сезонный пик и спад, растёт ниша или падает. Регион — id геобазы (225 — Россия).

  • Раскладка фраз в группы (Wordstat)тратит квоту

    Тратит единицу месячной квоты Wordstat (ту же, что wordstat_suggest; сверх квоты — предоплаченный пакет), кэш-хит бесплатно. Похожие фразы по запросу, разложенные в черновик групп объявлений: кластер по слову-модификатору → имя группы, черновик заголовка (≤56 симв.) и ключи группы. Готово для build_campaign.

  • Спрос по регионам (Wordstat)тратит квоту

    Тратит единицу месячной квоты Wordstat (ту же, что wordstat_suggest; сверх квоты — предоплаченный пакет), кэш-хит бесплатно. Распределение спроса фразы по регионам или городам: affinityIndex (100 — как в среднем по стране, >100 — регион «горячее») + показы в месяц. scope: regions (субъекты РФ, по умолчанию) / cities / all.

Агентское

1

Кросс-аккаунтный свод по всему портфелю клиентов.

  • Обзор по всем аккаунтам (портфель)чтение

    Агентский кросс-аккаунтный свод: по каждому подключённому аккаунту — расход, прибыль, неэффективные траты, на сколько дней хватит баланса и главная проблема; плюс единый рейтинг топ-находок по всему портфелю (где горит сильнее всего) и сводка (общий расход/слив, убыточные аккаунты, заканчивающийся баланс). Отправная точка для агентства с несколькими клиентами — с чего начинать сегодня. Сумма лишних трат приходит по тем кабинетам, где разбор по срезам за период проводился: у кабинета с выбранной главной целью Метрики она не считается, и там стоит прочерк с причиной, а не ноль. Рядом с каждым кабинетом едет `assignee` (кто из команды его ведёт) и `activity` — работа над кабинетом по истории изменений за 30 дней. Вердикты `stale` и `abandoned` значат «правок давно не было» и попадают в `portfolio.idle`; `collecting` и `unknown` — это «оценить нечем», и выдавать их за «никто не работал» нельзя.

Креативы

2

Проверка текстов объявлений и генерация рекламного баннера под товар и оффер.

  • Проверка текстов объявленийчтение

    Проверяет варианты текстов объявлений Директа: лимиты длины (заголовок ≤56, второй заголовок ≤30, текст ≤81), стоп-паттерны (КАПС, лишние «!», превосходные степени без цифр, клише вроде «широкий ассортимент») и даёт рекомендации (нет конкретики/цифр, нет призыва к действию). Бесплатно, живой API не дёргается. По каждому варианту — длины полей, список замечаний (error/warn), флаг ошибок.

  • Генерация рекламного баннераправка·опасно

    Генерирует изображение рекламного баннера под товар/оффер (без текста на картинке — заголовок накладывается поверх в Директе). style: clean | bold | photo. format: square_1080 (1:1) | landscape_1080x607 (16:9) | vertical_1080x1350 (4:5). ⚠️ Тратит месячную квоту генераций вашего тарифа (сверх — докупленные кредиты), и списанное не возвращается — вызывайте только после явной просьбы сгенерировать баннер. Возвращает картинку (url или base64) и остаток квоты.

Контекст и напоминания

5

Экономика аккаунта (маржа, ценность заявки, бренды) и напоминания-задачи в Telegram.

  • Контекст аккаунтачтение

    Экономика и бизнес-контекст активного аккаунта: маржинальность (%), порог окупаемости (breakeven ROAS = 100/маржа), средняя ценность заявки и целевой CPA (в валюте кабинета, как статистика Директа), брендовые слова, заметка. Используй эти цифры в денежных выводах вместо грубого ROAS<1. Поле brandWordsConfigured говорит, проводится ли вообще разделение brand / non-brand: пока оно false, аудит и гигиена по бренду молчат — не выдавай это за «смешения нет».

  • Задать контекст аккаунтаправка·опасно

    Записывает экономику/контекст активного аккаунта. Все поля необязательны — задавай только те, что нужно поменять. Пустая строка/пустой список сбрасывает поле. marginPct — маржинальность 1–95 (задаёт порог окупаемости); avgConversionValue/targetCpa — в валюте кабинета, как статистика Директа; по курсу не пересчитывать; brandWords — бренды/названия компании и их написания: по ним аудит и гигиена отделяют брендовый спрос от небрендового, без них проверка не проводится вовсе (слово короче двух символов не принимается — оно совпало бы почти с любой фразой); note — свободная заметка о бизнесе (сезонность, ограничения).

  • Создать напоминаниеправка

    Ставит напоминание, которое придёт в Telegram в указанный срок («напомни через неделю проверить площадки»). Срок — dueInDays (через сколько дней от сейчас) ИЛИ dueDate (конкретная дата-время ISO), укажите ровно одно. repeatDays — периодическое напоминание: после каждого срабатывания срок сдвигается ещё на repeatDays дней («напоминай раз в 7 дней проверить поисковые запросы»). Лимит — 20 активных напоминаний на пользователя.

  • Список напоминанийчтение

    Список напоминаний пользователя (активные и отработавшие одноразовые — те помечены active:false), по возрастанию срока срабатывания.

  • Удалить напоминаниеправка·опасно

    Удаляет напоминание по id (список id — list_reminders).

Яндекс Метрика

11

MCP-only аналитика сайта: сводка, страницы, источники и воронка по цели.

  • Метрика: сводкачтение

    Сводка посещений, пользователей, отказов, времени на сайте, глубины и просмотров страниц.

  • Метрика: страницычтение

    Страницы входа: трафик, пользователи, отказы и просмотры по URL.

  • Метрика: источникичтение

    Источники трафика с посещениями, пользователями и отказами.

  • Метрика: воронкачтение

    Конверсия по источникам для выбранной цели Метрики.

  • Метрика: устройствачтение

    Визиты, отказы и время по типам устройств. С goalId отчёт считается по этой цели: целевые визиты, целевые посетители и конверсия.

  • Метрика: внешние переходычтение

    Переходы по внешним ссылкам сайта. Считаются по просмотрам, поэтому среза по цели у отчёта нет — для устройств по цели есть metrika_devices, для конверсий по источникам — metrika_funnel.

  • Метрика: расходы Директачтение

    Расходы Директа и конверсии через официальный пресет Метрики.

  • Метрика: запрос Logs APIправка

    Создаёт асинхронный безопасный запрос visits/hits в счётчике клиента (занимает квоту хранения логов; после скачивания удалите его через metrika_logs_delete). Сырые строки не скачиваются автоматически.

  • Метрика: статус Logs APIчтение

    Проверяет готовность асинхронного запроса Logs API. Готовый запрос (status: processed) называет части: parts — сколько их, partNumbers — номера для metrika_logs_download.

  • Метрика: скачать Logs API частьчтение

    Скачивает одну готовую часть Logs API (номер — из partNumbers в metrika_logs_status) с жёстким лимитом размера: читается не больше maxChars символов. Длинная часть отдаётся началом по последнюю целую строку с truncated: true; rows — строк данных в отданном куске (без строки заголовков). После обработки удалите запрос.

  • Метрика: удалить Logs API запросправка·опасно

    Удаляет подготовленный запрос Logs API и освобождает квоту хранения.

VK Реклама

7

Кабинет, кампании, статистика и управление паузой в VK Рекламе — тем же ассистентом.

  • VK Реклама: кабинетчтение

    Кабинет VK Рекламы: id, название, баланс в рублях. Если кабинет не подключён — подскажет подключить на /connect.

  • VK Реклама: кампаниичтение

    Список кампаний VK Рекламы: статус (человеко-читаемо: активна/на паузе/архив), цель, дневной и общий бюджет в рублях.

  • VK Реклама: группы объявленийчтение

    Группы объявлений VK Рекламы, при необходимости — только одной кампании (campaignId).

  • VK Реклама: объявлениячтение

    Объявления VK Рекламы со статусом и статусом модерации, при необходимости — только одной кампании (campaignId).

  • VK Реклама: статистика кампанийчтение

    Дневная статистика кампаний VK Рекламы за период: сводка (показы/клики/расход/заявки/CPC/CPA в рублях) и разбивка по кампаниям. Период — dateFrom+dateTo (YYYY-MM-DD, обязательно ОБЕ даты) либо days (по умолчанию 7). days считается по МОСКОВСКОМУ календарю и ВКЛЮЧАЕТ сегодняшний неполный день, поэтому days: 7 — это не то же окно, что «последние 7 полных суток» на /overview; фактические границы всегда приходят в ответе полем range.

  • VK Реклама: пауза кампанииправка·опасно

    Останавливает показы кампании VK Рекламы.

  • VK Реклама: возобновить кампаниюправка·опасно

    Снимает кампанию VK Рекламы с паузы. Показы и РАСХОД БЮДЖЕТА начинаются сразу, потраченное вернуть нельзя — вызывайте только после явной просьбы пользователя возобновить именно эту кампанию.

Авито Реклама

5

Кабинет, кампании, группы, креативы и статистика Авито Рекламы в безопасном режиме чтения.

  • Авито Реклама: кабинетчтение

    Название, account ID, денежный и бонусный баланс кабинета Авито Рекламы. balance и bonusBalance приходят null, если Авито значение не отдал (метод баланса недоступен приложению или поля нет в ответе), — это «не прочитано», а не нулевой остаток на счету.

  • Авито Реклама: кампаниичтение

    Список рекламных кампаний Авито: статус, CPM/CPC, тип и бюджет. budget приходит null, когда источник бюджет не назвал, — это «не прочитано», а не нулевой бюджет.

  • Авито Реклама: группычтение

    Группы объявлений Авито, опционально одной кампании. budget и price приходят null, когда источник значение не назвал, — это «не прочитано», а не ноль.

  • Авито Реклама: креативычтение

    Креативы Авито, опционально одной группы объявлений.

  • Авито Реклама: статистика кампанийчтение

    Дневная и агрегированная статистика кампаний: показы, клики, CTR, расход, CPC и CPM. Без campaignIds считается ВЕСЬ кабинет. Максимум 100 дней; перевёрнутый или слишком длинный период — отказ invalid_range, а не пустой ответ. CTR и CPC приходят null, когда показов или кликов не было вовсе, — это «не измерено», а не нулевой результат.

Ставки и аукцион

2

Актуальный KeywordBids: установка ставки по объёму трафика и чтение аукционной кривой.

  • Установить объём трафика ключаправка·опасно

    Подбирает ставку Яндекс Директа под целевой объём трафика в поиске (5–100%). После асинхронной операции возвращает фактическую ставку и аукцион.

  • Аукционная кривая ключейчтение

    Возвращает текущие ставки и AuctionBids (позиция, требуемая ставка и прогнозируемая цена клика) по одному ключу или кампании. Для редко показываемых ключей Direct может не вернуть кривую. ⚠️ По campaignId строк столько, сколько в кампании ключей, и одна строка несёт всю кривую — поэтому отдаётся не больше 200 строк (limit поднимает это число до 2000); усечение видно по truncated/total. При усечении остаток НЕ ПРОЧИТАН, а порядок строк — тот, в котором их отдал Директ, то есть произвольный: вывод «вот самые дорогие ключи кампании» по усечённому ответу сделать нельзя. Нужна кривая конкретного ключа — спрашивайте по keywordId.

Подбор фраз до запуска

2

Прогноз показов по фразе с операторами и минус-фразами ещё до её добавления и готовый план склейки дублей с кросс-минусовкой.

  • Будут ли показы по фразечтение

    Прогноз Яндекс Директа «есть ли показы» по фразам ДО того, как их добавили в аккаунт, в разбивке по устройствам. Принимает фразу ЦЕЛИКОМ — с операторами ("", !, +, []) и минус-фразами, — поэтому проверяет именно то, что вы собираетесь добавить. ⚠️ Это НЕ частотность Вордстата, и складывать их в один ответ нельзя: Вордстат отвечает ЧИСЛОМ «сколько раз спрашивали», а здесь Директ отвечает ДА/НЕТ «будут ли показы» — по своей базе, по заданным регионам и с учётом минус-фраз, которых у частотности нет вовсе. Регионы: 225 — Россия, 0 — все регионы, минус перед id исключает регион. ⚠️ Ответ может быть троичным: да, нет и НЕИЗВЕСТНО. Прочерк (null) означает «Директ не сказал», а не «показов не будет» — не пересказывайте его как отказ. Лимит Директа — 20 запросов за 60 секунд на кабинет, поэтому спрашивайте пачкой, а не по одной фразе.

  • Склейка дублей и кросс-минусовкачтение

    Прогоняет список ключевых фраз через сервис Директа: склеивает дубли (фразы, отличающиеся минус-фразами, формой слов и стоп-словами) и делает кросс-минусовку (пара «шуба» и «шуба норковая» превращается в «шуба -норковая», чтобы фразы не конкурировали друг с другом за один запрос). Возвращает ГОТОВЫЕ ИНСТРУКЦИИ: что добавить, что изменить, что удалить. Сам ничего в кабинете не меняет — применяет их человек через add_keywords / update_keyword_text / delete_keyword. Фразам из аккаунта передавайте id (тогда они попадут в update/delete), новым — только текст. weight: при склейке остаётся фраза с наибольшим весом. operations: не задано — выполняются обе операции.

Пресейл-аудит

1

Разбор кабинета БУДУЩЕГО клиента до продажи: оценка и чеклист по кабинету, подключённому кандидатом. Место по тарифу такой кабинет не занимает.

  • Разбор кабинета будущего клиентачтение

    Пресейл-аудит: оценка 0–100 и чеклист по кабинету, подключённому КАНДИДАТОМ на странице «Подключения» (будущий клиент дал доступ до продажи). Работает только по таким кабинетам: по кабинетам действующих клиентов разбор делается обычными инструментами анализа. Без параметра — список подключённых кандидатов; с `login` — оценка, категории, главные проблемы и гигиена по одному из них. ⚠️ `topIssues` — усечённый срез со счётчиками `{total, returned, truncated}`: сколько проблем нашлось всего, говорит `total`, а не длина списка. ⚠️ Прочерк (null) в оценке категории означает «проверка не проводилась», а не ноль. ⚠️ `grade` — ступень, которую мы готовы ЗАВЕРИТЬ: при неполном чеклисте она бывает ниже ступени балла, и тогда рядом едет `measuredGrade` (что кабинет набрал по проведённым проверкам). Это ограничение нашей осведомлённости, а не находка в кабинете — так и пересказывать.

Аудитории как условие показа

5

Ретаргетинг в РСЯ: условия нацеливания на аудиторию в группах объявлений — со своей ставкой, приоритетом и состоянием. Это не корректировка ставки за аудиторию, а то, чем показы включаются.

  • Условия показа по аудиториичтение

    Условия нацеливания на аудиторию (сервис audiencetargets): что реально включает показы по ретаргетингу и по интересам к мобильным приложениям. Отдаёт группу, ставку в сетях, приоритет и СОСТОЯНИЕ (ON — показы идут, SUSPENDED — остановлено вручную, UNKNOWN — состояние не прочитано). Читается адресно: задайте кампании, группы, идентификаторы условий, списки ретаргетинга или интересы — без фильтра Директ отказывает и списывает баллы. ⚠️ Прочерк (null) в ставке и приоритете означает «Директ не прислал», а не ноль. Не путайте с корректировкой ставки за аудиторию (list_audiences / get_bid_adjustments): это разные сущности разных сервисов.

  • Включить показы по аудиторииправка·опасно

    Создаёт условия нацеливания на аудиторию в ГРУППАХ объявлений — то, чем включается ретаргетинг в РСЯ. На каждое условие: adGroupId и ровно одно из двух — retargetingListId (список из list_retargeting) или interestId (интерес к категории мобильных приложений, только для групп продвижения приложений). contextBid — собственная ставка условия в сетях, в валюте кабинета, как статистика Директа; по курсу не пересчитывать (пределы Директа зависят от валюты); работает при РУЧНОЙ стратегии кампании. strategyPriority (LOW/NORMAL/HIGH) — приоритет при АВТОМАТИЧЕСКОЙ стратегии. Если не задать ничего, Директ поставит минимальную ставку и средний приоритет. ⚠️ ПОКАЗЫ И РАСХОД начинаются сразу, как только условие создано в работающей группе, и потраченное вернуть нельзя — вызывайте только после явной просьбы пользователя включить эту аудиторию. ⚠️ Это не корректировка ставки за аудиторию (add_audience_target): та не даёт показов сама по себе. Ответ — ПООБЪЕКТНЫЙ: часть условий может быть создана, а часть отклонена, и это не ошибка вызова.

  • Остановить показы по аудиторииправка·опасно

    Останавливает показы по условиям нацеливания на аудиторию (состояние SUSPENDED). Обратимо — resume_audience_conditions возвращает показы, накопленная статистика при этом сохраняется. Предпочтительнее удаления, если аудиторию когда-нибудь включат обратно. Ответ пообъектный: уже остановленное условие Директ отклоняет, и это не отказ по остальным.

  • Возобновить показы по аудиторииправка·опасно

    Возвращает показы по остановленным условиям нацеливания на аудиторию (состояние ON). Ответ пообъектный: условие, которое и так работало, Директ отклоняет отдельной строкой.

  • Удалить условие показа по аудиторииправка·опасно

    Удаляет условия нацеливания на аудиторию НАВСЕГДА: вместе с условием уходит его накопленная статистика, и восстановить её нельзя. Если аудиторию могут включить обратно — останавливайте (pause_audience_conditions), а не удаляйте. Без confirmed:true НИЧЕГО не удаляет: отдаёт предпросмотр — какие именно условия уйдут (группа, кампания, состояние, список ретаргетинга). Перескажите предпросмотр пользователю и вызовите повторно с confirmed:true только после явного согласия. За вызов — не больше 50 условий. Ответ пообъектный: часть условий может не удалиться.

Выгорание объявлений

1

Объявления, которые «устали»: показы прежние, а CTR заметно упал за последнюю неделю. Падение вместе с показами и недостаток данных названы отдельно.

  • Выгорание объявленийчтение

    Находит объявления, которые «устали»: показы прежние, а CTR заметно упал. Сравниваются последние 7 полных дней с тремя неделями до них, по каждому объявлению отдельно в поиске и в сетях. «Устало» (tired) — CTR упал не меньше чем на 30% при показах не ниже 70% и не выше 150% от обычной недели, и падение статистически отличимо от случайности. «Наблюдать» (watch) — падение от 15%, или CTR упал вместе с показами (это скорее аукцион, ставки или спрос, а не текст), или показы выросли кратно (сменился состав трафика, и с прежним CTR его сравнивать нельзя; недобор кликов тогда не считается), или кликов мало для уверенного вывода. ok — CTR не упал и на 15% (падение от 15% вместе с показами — watch, а не ok). insufficient_data — меньше 1000 показов в обычную неделю, меньше 500 за последнюю или меньше 20 ожидаемых кликов: это «не измерено», а не «всё в порядке». CTR и падение — в процентах. По умолчанию в списке только tired и watch; includeAll добавляет остальные. Сводка counts считается до усечения.

Площадки и A/B

3

Новые площадки РСЯ за неделю, исключение площадки сразу во всех кампаниях (с предпросмотром и защищённым списком) и сравнение объявлений с проверкой значимости.

  • Новые площадки РСЯчтение

    Площадки, где реклама начала показываться впервые: есть показы за последние days дней (по умолчанию 7) и ни одного показа за baselineDays дней перед ними (по умолчанию 28). С кампанией — новые для этой кампании, без неё — новые для всего кабинета. Сортировка по расходу. protected: true — площадка в защищённом списке кабинета, исключать её не предлагай; null — список прочитать не удалось. baselineEmpty: true — в прошлом окне площадок не было вовсе (молодой кабинет или пустой отчёт): тогда «новыми» выглядят все. Список campaigns внутри строки урезается до 10 самых дорогих кампаний (campaignLimit поднимает до 200); срезанное называют поле campaignsTotal строки и блок campaignsTruncated, итоги строки посчитаны по всем кампаниям. Исключить площадку во всех кампаниях — exclude_placement_everywhere.

  • Исключить площадку во всём кабинетеправка·опасно

    Добавляет одну или несколько площадок РСЯ в исключения сразу всех кампаний кабинета, где за последние 30 дней были показы в сетях (или в перечисленные campaignIds). Прежние исключения кампаний сохраняются. Без confirmed:true ничего не меняет: возвращает предпросмотр — какие кампании затронет, сколько площадок в их списке сейчас, где площадка уже исключена и где список переполнится. Перескажите предпросмотр пользователю и вызовите с confirmed:true только после его согласия. Площадки из защищённого списка кабинета (страница «Площадки») исключать нельзя: такой вызов отклоняется целиком до любой записи. После записи ok:true — только если площадки добавлены везде; partial:true — часть кампаний не записана (failed) или пропущена (skipped), и в них площадки продолжают получать показы — скажите это пользователю, не называя исход успехом.

  • A/B объявлений со значимостьючтение

    Сравнивает объявления внутри каждой группы кампании по конверсии (CR) и говорит, есть ли ДОКАЗАННЫЙ победитель — то же правило, что в веб-кабинете. Вывод делается, только если у лидера и второго места не меньше 30 кликов (enoughData) и достоверность превышает порог с поправкой на число объявлений (requiredConfidence; у пары — 95%). При малом числе заявок (ожидаемая частота в ячейке ниже 5) значимость считается точным тестом Фишера, иначе z-тестом долей — поле method. winnerAdId null — победителя назвать нельзя: данных мало или разница не значима. Не объявляй победителя сверх этого. Сырые метрики без вывода — ad_stats.

Проверки по расписанию

3

Сервис сам проверяет кабинет в выбранное время — сводка, лишние траты, новые площадки, выгорание объявлений — и присылает итог в Telegram. Кабинет только читается.

  • Проверки по расписаниючтение

    Проверки кабинета, которые пользователь завёл по расписанию: что проверяется, когда (время московское) и итог последнего прогона. lastResult: null — прогона не было или он не удался (это НЕ «проблем нет»). Итог каждой проверки приходит в Telegram того, кто её завёл. Лимит — на включённые проверки всей команды: used — включено у команды, mine — из них ваших. Руководитель видит проверки всей команды (mine: false — завёл коллега).

  • Завести проверку по расписаниюправка

    Сервис сам будет проверять кабинет в выбранное время и присылать итог в Telegram пользователя. Проверка только ЧИТАЕТ кабинет, правки применяет человек. Виды: summary — Сводка и баланс: Расход, прибыль и лишние траты за неделю, на сколько дней хватит баланса. Из сохранённых данных, без запросов к Директу. leaks — Лишние траты: Ключевые фразы, площадки и автотаргетинг, которые тратят без заявок, — с суммами. Из сохранённых данных, без запросов к Директу. new_placements — Новые площадки РСЯ: Площадки, где реклама начала показываться за последнюю неделю, с расходом. Два отчёта Директа. ad_fatigue — Выгоревшие объявления: Объявления, у которых CTR заметно упал при тех же показах. Один отчёт Директа. cadence: weekly (раз в неделю, weekday 1 — понедельник … 7 — воскресенье) или daily. hour — час по Москве, 0–23. login — кабинет; не задан — активный. Лимит — на включённые проверки всей команды.

  • Удалить проверку по расписаниюправка·опасно

    Удаляет проверку по её id (из list_scheduled_checks). Кабинет Директа не меняется.

Попробуйте на своём аккаунте

7 дней тарифа «Профи» бесплатно на регистрации — с полным ассистентом в Claude и ChatGPT. Токен Яндекса вводить не нужно, подключение по OAuth.

Сначала посмотреть, как это подключается: инструкция со скриншотами для Claude, ChatGPT, Cursor и Codex.

Частые вопросы

Что нужно, чтобы подключить ассистента к рекламному кабинету?

Подписка с доступом к MCP, рекламный кабинет, подключённый по OAuth, и адрес коннектора с этой страницы. Ключи API и токены вводить не нужно: коннектор добавляется по ссылке, дальше вы входите кнопкой. Есть отдельная инструкция со скриншотами каждого экрана — для Claude, ChatGPT, Cursor, VS Code и Codex.

Ассистент может сам изменить кампании, или он только читает?

И то и другое, но раздельно и с пометками. Инструменты, меняющие аккаунт, помечены «правка», а перезаписывающие и удаляющие — «опасно»: перед таким действием ИИ-клиент спрашивает подтверждение. Если правки не нужны вовсе, весь коннектор переводится в режим только чтения одним переключателем в настройках — тогда пишущие инструменты ассистенту просто не выдаются.

Подключил, но в чате видны не все инструменты или список старый

Клиент запоминает набор инструментов в момент подключения и сам его не обновляет. После того как мы выкатили новые, коннектор нужно переподключить — тогда список обновится. Та же причина, если инструментов не видно совсем: проверьте, что вход завершился и тариф даёт доступ к MCP.

С какими ИИ-клиентами это работает?

Напрямую — Claude и ChatGPT, где есть пользовательские коннекторы. Cursor, VS Code, Cline, Zed, Codex и другие MCP-клиенты подключаются тем же адресом через мост mcp-remote. Набор инструментов везде один и тот же — он зависит от тарифа, а не от клиента.

Какие рекламные площадки доступны ассистенту?

Яндекс Директ целиком — кампании, группы, объявления, ключи, ставки, минус-слова, статистика по срезам и поиск неэффективных расходов. VK Реклама — кампании, группы, статистика, пауза и запуск. Авито Реклама — только чтение: кампании, группы, объявления и статистика. Рядом — Яндекс Метрика, подбор слов Вордстата и генерация баннеров.

Что будет с доступом к кабинету, если мы перестанем пользоваться?

Доступ выдан по OAuth от имени владельца рекламного кабинета и отзывается в настройках Яндекса в любой момент — кампании и настройки при этом не меняются. Сервис ничего не переносит внутрь себя и не требует передавать пароли.