Добавить в корзинуПозвонить
Найти в Дзене
Тимур. Версия N

Строю роботизированный Директ - делюсь процессом

Yandex Direct API, Python, серверлесс-функции, автоматический биддер, синхронизация с каталогом через скрипты - звучит как проект команды разработчиков. Но я не программист, а предприниматель, который управляет всем этим через чат в терминале. Полная архитектура системы - схема, скрипты, поток данных, логика биддера. PDF, бесплатно: забирайте в боте Больше половины продаж моей компании идет из Яндекс Директа. Бюджет приближается к миллиону в месяц - расход большой, контроль минимальный. Я решил это изменить - построить свою систему управления рекламой. Код пишет Claude Code (AI-агент в терминале), а я ставлю задачи и принимаю решения. Хочу рассказать, что уже есть, куда иду, и где набиваю шишки. Кто уже проходил этот путь - буду рад советам в комментариях. Сначала вели рекламу сами - потом отдали агентству, потом снова забрал. Roistat подключен, аналитика была, я видел, какие каналы приносят. Но система была шаблонная, огромная - тысячи групп, созданные в разное время по разной логике
Оглавление

Yandex Direct API, Python, серверлесс-функции, автоматический биддер, синхронизация с каталогом через скрипты - звучит как проект команды разработчиков. Но я не программист, а предприниматель, который управляет всем этим через чат в терминале.

Полная архитектура системы - схема, скрипты, поток данных, логика биддера. PDF, бесплатно: забирайте в боте

Больше половины продаж моей компании идет из Яндекс Директа. Бюджет приближается к миллиону в месяц - расход большой, контроль минимальный. Я решил это изменить - построить свою систему управления рекламой. Код пишет Claude Code (AI-агент в терминале), а я ставлю задачи и принимаю решения. Хочу рассказать, что уже есть, куда иду, и где набиваю шишки. Кто уже проходил этот путь - буду рад советам в комментариях.

Предыстория

Сначала вели рекламу сами - потом отдали агентству, потом снова забрал. Roistat подключен, аналитика была, я видел, какие каналы приносят. Но система была шаблонная, огромная - тысячи групп, созданные в разное время по разной логике, ставки как средняя температура по больнице, тексты из шаблона который не менялся годами.

Я хотел другого - крутить настройки когда хочу, одним сообщением, без менеджера промежуточного. Не объяснять зачем, не согласовывать каждую правку с моим исполнителем или менеджером РА. И чтобы система сама ежедневно отсматривала статистику и подкручивала то, что нужно - ставки, тексты, минус-слова. Подход индивидуальный, контроль тотальный.

Масштаб задачи

Несколько тысяч товаров в каталоге. Около 50 кампаний по категориям. Около 20 000 групп объявлений. Десятки тысяч ключевых слов. Это не стартап с десятью объявлениями - это масштаб промышленный, где вручную управлять принципиально невозможно. Каждый день данные меняются, каждый день нужны решения - и человек здесь проигрывает алгоритму безоговорочно.

Что хочу получить в итоге

Две вещи:

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

Второе - управление этой системой через Claude Code в терминале. Не лезть в код руками - а писать задачу человеческим языком: "подними ставки на группы где CTR выше 5% но позиция ниже третьей" или "добавь быстрые ссылки во все объявления новой кампании" - и скрипт пишется, тестируется, запускается. Терминал вместо интерфейса - мой стиль управления.

Что уже сделано

Написал четыре скрипта - каждый закрывает конкретную боль:

direct_sync.py - синхронизация рекламы с каталогом товаров. Появился новый товар - группа с объявлениями и ключами создается автоматически. Убрали товар - группа ставится на паузу. Каталог и Директ связаны намертво - рассинхрон исключен.

fetch_stats.py - сбор статистики по каждой группе: позиции, клики, CTR, расход - все в одном месте, каждый день. Раньше ковырял отчеты вручную - теперь данные текут сами, структурно и прозрачно.

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

patch_sitelinks.py - быстрые ссылки. Отдельный скрипт, потому что Яндекс не принимает их вместе с объявлениями через API - пришлось разбираться с отдельным эндпоинтом (sitelinks.add). Документация молчит - пришлось копать.

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

-2

Грабли от Яндекса

Организацию из Яндекс.Бизнеса через API не проставишь - только руками через интерфейс. Документация Direct API местами врет - запрашиваешь больше 10 кампаний в одном batch-запросе и получаешь пустой ответ без объяснений. Баг, который нигде не описан - находишь только методом научного тыка. Формат объявлений для РСЯ описан тремя способами в документации - работает один, остальные декоративные.

Каждую такую штуку раскапываешь пробами, нервами, перебором вариантов. Claude Code тут реально спасает - перебирает запросы быстрее, чем я успеваю злиться. Робот терпеливый - я нет, и это прекрасный альянс.

Почему не готовые сервисы

Стартапов с AI-рекламой десятки - K50, Marilyn, Alytics, автостратегии самого Яндекса. Три причины, почему делаю свое:

Контроль. Готовый сервис - это опять черный ящик непроглядный. Алгоритм чужой, логика закрытая. Здесь я понимаю каждое правило и могу поменять логику за минуту - мгновенная перестройка вместо тикета в саппорт.

Деньги. Биддер стоил 20К/мес, нормальный сервис управления на моем масштабе - 30-50К/мес. Экономия полумиллиона в год - не абстрактная, а конкретная. YC Functions стоит копейки - буквально.

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

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

-3

Что дальше

Цель - чтобы система сама каждый день смотрела статистику и принимала решения: где поднять ставку, где поменять текст, где поставить на паузу неэффективную группу. Полная автономность - я только задаю рамки и проверяю результаты.

В следующем посте расскажу как работает биддер - логика ставок, правила, первые результаты после запуска.

Кто уже делал что-то подобное - автоматизация Директа через API, свои биддеры, управление через AI - поделитесь опытом в комментариях, интересно сравнить подходы и какие еще минные поля меня ждут.

Только терминал, только хардкор.

Полная архитектура системы - схема, скрипты, поток данных, логика биддера. PDF, бесплатно: забирайте в боте