Панель управления

Демонстрационный стенд WB_API_MOCK=1
Что произойдёт
  1. Создаётся кампания «Demo кроссовки» (WB advert #100001) с тремя поисковыми кластерами.
  2. Из mock-фикстур (tests/Fixtures/WbApi/) загружается статистика кампании (fullstats) и кластеров (normquery).
  3. Пайплайн рассчитывает решения по ставкам в режиме dry-run — ставки в Wildberries не отправляются.
  4. Панель обновится: появятся метрики, режим кампании и таблица решений.
Данные для демонстрации

Окно метрик: 7 дней (2 дня в фикстурах, даты сдвигаются на «вчера/сегодня»).

УровеньПоказателиОжидание
Кампания расход 5 000 ₽, выручка 20 000 ₽ ROAS = 4.0 → режим зависит от restrict_up (см. ниже)
кроссовки мужские 20 заказов, CPA ≈ 40 ₽ CPA < target 500 ₽ → UP
кроссовки черные 4 заказа, CPA ≈ 300 ₽ CPA < target → UP
кроссовки бег 10 заказов, CPA ≈ 50 ₽ CPA < target → UP

Target CPA демо-кампании: 500 ₽. Кампания помечена dry-run.

Как оценить результат
  • В карточках KPI: режим кампании и ROAS около 4.0000.
  • В таблице кампаний: бейдж dry-run, автобиддинг ON.
  • BALANCED (restrict_up = 3.0): proposal UP, итог UP.
  • DEFENSIVE (restrict_up > 4.0, напр. 4.5): proposal UP, итог HOLD — повышение заблокировано.
  • В «История ставок»: статус pending; в DEFENSIVE ставка не меняется.

ROAS

Зачем нужен: это порог уровня 1 (кампания). Если ROAS кампании ниже этого значения, система переходит в режим DEFENSIVE и блокирует повышение ставок на кластерах — даже когда CPA кластера хороший и стратегия предлагает UP, итоговое действие станет HOLD. Так защищают бюджет, когда кампания в целом не окупается.

При демо ROAS = 4.0 и allow_up = 5.0:

Быстрые значения для теста

Для DEFENSIVE задайте restrict выше 4.0 (ROAS демо-данных). Для GROWTH нужен ROAS ≥ 5.0 — в этих фикстурах не достижим.

Кампании
1
автобиддинг: 1
Решения по ставкам
0
pending 0 · applied 0 · skipped 0
DEFENSIVE
0
кампаний с низким ROAS
GROWTH
0
BALANCED: 1
Кампании Все кампании
Название Режим ROAS Расход Выручка Кластеры Статус
Demo кроссовки
WB #100001
balanced 0 0 3 ON
Быстрые действия

Команды для CLI (в контейнере app):

  • wb:demo-stand — демо-стенд (seed + sync + решения)
  • wb:sync-stats — синхронизация статистики
  • wb:run-bidding --dry-run — расчёт без отправки
  • wb:run-bidding — расчёт и очередь apply

+ Новая кампания История ставок
Последние решения по ставкам Вся история

Решений ещё нет. Нажмите «Запустить демо-стенд» на панели.

Уровень 1 — Кампания (ROAS): ROAS = выручка ÷ расход (fullstats). Задаёт режим DEFENSIVE / BALANCED / GROWTH.

Уровень 2 — Кластер (CPA): CPA = расход ÷ заказы (normquery). Предлагает up / down / hold / pause.

Слияние: в DEFENSIVE повышения блокируются, даже если CPA кластера низкий.

Фраза: не поддерживается WB API — только поисковые кластеры (norm_query).

DEFENSIVE

ROAS ниже порога restrict_up_if_roas_below. Повышение ставок на кластерах запрещено.

BALANCED

ROAS в норме. Полная логика CPA на кластерах.

GROWTH

ROAS выше allow_up_if_roas_above. CPA + можно смелее поднимать (growth max up %).

Демонстрационный стенд использует фикстуры WB API (tests/Fixtures/WbApi/) при WB_API_MOCK=1.

На панели есть кнопка «Запустить демо-стенд» — она делает то же, что CLI-команда wb:demo-stand.

Альтернатива из терминала: docker compose exec app php bin/console wb:demo-stand --reset