Документация/Рекламный биддер: стратегии, бюджет и расчёт ставок
Руководство по работе с магазином
Рекламный биддер: стратегии, бюджет и расчёт ставок
Руководство по рекламному профилю v2: данные кампаний, единицы денег, целевой ДРР, ограничения, расписание расчётов и причины, по которым ставка остаётся прежней.
Зачем это нужно
Биддер превращает согласованные правила рекламы в повторяемый расчёт по выбранным кампаниям. Его задача — показать допустимое предложение, а не увеличивать ставку при любом падении продаж. Он учитывает полноту данных, статистику, бюджетные условия, запас и ограничения самой кампании.
Пример из работы магазина
«По этим кампаниям рассчитывай предложения с целевым ДРР и согласованным потолком ставки. Объясняй случаи, где данных недостаточно. Пока не меняй рекламу на WB».
Как начать
Подключите данные рекламы и агентский доступ operations.read, operations.plan, tasks.read.
Создайте или продолжите задачу рекламы в памяти. Согласуйте кампании, бюджет, цель и ограничения.
Проверьте automations.catalog и automations.credentials.requirements для advertising, затем прочитайте текущую конфигурацию.
Подготовьте профиль v2 сначала отключённым. После проверки отдельно включайте расчёт предложений и контролируйте историю.
Что вы получите
Решение по каждой кампании: удержать, предложить повышение/снижение ставки или защитную остановку, с причинами и ссылками на источники.
Что важно учитывать
Текущий режим — observe/shadow. Изменения ставок WB, переводы денег, автоматическое возобновление кампаний и общий распределитель бюджета магазина не включены. Некоторые обязательные входы расчёта могут отсутствовать у реального магазина; это приводит к hold, а не к выдуманной ставке.
Структура рекламного профиля
Один активный профиль advertising описывает набор campaign ID, стратегию и ограничения. Задача в памяти хранит цель бизнеса, профиль — её проверенную версию для расчёта, очередь — отдельные запуски, история — результаты. Создание профиля не создаёт кампанию Wildberries.
Часть
Поля и назначение
Идентичность версии
config_id, schema_version=1, expected_config_sha256; последняя прочитанная версия защищает от перезаписи чужой правки.
Основание
source_binding.card_id и card_version из tasks.resume; при сохранении проверяется текущая задача.
Кампании
target_ids — строковые ID рекламных кампаний, не nmID товаров.
bidder.version=2, bidder.strategy=fixed или target_drr.
Запуск
bidder.enabled и interval_seconds; включение запускает периодический shadow-расчёт.
Правила
Для v2 rules=[]; произвольные legacy-правила с новым профилем не смешиваются.
Какие данные читает биддер
Вход
Единица / смысл
Для чего нужен
current_bid_kopecks, min_bid_kopecks
Целые копейки; текущая ставка и подтверждённый минимум платформы.
Допустимый коридор и шаг.
spend_rub, attributed_revenue_rub
Рубли за окно статистики; выручка, отнесённая WB к рекламе.
Расчёт ДРР. Это не вся выручка магазина.
clicks
Число кликов.
Проверка минимальной выборки.
daily_spend_kopecks, spend_date, spend_timezone
Дневной расход именно за локальный день профиля.
Сравнение с дневным лимитом и резервом. Расход окна статистики не подставляется вместо дневного.
stock_cover_days, stock_complete
Дни запаса и признак достаточности данных.
Защита при малом запасе; неизвестное значение не считается нулём.
captured_at, metrics_captured_at
Время состояния кампании и её статистики.
Независимая проверка свежести.
attribution_window_end
Конец окна атрибуции.
Ожидание запаздывающих заказов.
status, payment_type, bid_type
Активность, cpm/cpc, manual/unified.
Проверка подходящего типа кампании.
bid_change_supported, pause_supported
Подтверждённые адаптером возможности.
Числовая ставка сама по себе не доказывает возможность её изменения.
manual_stop, pending_command, external_change
Остановка, незавершённая команда, внешняя правка.
Предотвращение противоречащих друг другу действий.
data_complete, metrics_complete, source_run_ids
Достаточность снимка и происхождение.
Объяснимость решения и отказ при недостатке данных.
Наличие поля в модели не гарантирует, что источник умеет заполнить его для каждой кампании. Если нет дневного расхода, запаса, конца атрибуции или минимума ставки, оптимизация может остаться заблокированной.
Настройки стратегии и бюджета
Поле
Как задаётся
Поведение
bidder.strategy
fixed / target_drr
Фиксированная цель либо движение по ДРР.
bidder.fixed_bid_kopecks
Целые копейки
Целевая ставка стратегии fixed; не гарантирует движение за один шаг.
bidder.target_drr
Доля: 0.18 = 18%
Цель расход / рекламная выручка.
bidder.deadband
Относительная доля: 0.1 = 10%
При цели 18% удержание в диапазоне 16,2–19,8%.
bidder.economic_bid_cap_kopecks
Копейки
Явно согласованный дополнительный потолок; сервис не выводит его автоматически из прибыли.
bidder.daily_budget_kopecks
Копейки на каждую кампанию
Не общий лимит всех кампаний магазина.
bidder.budget_reserve_kopecks
Копейки
Защитный порог расхода = дневной лимит − резерв.
bidder.require_stock
true / false
Требовать данные запаса для оптимизации.
bidder.attribution_lag_seconds
Секунды
Пауза после конца окна атрибуции.
policy_confirmed
true / false
Фиксирует согласованность условий; не включает исполнение WB.
bidder.enabled
true / false
Включает или прекращает повторяемые расчёты предложений.
interval_seconds
10–86400 секунд
Частота расчёта, а не частота изменения ставки.
Поле guardrails
Смысл
min_bid_kopecks / max_bid_kopecks
Нижняя и верхняя ставки; дополнительно учитывается минимум платформы и экономический потолок.
max_step_percent
Максимальный процент изменения за одно решение.
cooldown_seconds
Пауза после записанного действия.
min_clicks / min_spend_rub
Минимум кликов и расходов в рублях перед оптимизацией.
min_stock_cover_days
Защитный порог запаса в днях.
max_snapshot_age_seconds
Максимальный возраст состояния и статистики.
max_actions_per_cycle
Лимит предложений в одном запуске; защитные остановки приоритетнее.
Как рассчитывается ставка
Проверяются профиль, ручная остановка, незавершённая команда и внешние изменения.
Проверяются рабочее окно, запас и дневной бюджет; при подтверждённых условиях может появиться защитное предложение pause.
Для оптимизации требуются активная подходящая кампания, свежие и полные данные, законченная пауза, достаточная выборка и созревшая атрибуция.
Если ДРР выше диапазона допуска — направление вниз, ниже — вверх; внутри — удержание. При нулевой выручке ДРР неопределён и ставка удерживается.
Желаемая ставка пересекается с шагом, минимумом платформы, коридором и экономическим потолком. Если допустимого решения нет, сохраняется причина отказа.
Учебный пример: ставка 1000 копеек, шаг 10%, целевой ДРР 0.18, допуск 0.1. При ДРР 0.25 желаемая ставка — 900 копеек. Если минимум платформы 950, допустимое предложение может стать 950. Если безопасное пересечение отсутствует, ставка не выбирается «примерно». Пример действует только при пройденных остальных проверках и не является настройкой магазина.
CTR, CPC, CPO и конверсия доступны в аналитике, но не становятся автоматически стратегиями биддера v2. Стратегии по позиции, поисковым кластерам, портфелю, прибыли и расходу без заказов требуют отдельной реализации.
Полный учебный профиль биддера
Шаблон отключён и содержит вымышленные идентификаторы, ссылки и суммы. Он показывает структуру, а не настройки вашего магазина. Замените их на согласованные условия и действительные версии памяти; выберите реальный срок действия. Не включайте пример как готовую конфигурацию.
interval_seconds и enabled управляют повторяемыми shadow-запусками X-MP.
Рабочее окно рекламы
bidder.schedule содержит timezone и windows: days, start_minute, end_minute. Вне окна возможна рекомендация остановки; автоматического старта нет.
Пополнение бюджета
Утренние/вечерние переводы не подключены к исполнению v2. Дневной предел не является переводом средств.
Дни: понедельник 0, воскресенье 6. Минуты: 0–1440. Ночное окно разделите у полуночи, например 22:00–24:00 и 00:00–06:00. IANA timezone, например Europe/Moscow, задаётся явно. Даже наличие окна не означает, что WB физически остановит рекламу: текущий результат — предложение.
Создание, проверка, обновление и отключение
automations.config.get
{
"domain": "advertising"
}
Прочитайте задачу через tasks.resume и возьмите реальную card_version.
Заполните профиль v2 по шаблону: кампании, цели, лимиты и source_binding. При создании expected_config_sha256 — пустая строка, при обновлении — текущая сумма.
Передайте весь профиль в automations.config.apply с domain=advertising. Не возвращайте служебные received_at/config_sha256 как часть пользовательского config.
Проверьте сохранённую версию. Отключённый профиль даёт profile_disabled. Для проверки предложений требуется осознанно включить enabled=true; это также запускает периодические расчёты.
Читайте jobs.get для результата конкретного запуска, runs.list для истории и сравнивайте config hash.
Для отключения сохраните новую версию enabled=false. Для удаления используйте lifecycle_action=delete с текущим hash и source_binding. История остаётся.
Удаление или отключение профиля X-MP не останавливает кампанию Wildberries. Независимая аварийная остановка не снимается изменением профиля. При конфликте версии перечитайте состояние и согласуйте новую конфигурацию.
Как читать причины решения
Причина
Объяснение
profile_disabled / policy_unconfirmed
Расчёт отключён или условия не подтверждены.
stock_unknown / daily_spend_unknown
Нет доказанного запаса или расхода за нужный день.
attribution_immature / insufficient_sample
Не прошло время атрибуции либо недостаточно кликов/расхода.
undefined_drr
Нулевая рекламная выручка: ДРР нельзя посчитать.
platform_min_unknown / capability_unverified
Не подтверждён минимум ставки или возможность действия для кампании.