Архитектуру системы целиком - обновленная версия с деревом решений биддера. PDF, бесплатно: забирайте в боте
В первой части я показал архитектуру своего роботизированного Директа - четыре скрипта, серверлесс, управление через терминал. Главный вопрос был: а результат-то есть? Неделя прошла - есть цифры, приятные.
Контекст
Бюджет на Директ приближается к миллиону в месяц. Около 50 кампаний, 20 тысяч групп объявлений, десятки тысяч ключевых слов. На таком масштабе ручное управление ставками невозможно физически - глаз не хватит, времени не хватит, внимания не хватит. А средняя цена клика за три года выросла вдвое - аукцион перегрет, и без автоматики каждый месяц обходится все дороже.
Автоматика бывает разная. Автостратегии Яндекса работают, но ты не видишь логику - алгоритм решает за тебя, ты смотришь на результат постфактум. Внешние биддеры - та же история, только за деньги.
Я хотел другого - систему, где каждое решение прозрачно. Не потому что чужие плохие - а потому что на моем масштабе мне нужно понимать что происходит с каждым рублем.
Что сделал
Написал свой биддер. Логика управления ставками давно известна - ничего революционного тут нет, стандартные подходы которые используются годами. Новое в другом: я собрал это сам за выходные через Claude Code. Без команды разработчиков, без подрядчиков, без месяцев ожидания.
Биддер - это дерево решений. Каждый ключ из десятков тысяч проходит через цепочку проверок, и на каждом уровне - свое решение.
Сначала безопасность - биддер управляет только кампаниями из белого списка, остальные не трогает. Потом классификация запроса - покупательский, исследовательский, общий - каждый тип со своим потолком. Потом позиция в выдаче - топ-5 и ниже пятерки это два разных рынка с разной экономикой.
И главное - реальная цена аукциона. Биддер не бьет в потолок вслепую. Запрашивает у Яндекса через Direct API сколько конкретная позиция стоит прямо сейчас и ставит ровно столько, сколько нужно.
Но ставка - это не просто "возьми минимум из двух чисел". Биддер смотрит на статистику каждого ключа и принимает разные решения в зависимости от ситуации.
Четыре ситуации - четыре решения
Конкретные правила у каждого бизнеса свои - зависит от ниши, маржи, конкуренции. Но типичные ситуации одни и те же.
Лидер который переплачивает. Ключ на первом месте, хороший CTR, клики идут - все работает. Но ставка стоит 200 рублей, а аукцион говорит что первое место стоит 124. Зачем платить больше если ты уже выигрываешь? Биддер снижает до аукционной цены. Минус 38% на ровном месте.
Высокая позиция, ноль кликов. Ключ показывается на второй позиции, но никто не кликает - CTR ноль. Мы платим за показы, не получая трафика. Обычный биддер этого не видит - позиция хорошая, значит все нормально. Мой видит: позиция есть, кликов нет - запрос нерелевантный, давим ставку до минимума. Деньги перераспределяются на рабочие запросы.
Запрос выпал из выдачи. Покупательский ключ, который раньше давал клики, перестал показываться - ставка оказалась ниже порога входа. Обычный биддер не заметит - нет показов, нет данных, нет действия. Мой видит дыру и возвращает ключ в аукцион по реальной цене входа.
Конкуренты разогрели аукцион. Спецразмещение стоило 150, стало 245 - конкуренты вошли в нишу и задрали цены. Лезть в ценовую войну? Биддер решает иначе: если CTR и так невысокий, дешевле отступить на гарантию за 67 рублей, чем платить тройную цену за верхнюю позицию.
Четыре ситуации - четыре разных решения. Не формула, а логика. Не одно правило на все случаи, а дерево которое учитывает контекст каждого ключа.
Результат за первую неделю
Запустил на 12 кампаниях - контролируемая выборка, не все сразу. Торопиться с миллионным бюджетом - дорогое удовольствие.
Средняя ставка упала с 108 до 78 рублей. Минус 28%. Позиции без изменений. Показы без изменений. Клики без изменений. Просто перестал переплачивать.
8 547 ключевых слов обработано. Подавляющее большинство ставок снижено - платили больше чем рынок просил. 101 ставка поднята - запросы которые выпали из выдачи, биддер вернул в работу. Остальные уже были в оптимуме.
Масштаб переплаты удивил больше всего. Думал разница будет 5-10%. Оказалось 28%.
11 тысяч решений за минуту
Самое неочевидное преимущество - скорость. Человек может пересмотреть ставки на 50-100 ключах в день. Биддер обрабатывает 11 тысяч за минуту. Дважды в день. Без усталости, без выходных, без настроения.
На масштабе в десятки тысяч ключей вопрос не в качестве управления - а в том, возможно ли оно вообще руками.
Зачем рассказываю
У каждого бизнеса с бюджетом на Директ есть ставки, которые никто не пересматривал месяцами. Деньги, которые уходят в аукцион просто потому что "так настроили и забыли". Неважно кто настраивал - агентство, фрилансер, сам. Без автоматики с обратной связью ставки устаревают быстрее чем их успевают проверять.
Раньше для своего биддера нужна была команда. Сейчас - нет. Это изменилось.
Серия "Роботизированный Директ":
Часть 1: архитектура - 4 скрипта, серверлесс, терминал
Часть 2: биддер и первые результаты ← вы здесь
Часть 3: грабли Яндекс Direct API (скоро)
Архитектуру системы целиком - обновленная версия с деревом решений биддера. PDF, бесплатно: забирайте в боте