Прогноз бюджета Директа через Claude Code: одна команда — и ИИ делает всё сам
Каждый маркетолог, который работает с Яндекс Директом, знает эту боль: нужно оценить бюджет для нового проекта. Открываешь интерфейс Директа, вбиваешь ключевые фразы по одной, ждёшь прогноз, копируешь цифры в табличку. На 50 фраз уходит час. На 200 — полдня. А если нужно сравнить три региона — умножай на три.
Я написал скрипт, который делает всё это за минуту. Даёшь ему Excel-файл с ключевыми словами, указываешь регион — получаешь готовый отчёт с показами, кликами, расходом и CPC по каждой фразе. Рассказываю, как это работает и почему это экономит не только время, но и нервы.
Зачем автоматизировать прогноз бюджета
Сначала честно про масштаб проблемы. Вот как выглядит типичный процесс прогнозирования вручную:
Вручную
- Открыть «Прогноз бюджета» в Директе
- Вбить фразы (лимит — 100 за раз)
- Выбрать регион
- Дождаться расчёта
- Скопировать данные в Excel
- Повторить для следующей порции
- Свести всё в один отчёт
Результат: 1-3 часа на один регион
Скриптом
- Подготовить Excel с ключами
- Запустить одну команду
- Получить готовый отчёт
Результат: 1-2 минуты на любое количество фраз
Разница не только в скорости. Когда прогноз занимает минуту, ты перестаёшь лениться его обновлять. Изменились цены на аукционе? Запусти скрипт ещё раз. Добавились новые ключи? Дописал строки в Excel, запустил. Не нужно проходить весь цикл заново.
Что нужно на входе
Скрипт принимает обычный Excel-файл с тремя столбцами:
| A: Ключевая фраза | B: Маска (группа) | C: Минус-слова |
|---|---|---|
| купить трубу стальную | трубы стальные | бу, самовывоз |
| труба стальная цена | трубы стальные | бу, самовывоз |
| профнастил для забора купить | профнастил | своими руками, размеры |
| профнастил цена за лист | профнастил | размеры |
Столбец B (маска) — это название группы, по которой потом считается агрегация в сводной таблице. Столбец C (минус-слова) — необязательный, но сильно повышает точность прогноза: скрипт автоматически вычитает нецелевые запросы.
Формат простой — его можно подготовить за 10-15 минут в любом табличном редакторе. Или экспортировать из Key Collector, Яндекс.Вебмастера, любого другого инструмента для сбора семантики. Я же делаю его тем же SKILLS в Claude Code
Как запустить
Одна команда в терминале:
python forecast_from_masks.py --input keywords.xlsx --geo "Москва"
Скрипт берёт фразы из файла, отправляет их пачками в Яндекс Директ Forecast API и собирает результаты в готовый Excel-отчёт. Под капотом — тот же API, который использует интерфейс Директа в разделе «Прогноз бюджета», только без ручного кликанья.
Скрипт сам батчит запросы по 100 фраз, выдерживает паузы между обращениями к API (чтобы не попасть под лимиты), обрабатывает ошибки и повторяет запросы при сбоях. Всё, что нужно от вас — подождать минуту-другую.
Что на выходе: трёхлистовый Excel
Результат — профессиональный отчёт с тремя листами:
Данные
Полная таблица: каждая фраза с показами, кликами, расходом, CTR, CPC и CPM
Сводная
Агрегация по маскам: видно, какие группы самые дорогие и где больше трафика
Параметры
Метаданные: регион, дата, количество фраз, источник данных
Вот как выглядит лист «Данные»:
| Маска | Ключевая фраза | Показы | Клики | Расход | CTR | CPC |
|---|---|---|---|---|---|---|
| трубы стальные | купить трубу стальную | 2 340 | 187 | 28 050 ₽ | 8,0% | 150 ₽ |
| трубы стальные | труба стальная цена | 1 870 | 142 | 19 880 ₽ | 7,6% | 140 ₽ |
| профнастил | профнастил для забора купить | 3 120 | 256 | 23 040 ₽ | 8,2% | 90 ₽ |
| ИТОГО | 7 330 | 585 | 70 970 ₽ | 8,0% | 121 ₽ | |
В сводной таблице те же данные сгруппированы по маскам — сразу видно, какое направление сколько стоит. Удобно показывать руководству или использовать для медиаплана.
Честно про рекламу и маркетинг
Разбираю реальные кейсы, делюсь цифрами и инструментами в Telegram-канале. Без воды и мотивационных цитат.
Подписаться на каналGEO-пресеты: регионы одной командой
Одна из самых полезных фич — пресеты для регионов. Вместо того чтобы вручную перечислять ID из геодерева Яндекса, можно использовать готовые названия:
python forecast_from_masks.py --input keywords.xlsx --geo "мск300"
Что входит в «мск300»
Пресет «Москва + 300 км» автоматически раскрывается в 16 регионов:
Москва Московская обл. Тула Тверь Калуга Рязань Владимир Ярославль Иваново Кострома Смоленск Орёл Брянск Липецк Тамбов ВологдаКроме пресетов, поддерживаются все крупные города России — просто пишите название кириллицей. Скрипт сам найдёт нужный ID региона.
Технические детали для любопытных
Скрипт работает через Яндекс Директ API v4 в JSON-формате. Это тот же API, который использует веб-интерфейс Директа. Авторизация — через OAuth-токен, который можно получить в Яндекс.OAuth.
Что происходит под капотом:
- CreateNewForecast — создаёт задачу на прогноз с вашими фразами, регионом и минус-словами
- GetForecastList — поллит статус задачи каждые 10 секунд (Pending → Processing → Done)
- GetForecast — забирает результаты: показы, клики, расход, ставки по позициям
- DeleteForecastReport — подчищает за собой
Фразы батчатся по 100 штук (лимит API). Между батчами — пауза 3 секунды, чтобы не упереться в rate limit. При ошибках — автоматический ретрай с экспоненциальным отступом. На практике 200 фраз обрабатываются за 1-2 минуты.
Для агентских аккаунтов можно указать логин клиента через параметр
--login. Скрипт подставит заголовокClient-Loginи будет работать от имени клиента.
Зависимости минимальные: requests, openpyxl, python-dotenv. Ни pandas, ни numpy — только то, что реально нужно.
Когда это особенно полезно
Вот сценарии, в которых скрипт экономит больше всего времени:
- Сравнение регионов. Запустите скрипт для Москвы, Питера и Екатеринбурга — получите три отчёта за 5 минут. Вручную это заняло бы полдня
- Обновление прогноза. Цены на аукционе меняются каждую неделю. Раньше обновить прогноз значило пройти весь процесс заново. Теперь — одна команда
- Большая семантика. 300-500 фраз — норма для серьёзного проекта. Вбивать их вручную — просто нереально, скрипт справляется за пару минут
- Медиапланирование. Сводная таблица по маскам — готовая основа для медиаплана. Не надо агрегировать вручную
Что скрипт не делает
Честно скажу про ограничения:
- Не подбирает ключевые слова. Для этого есть отдельный скрипт (
yandex_forecast.py), который парсит сайт и генерирует семантику. Но если ключи у вас уже есть —forecast_from_masks.pyбыстрее и проще - Не учитывает сезонность. API Яндекса даёт прогноз на текущий момент. Для планирования на полгода вперёд нужно делать поправки вручную
- Не заменяет аналитику. Прогноз — это отправная точка. Реальные цифры после запуска кампании могут отличаться. Но как ориентир для бюджетирования — работает отлично
Итого: цифры экономии
Главное — не скорость сама по себе, а то, что прогноз перестаёт быть «разовым мероприятием». Когда он делается за минуту, его можно обновлять каждую неделю, сравнивать динамику, оперативно реагировать на изменения ставок.
Выводы и рекомендации
Если вы работаете с Яндекс Директом и регулярно оцениваете бюджеты — автоматизация прогноза экономит десятки часов в год. Не потому что каждый прогноз долгий, а потому что их нужно делать часто.
Мои рекомендации:
- Начните с подготовки шаблона Excel. Три столбца: фраза, группа, минус-слова. Один раз заведёте — будете переиспользовать для разных проектов
- Используйте минус-слова. Без них прогноз завышен — API считает все вложенные запросы, включая мусорные
- Сравнивайте регионы. GEO-пресеты делают это тривиальным — покажите разницу в бюджетах для разных городов
- Обновляйте прогнозы регулярно. Ставки на аукционе меняются — актуальные данные лучше устаревших
Я собрал шаблоны, которые использую в работе с клиентами: медиаплан, учёт рабочего времени, аналитические отчёты. Скачайте бесплатно на странице шаблонов.
Нужна помощь с настройкой рекламы или автоматизацией аналитики? Напишите — разберёмся вместе.
Написать мне