Halo — инструкция пользователя
AI-аналитика рекламы Wildberries с учётом органики. Считаем halo, iROAS и прогноз падения объёма при отключении рекламы. Ежедневный мониторинг с AI-советами.
1. С чего начать
- Откройте alla.ignore.pro и нажмите «Войти».
- Введите логин и пароль, который выдал администратор. Если вы admin — стартовая пара
admin / admin, смените пароль сразу. - Откройте вкладку ⚙️ Настройки (видна только администратору) и задайте:
- WB API token — кабинет WB → Настройки → Доступ к API. Нужен скоуп «Продвижение», для halo дополнительно «Аналитика».
- DeepSeek API key — для AI-анализа (берёте у администратора).
- Пороги rule-engine: целевой CPO, минимум кликов, минимум расхода и т. д.
- Нажмите Сохранить. Все остальные пользователи (роль
user/manager) ключи не вводят — токены системные.
2. Запустить анализ
Вкладка 📊 Анализ, форма «Запустить анализ»:
| Поле | Что вводить |
|---|---|
| Артикул (nm_id) | NM ID товара. Система сама найдёт все активные рекламные кампании этого артикула. |
| Период (дней) | 1–31. По умолчанию 14 — оптимум для статистической значимости и реакции на свежие изменения. |
| Сравнить с органикой | Включит расчёт halo-эффекта (uplift, iROAS, true CPO, прогноз). Требует scope «Аналитика» у WB-токена. |
Нажмите «Запустить». Run обычно 10–60 сек, при rate-limit от WB до 1–3 минут. Прогресс виден в правой колонке: лог шагов и статус.
3. Что показывает дашборд
KPI и halo-метрики
| Метрика | Что значит |
|---|---|
orders | Заказы, пришедшие через рекламу за период. |
cpo | Стоимость одного заказа из РК. Цель — ниже целевого CPO из настроек. |
drr_ad_only | ДРР по рекламе (расход / рекламная выручка). |
drr_with_organic | ДРР с учётом органики — реальный показатель эффективности магазина. |
uplift_pct | На сколько % реклама поднимает органические заказы. >10% — реклама помогает органике (halo-эффект). |
halo_share_pct | Доля «дополнительной органики», созданной рекламой, в общем объёме заказов. |
iroas | Incremental ROAS — отдача с рубля рекламы с учётом halo. ≥1 — реклама окупается, ≥1.5 — масштабируйте. |
true_cpo_with_halo | Настоящий CPO: расход / (рекламные заказы + halo-органика). |
forecast_drop_pct_if_off | Прогноз: на сколько % упадёт общий объём заказов, если завтра отключить рекламу. |
Сравнение с органикой
Четыре графика:
- Реклама vs Органика по дням — стэк-бар: сколько заказов рекламные, сколько органические.
- Общий объём / baseline — линия фактических заказов против baseline («органика без рекламы»).
- Доля органики и halo — % органики и абсолютные halo-заказы по дням.
- Расход рекламы — гистограмма дневного расхода.
Рекомендации
Таблица с типизированными действиями:
| Тип | Когда |
|---|---|
add_minus | Добавить минус-фразы — слив бюджета на нерелевантных запросах. |
decrease_bid | Снизить ставку — дорогие клики без конверсии. |
increase_bid | Поднять ставку — высокая конверсия, недокрутка трафика. |
scale_for_halo | Масштабировать (iROAS ≥ 1.5) — реклама усиливает органику, давайте больше. |
keep_supportive | Оставить как поддержку органики (uplift ≥ 10%, iROAS ≥ 1) — отключение даст падение объёма. |
observe | Наблюдать — мало данных для уверенного решения. |
pause_test | Поставить на тест-паузу — проверить incrementality. |
XLSX и Telegram
«Скачать XLSX» — отчёт на 7 листов (KPI, кластеры, минус-фразы, дни, рекомендации, лог, мета). «Telegram-сводка» — готовый текст для отправки в чат.
4. Halo и iROAS — что это
Halo-эффект — реклама не только приносит свои заказы, но и поднимает органические продажи (бренд становится виднее). iROAS (incremental ROAS) — окупаемость рекламы с учётом этого подъёма.
Как считаем baseline (органика «без рекламы»):
- quiet_days — берём дни, где расход меньше 5% среднего, считаем по ним среднюю органику. Confidence
highпри ≥5 таких днях. - regression — OLS organic ~ ad_spend на активных днях.
a— это baseline. Confidencemedium. - halo_constant — отраслевой fallback 0.45 (Pattern.com / Fospha). Confidence
low.
5. Мониторинг кампаний
После запуска анализа нажмите 🎯 В мониторинг — открывается модалка с целевыми метриками (предзаполнены из proposed_targets).
Каждый день в 06:10 МСК система автоматически снимает срез по всем подписанным кампаниям и считает прогресс. Цвета на вкладке 🎯 Мониторинг:
- 🟢 в норме — все цели в пределах допуска.
- 🟡 риск — отклонение ≤ 15% хотя бы по одной цели или тренд ухудшается.
- 🔴 не достигаем цели — отклонение более 15%. Система автоматически запрашивает AI-совет и сохраняет его в журнал.
В карточке мониторинга:
- 📸 Снимок — снять срез прямо сейчас.
- 🧠 AI-совет — попросить AI оценить последний снимок и предложить действие.
- Графики план vs факт по каждой цели.
- Журнал milestones и AI-советов.
6. Настройки
Вкладка ⚙️ Настройки доступна только роли admin:
| Поле | Назначение |
|---|---|
| WB Token | Bearer-токен Wildberries Promotion API + Seller Analytics. |
| DeepSeek Token | API-ключ DeepSeek для AI-анализа и AI-чата. |
| Целевой CPO ₽ | Цель по стоимости заказа. Используется правилами для определения «дорого». |
| Мин. кликов для решения | Минимум кликов, чтобы статистика считалась значимой. |
| Мин. расход для решения ₽ | Минимальный потраченный бюджет для применения правил. |
| Макс. расход без заказов ₽ | Порог «слил бюджет без конверсии». |
| Мин. заказов для масштабирования | Минимум заказов, чтобы рекомендовать «увеличить ставку». |
| Шаг ставки ₽ | На сколько копеек/рублей менять ставку за раз. |
Роли:
user— анализ, история, мониторинг, AI-чат.manager— всё то же + создание/удаление user/manager. Не может менять системные ключи.admin— всё, включая системные настройки и любые роли.
7. AI-чат и память агента
Кнопка 💬 AI-чат открывает диалог. Агент видит:
- Вашу память (markdown с заметками и правилами).
- Историю последних 10 анализов со свёртками KPI.
- Последний анализ детально — все рекомендации, KPI, кластеры.
Можно спросить: «Где недокручиваю?», «Какие кластеры на минус?», «Что применить первым?», «Дай сводку по магазину».
Память агента
Три способа добавить заметку:
- Кнопка 💬 на рекомендации — комментарий привязывается к конкретной рекомендации.
- 🧠 Память AI в шапке — модалка с полным содержимым, можно править.
- Типы заметок:
feedback(к рекомендации),rule(общее правило),preference(предпочтение).
8. Частые проблемы
| Симптом | Причина и решение |
|---|---|
| WB API 429 | Rate-limit WB. Подождите 1–3 мин и повторите. Система сама делает retry с backoff. |
| WB API 401 | Невалидный токен или отсутствует scope «Продвижение». Перевыпустите токен в WB. |
| halo недоступен | У токена нет scope «Аналитика» или мало данных (нужно ≥5 дней). Анализ продолжается без halo. |
| «Мало данных» | За период не было кликов/заказов. Увеличьте период или проверьте активность кампании в кабинете WB. |
| iROAS = 0 или N/A | Нет органических заказов в периоде или baseline = 0. Чаще всего — слишком короткий период. |
| «Доступ только админу» в Настройках | Вы залогинены как user/manager. Логин под admin — для управления ключами. |
9. Где живут ваши данные
- WB-токен: на сервере в зашифрованном виде, в браузер не попадает (после v0.19).
- DeepSeek-ключ: серверный прокси, в браузер не попадает.
- История анализов и снимки мониторинга: SQLite на сервере, доступ только залогиненным пользователям.
- Память агента: markdown-файл на сервере, доступ через UI.
- Аутентификация: токен сессии в
localStorageвашего браузера.
10. История версий
v0.38 — scroll-визуализация лендинга: progress, parallax, sticky-storytelling NEW
- Главная теперь «оживает» при скролле. Ранее анимации лендинга отыгрывались сразу при загрузке через
animation-delay— пользователь видел уже отыгранный кадр. Теперь все ключевые блоки запускаются при появлении в viewport черезIntersectionObserver, как на сайтах Linear / Stripe / Vercel. - Тонкая градиентная полоса прогресса по верху страницы — показывает, сколько уже прокручено (
scaleXчерезrequestAnimationFrame, без polling). - Параллакс-орбы за hero: три полупрозрачных blob'а движутся с разной скоростью при скролле, давая глубину фону. В светлой теме —
mix-blend-mode: multiply. - Новая секция «Три слоя — один ответ» между halo-explainer'ом и features: sticky-сторителлинг с тремя шагами («Снимаем три ряда» → «Считаем halo-эффект» → «Прогноз отключения»). Слева sticky-аннотация (заголовок + счётчик «ШАГ 02 / 03» + полоска прогресса), справа карточки с живой визуализацией (бары трёх потоков, концентрические halo-кольца, лесенка прогноза падения).
- Count-up в hero-stats: числа +18% и −22% теперь анимированно «накручиваются» при появлении блока в viewport (используем уже подключённую
countup.js). - SVG-линии в feature-lg рисуются stroke-dashoffset-анимацией при попадании в viewport (класс
.svg-draw). - Подсказка скролла под hero — мини-полоса с пульсирующим вниз градиентом (как на Apple).
- Полное уважение к
prefers-reduced-motion: при включённой настройке системы все scroll-анимации, орбы и progress-bar отключаются — контент остаётся доступным мгновенно. - Тема не тронута — переключатель тёмная⇄светлая (v0.36) продолжает работать; новые scroll-блоки имеют отдельные правила для
:root[data-theme="light"]. - Без новых зависимостей: используем уже подключённые
countup.jsиlucide. Размер index.html: 250 KB → 276 KB (+10%, ~270 строк CSS + ~150 строк JS + новая HTML-секция).
v0.37 — научное обоснование рекомендаций (evidence-refs)
- Под каждой AI-рекомендацией — кнопка «🔍 Почему так?»: раскрывает блок с 1–3 ссылками на международные маркетинговые исследования (REF-1…REF-5). В каждой ссылке — название принципа, авторы/организация/год, и объяснение применения именно к ЭТОЙ рекомендации с цифрами из текущего анализа. Это для руководителей маркетинга, которые хотят видеть научное основание, а не «селлеры так говорят».
- Корпус принципов в system-prompt DeepSeek (alla-backend:0.36):
- REF-1: Каннибализация бренд-поиска — Chan & Lewis, Google, 2014. На брендовых запросах 89% ad-кликов уходят в органику при паузе.
- REF-2: 60/40 rule — Binet & Field, IPA, 2013. 60% бюджета на brand-building даёт ~60% полной ROI через 6+ месяцев.
- REF-3: ESOV → SOM — Jones / Binet, IPA Datamine. Каждые 10 п.п. Excess Share of Voice ≈ +0.5 п.п. market share/год.
- REF-4: Lift testing > MTA — Nielsen MMM 2019, Meta Conversion Lift. Multi-touch attribution систематически недооценивает upper-funnel.
- REF-5: Diminishing returns — Hanssens, MIT Sloan. Удвоение бюджета даёт +30–60% заказов, не +100%.
- Backend: SYSTEM_PROMPT_BASE расширен блоком «НАУЧНАЯ БАЗА», USER_PROMPT_TEMPLATE требует обязательное поле
evidence_refsв каждой рекомендации (массив 1–3 объектов сref_id, principle, source, takeaway). Контейнер пересобран:alla-backend:0.36, старый сохранён какalla-backend-prev-v0.31для быстрого rollback. - Frontend: рендер evidence_refs через нативный
<details>/<summary>(без JS-обработчиков), pill-кнопка «Почему так?» с lucide-иконкой search, раскрытие — карточки с magenta border-left и REF-pill в accent-grad. Demo-данные тоже содержат evidence_refs — фичу можно посмотреть без реального anaлиза.
v0.36 — Halo рестайлинг, demo-режим, mobile-first, theme-toggle fix
- Бренд переименован: «StreetLite» → «Halo». Сервис называется Halo (концепция halo-эффекта рекламы). «Street Lite» — название одного конкретного клиентского кабинета. На лендинге title/brand/login overlay/topbar показывают Halo.
- Утечки статуса в публичном виде убраны: hero-badge «WB Promotion API подключён» → «halo-эффект на ваших данных» (не утверждает что у конкретного посетителя есть подключение).
- Halo-explainer секция на лендинге между hero и features: pill «✨ Что такое halo-эффект», заголовок «Реклама работает не только там, куда показывает», объяснение термина и цитата на русском по исследованию Леса Бине и Питера Филда «Долго и коротко» (The Long and Short of It, IPA, 2013).
- Demo-режим: кнопка «⏵ Посмотреть на демо-данных» в hero лендинга → дашборд с 48 синтетическими кампаниями, 9 AI-runs, 3 мониторами, реалистичными insights и evidence_refs. Сверху — фиолетовый banner «Демо-режим — данные синтетические» + кнопка выхода. Никаких API-вызовов в демо-режиме.
- Brand-logo кликабельный: на лендинге — scroll к верху, в app-topbar — переход на главную (
switchTab('home')) с cursor: pointer и tooltip «На главную». - Theme-toggle pill switch в app-topbar: был старый emoji-only ☀️ в кнопке 32×32 — заменён на полный pill switch с двумя SVG-иконками + thumb-ползунок. Также исправлена несуществующая CSS-переменная
--t-base→--t200ms. - Mobile-first CSS: hero на ≤720px стек в одну колонку, KPI bento → 1 колонка, AI insights → 1 колонка. Топбар: горизонтальный scroll по табам, скрыт admin-badge. Модалки full-width на мобилке, ⌘K full-screen. Tap-targets ≥ 40px (CTA ≥ 44px). Отключены hover-transforms на touch.
- Доп. CSS-варианты кнопок:
.btn.ghost-accent(outline-фиолетовый),.btn.subtle(нейтральный) — для иерархии CTA в hero.
v0.35 — 3D wow: Mini Halo Crystal, 3D card tilt, cursor trail NEW
- Mini Halo Crystal — крошечная three.js сцена (150×150) парит в правом верхнем углу hero-strip dashboard. Фасеточный икосаэдр-кристалл (magenta+indigo emissive, metalness 0.6, flat shading), halo-shell sphere, орбитальный спутник + кольцо из 60 частиц. Lerped parallax от движения мыши. Drop-shadow magenta glow под глобусом — выглядит как левитирующий объект.
- 3D card tilt — все карточки
.spotlight(AI Insights, Health Score, KPI bento × 4, charts × 2) имеют CSS perspective: 900px и при hover плавно наклоняются rotateX/rotateY ±6° следуя за курсором. Эффект как у Apple Vision Pro / Linear cards. Skip на touch-устройствах и приprefers-reduced-motion. - Magenta cursor trail — за курсором летит шлейф из светящихся частиц (radial-gradient + box-shadow accent-glow + mix-blend-mode: screen). Throttle 28ms (≈35 dot/s), random size jitter 6-11px, 35% частиц в indigo вместо magenta. Авто-удаление после 720ms через CSS-keyframe trailFade. Skip на input/button/⌘K-overlay (не мешает работе).
- Hero shimmer — на
.home-hero-v34::beforeдобавлен дышащий radial-gradient за глобусом (8s ease-in-out alternate, blur 45px) — создаёт эффект «свечения вокруг летающего кристалла». - Адаптивность: на 1100-720px — globe уменьшается до 130×130, ниже 720px — скрывается полностью. Hero-strip overflow: visible — глобус выпирает в правый верхний угол hero (top: -78px) как левитирующий значок.
- Все эффекты — performance-aware: respect
prefers-reduced-motion,visibilitychangeпауза рендера, throttle курсор-трэила,will-change: transformна tilt-cards. Не зависает даже на средних ноутах. - Бэкапы:
*.bak.pre3dwow-20260428-210542для index/manual.
v0.34 — топовый дашборд: Health Score, AI-инсайты, Charts, ⌘K NEW
- HERO C+A: AI Insights (3 карточки с разноцветными tone — критично/внимание/всё ровно/AI-вывод/рекомендация) + Health Score radial (SVG ring 168×168, формула
active*40 + monitoring*30 + ai*30 − штраф за упавшие интеграции, анимацияstroke-dashoffset1.1s + animated counter). Hero greeting strip с приветствием по времени суток, status-chips WB API/WB Ads/StreetLiteGPT, ⌘K-кнопкой. - KPI bento с sparkline: 4 карточки (Активные кампании / Мониторинг / С отклонениями / Последний AI-анализ) — каждая с lucide-иконкой в цветной wrap-плашке, kpi-trend pill (+/− %), и ApexCharts area-sparkline (height 36px, smooth curve, gradient fill). 14 точек ленты — плавная синусоида от текущего значения.
- Charts row: ApexCharts area-chart «Активность анализов · 14 дней» (real bucketing по runs.created_at, smooth, тёмный/светлый theme) + donut «Портфель кампаний» (active/paused/archived из WB Ads, с центральной total-меткой).
- ⌘K Command Palette (Linear-style): fuzzy-поиск по навигации, действиям, кампаниям. Subsequence matching, ↑↓/Enter/Esc, группы, кастом-keybinding (⌘K / Ctrl+K). 30 кампаний в выдаче — клик открывает «Новый анализ» с предзаполнением.
- Magnetic buttons: primary CTA «Запустить анализ», ⌘K, Открыть анализ — слегка тянутся за курсором (translate(x*0.18, y*0.18) + inner *0.10), легкий «премиум»-эффект как у Linear/Vercel.
- Hover spotlight: на карточках с классом
.spotlight— radial-gradient следует за курсором (CSS-vars--mx/--my), эффект на AI-инсайтах, KPI bento, charts, hero strip. - Live pulse (.live-dot): пульсирующая точка на «AI-инсайты на сегодня» (зелёная/жёлтая/красная по worst tone в карточках), 1.8s ease-out, double-pulse delay.
- Toast система (готова, контейнер `#toaster` снизу-справа): 4 уровня (success/warn/error/info), lucide-иконка, t-bar progress, авто-закрытие через 3.8s, manual close.
window.toast({title, desc, level}). - Lucide-иконки везде: подменены ВСЕ эмодзи в субтабах, h2-заголовках, ai-avatar, agent-avatar, кнопках. Глобальный
tickLucide()вызывается на DOMContentLoaded, enterApp, switchTab, после каждого rerender — иконки появляются мгновенно. - Tippy.js премиум-тултипы: animation: scale-subtle, theme-aware (light/dark), delay 300ms — на всех элементах с
data-tippy-content. Например: ⌘K-кнопка показывает «Командная палитра (⌘K)». - View Transitions API: cross-fade при переключении tab-pane (нативно, без JS), 0.22s out + 0.26s in с translateY(-4px / +6px).
- Empty states: вместо пустых charts — карточки с иконкой и подсказкой (Подключи токен / Запусти первый анализ).
- Console.html подтянут: lucide подключён, эмодзи в табах (📊→
flask-conical, 🎯→target, 📖→book-open, 🧠→brain) заменены на SVG-иконки. Tickle-функция в enterApp/switchTab. - Чистый JS-runtime: убрана версия
@number-flow/element@0.5.5(404 на CDN, не использовалась),?.-защита дляworkspaceSelect(предупреждает обрыв скрипта на странице без topbar). - Бэкапы:
*.bak.predeploy-v034final-20260428-204312для index/console/manual в/root/alla/site/.
v0.33 — заметный переключатель темы (pill switch) NEW
- Pill-switch вместо emoji-кнопки — раньше в шапке был кружок ☀️, который на устройствах без emoji-шрифта рендерился пустым tofu-квадратиком. Заменили на горизонтальный switch 60×30 с двумя inline-SVG (солнце ↔ луна) и анимированным ползунком
.tt-thumb, переезжающим на 30px по:root[data-theme="light"]. - Доступность:
aria-pressedсинхронизируется с состоянием темы,:focus-visibleс outline в акцент-цвете, цветовые состояния иконок (активная — насыщенная, неактивная — приглушённая). - Применено на трёх страницах:
index.html(две инстанции — landing-nav и app-topbar),console.html(оверлей логина и app-topbar),manual.html(шапка). Сама палитра:root[data-theme="light"]уже была — добавили только видимый control. - Бэкапы:
*.bak.themetoggle-20260428-*в/root/alla/site/.
v0.32 — лендинг с 3D «Halo Globe» и bento-карточками
- 3D-визуал на главной — three.js (CDN, ~150 КБ gzip): центральное фасеточное ядро + два орбитальных кольца с частицами (реклама ↔ органика). Концепция буквально показывает halo-эффект, под капотом которого живёт весь продукт. Параллакс на движение мыши, ленивый init после
DOMContentLoaded, mix-blend-mode: screen для свечения поверх aurora. - Hero v2 — pre-headline pill «Live AI Engine · WB Promotion API подключён» с pulse-dot, акцент-слово «в вакууме» с gradient-text + drop-shadow glow, статистика-полоса (+18% halo · 06:10 МСК · −22% без рекламы) на glassmorphism-карточке.
- Bento-grid features — асимметричная сетка 6 колонок: большая карточка с inline-SVG графиком «реклама vs органика» (две curve-area с градиентами и легендой), широкая карточка про минус-фразы, остальные стандартного размера. На hover — gradient-border conic-эффект через mask-composite.
- Прогрессивные fallback'и:
prefers-reduced-motion: reduce→ 3D отключается; небольшой viewport → opacity и mix-blend меняются; visibilitychange → пауза рендера в фоновой вкладке (экономия батареи). - Бэкапы:
index.html.bak.pre3d-20260428рядом.
v0.31 — крупный редизайн: aurora theme, dark/light
- Полный визуальный редизайн главной страницы (
index.html) и консоли (console.html). Aurora-эффект — 3 radial-gradient + blur(60px) + GPU-анимация на::beforeконтейнера, без WebGL. - Dark/Light темы — token-driven через переопределение CSS-переменных в
:root[data-theme="light"]. Дефолт — dark. Переключатель в шапке. - Поверхностное редактирование, глубокий эффект: заменён только
<style>-блок, все class и id (.kpi.warn,.list-item.active,.b-okи т.д.) сохранены, JS не трогался — риск регрессий минимальный. - Бэкапы предыдущих версий:
*.bak.predesign-20260428рядом с каждым файлом.
v0.30 — обучение агента: 💬 обратная связь, 🧠 память, чат
- Кнопка 💬 у каждой рекомендации. Открывает мини-форму: можно написать, как лучше поступить (например: «не decrease_bid, а только −10%», «эта минус-фраза неправильная — на ней есть конверсия»). Тип записи:
feedback(поправка),rule(общее правило),preference(пожелание тона). Запись попадает в системный промпт агента — в следующих анализах он будет это учитывать. - 🧠 Память — кнопка в шапке. Видно все записи, которые менеджер давал агенту: контекст, тип, рекомендация, комментарий. Поиск, фильтр по типу. Можно добавить общее правило прямо отсюда.
- Плашка «🧠 Учтено N записей» в карточке результата анализа — наглядно показывает, что агент действительно читает память.
- Новая вкладка «💬 Чат» — диалог с агентом. Он автоматически подгружает память + сводку последних 10 анализов, поэтому можно спрашивать: «Почему ты дал decrease_bid по кампании 35208823?», «Какие правила я тебе уже задавала?», «Сравни последний анализ артикула 853965831 с предыдущим». Стрим-ответ через бэкенд-прокси (DeepSeek-ключ не уходит в браузер).
- Связь feedback ↔ рекомендация. Каждая запись из 💬 хранит
run_idи индекс рекомендации — потом видно, какую именно подсказку правил менеджер. - Backend менять не пришлось — endpoints (
/api/v1/agent-memory,/api/v1/ai-context,/api/v1/ai-chat) живут с v0.16/v0.19; в новом dashboard (с v0.24) UI был отрезан, теперь возвращён.
v0.29 — поиск кампании по ID и названию
- Поиск активных кампаний. В блоке «📊 Запустить новый анализ» (на главной) и в модалке «Запустить анализ» поле «Кампания» теперь — поле с автодополнением. Можно вводить ID (например
35208823) или часть имени/статуса — список фильтруется на лету. Раньше был обычный выпадающий список, в котором при 70+ активных кампаниях приходилось скроллить. - Под полем — подсказка с количеством активных и инструкцией («Начните вводить ID или название…»).
- Если активных нет — поле блокируется, в подсказке «Нет активных кампаний».
v0.28 — органика по умолчанию + структурированный halo-вердикт
- Halo считается всегда. Чекбокс «Сравнить с органикой» убран — он только сбивал с толку. При наличии WB-токена со scope «Аналитика» backend всегда тянет nm_detail и считает baseline, uplift, iROAS, true_cpo_with_halo, прогноз падения. Кнопка «Свернуть/Развернуть» в карточке «Сравнение с органикой» оставлена для компактного просмотра.
- 🧠 Вердикт AI по halo-эффекту — новая центральная карточка в результате анализа. Отвечает на 7 ключевых вопросов:
- Реклама работает только напрямую?
- Влияет ли реклама на органику?
- Растёт ли органика при работающей рекламе?
- Просядет ли органика при отключении?
- Это бустер органических продаж?
- Можно ли отключить?
- Что делать со ставкой?
- Промпт DeepSeek усилен. Главный принцип: «реклама не оценивается в вакууме». AI обязан формулировать как живой эксперт: «Прямой CPO дорогой, но реклама даёт +X% органики — отключать нельзя», а не «CPO выше целевого».
- AI-совет в мониторинге теперь использует halo-первый язык. Появился тип действия
gradual_decrease— для случаев, когда halo держит органику и резкое отключение запрещено. Содержательные вердикты: «Реклама даёт заказы, но органика не растёт — кампания работает в вакууме», «После отключения органика упадёт почти до нуля — кампания критична для продаж». - Snapshot мониторинга уже включал organic + halo (с v1.1) — это просто подтверждено в ТЗ как обязательное поведение.
- Контракт API. В
POST /api/v1/wb-analysis/runполеcompare_with_organicпомечено как DEPRECATED — оставлено для обратной совместимости, его значение игнорируется. ВGET /run/{id}добавлена схемаhalo_questionsс 7 полямиHaloAnswer. - Backend:
alla-backend:0.28(предыдущий —alla-backend-prev-v0.27). - Бэкап фронта:
/srv/alla.ignore.pro/index.html.bak.<TS>(v0.27, 95 563 b).
v0.27 — анализ по артикулу со сводкой по кампаниям
- Запуск анализа по артикулу. В блоке «📊 Запустить новый анализ» можно выбрать «Артикул (nm_id)» — система сама пробежит по всем активным рекламным кампаниям продавца, найдёт те, в которых участвует этот артикул, и сделает агрегированную сводку. Кампании запускать вручную не нужно.
- Per-campaign разбивка в результате. На странице запуска появилась карточка «🏷️ Артикул NNNN — найдено в K кампаниях» с таблицей: имя кампании, статус, расход, доля расхода в общем агрегате, заказы, доля заказов, CPO, CTR, ДРР. Можно кликнуть «Только эта», чтобы перезапустить анализ по одной конкретной кампании.
- Halo считается на nm-уровне. При nm-режиме incrementality собирает baseline и uplift именно для этого артикула (через WB Seller Analytics nm-detail), а не для отдельной кампании. Получаются честные uplift, iROAS, true CPO с halo и прогноз падения при отключении — всё по сумме всех РК этого артикула.
- Заголовок раздела результата теперь сообщает: «Артикул 12345678» вместо случайного campaign_id, режим обозначен как «по артикулу». В списке runs (на главной и в Анализе) — иконка 🏷️ для nm-запусков.
- Контракт API. В
POST /api/v1/wb-analysis/runполеnm_idописано явно: «сервер сам найдёт все активные кампании, где встречается артикул». ВGET /run/{id}добавлены поляnm_id,modeиper_campaign[]. - Backend:
alla-backend:0.27(предыдущий контейнер сохранён какalla-backend-prev-v0.22на случай отката). - Бэкап фронта:
/srv/alla.ignore.pro/index.html.bak.<TS>(v0.26).
v0.26 — переработка главной по UX-аудиту
- Архивные кампании больше не показываются. Раньше «80 активных» включали status 7 (завершена) и 8 (отказ). Теперь оставляем только status 9 «активна» и 11 «пауза». Счётчик «скрыто архивных» виден в карточке «🔌 Интеграции».
- Главная — без длинной простыни. На главной теперь только 3 подвкладки: 🎯 Мониторинг · 📜 Последние анализы · ⚠️ Проблемные. Полный список перенесён в отдельный таб «📋 Все кампании» с фильтрами (поиск по id/имени, статус, сортировка по расходу/CPO/ДРР/заказам/дате анализа).
- «Последний AI-анализ» и «Новый анализ» — разные блоки. Раньше «последний разбор» и «запустить» были склеены и выглядели как случайные карточки. Теперь два отдельных блока: «🧠 Последний AI-анализ» (имя кампании, дата, краткий вывод, статус, кнопка «Открыть») и «📊 Запустить новый анализ» (inline-форма: что анализируем → кампания/артикул → период → halo → запустить).
- Статусы API больше не противоречат. Раньше шапка показывала «WB API · ok», а блок кампаний — «WB API недоступен». Теперь единый источник: 401 = WB API + WB Ads оба «bad», любая другая ошибка (403/429/500/network) = WB API остаётся «ok», а Ads «bad» с конкретным сообщением: «WB-токен невалиден», «Недостаточно прав», «Превышен лимит запросов WB Ads», «Ошибка на стороне WB Ads API», «Сетевая ошибка».
- Три отдельных индикатора в шапке: WB API (учётка/токен), WB Ads (рекламный модуль с числом активных кампаний), StreetLiteGPT (DeepSeek). Раньше WB API и Ads были одним чипом — теперь падение рекламного API не «гасит» статус всего WB.
- UX-правило: главная отвечает на три вопроса — что сейчас работает (KPI-карточки + чипы), где проблема (⚠️ Проблемные подвкладка + правый блок «Предупреждения»), что нужно сделать (правый блок «📊 Запустить новый анализ»). Ничего лишнего.
- Бэкап предыдущей версии:
/srv/alla.ignore.pro/index.html.bak.20260426-105432(v0.24).
v0.24 — главная страница продукта (dashboard)
- Вкладка «🏠 Главная» теперь стартовая. Раньше после логина пользователь сразу видел форму запуска анализа и историю — теперь сначала dashboard со всей системой целиком.
- Статус-чипы интеграций в шапке: WB API (с количеством активных РК), StreetLiteGPT (DeepSeek), AI-агент. Зелёный/жёлтый/красный с пояснением в карточке «🔌 Интеграции».
- Селектор кабинета (workspace) в шапке: пока один — Street Lite. Опция «+ Подключить кабинет…» ведёт в Настройки. Multi-tenant в дорожной карте на v0.30.
- 4 KPI-карточки сверху: Подключённые кабинеты · Активных кампаний · В мониторинге (с разбивкой 🟢/🔴) · Последний AI-анализ.
- Таблица «📋 Рекламные кампании» по ТЗ: имя, статус (4/7/8/9/11 → русские лейблы), расход, заказы, CPO, ДРР, Uplift. KPI берутся из последнего завершённого
analysis_run, где встретилась эта кампания. Действия: «Анализировать», «Открыть анализ», «Мониторинг» (если уже подписана). - Блок «🧠 StreetLiteGPT»: статус («активен · deepseek», «rule-engine fallback»), executive summary последнего run-а, топ-3 рекомендации, кнопки «Запустить анализ» и «Настройки».
- Блок «⚠️ Ошибки и предупреждения»: автоматически собирает failed runs и 🔴/🟡 мониторинги; если всё ок — зелёная плашка.
- Компактные блоки: «🎯 Кампании в мониторинге» (top-6 + ссылка на полный список) и «📜 Последние анализы» (5 шт + ссылка на «Вся история»).
- История анализов больше не главная сущность — это вспомогательный блок. Основа — dashboard со всеми сущностями ТЗ: campaigns + analysis_runs + recommendations + monitoring + integrations.
v0.23 — светлая тема, понятная инструкция, регламент changelog
- Переключатель темы 🌙/☀️ в шапке landing, консоли и инструкции. Выбор темы запоминается в
localStorage(alla_theme). Графики Chart.js берут цвета из CSS-переменных, поэтому корректно перерисовываются под тему. - Новая страница инструкции
/manual.html— десять разделов от «с чего начать» до «частые проблемы», встроенная история версий, ToC слева. - Ссылка «📖 Инструкция» в шапке landing, консоли и на экране входа.
- Внутреннее правило: каждый деплой обязан обновить
manual.htmlи эту секцию changelog. Иначе пользователи не видят, что изменилось.
v0.22 — halo / incrementality, мониторинг, console.html major
- Halo-эффект и iROAS. Новый модуль
incrementality.py: четыре метода baseline (quiet_days, regression, halo_constant, historical_off), метрики uplift, iROAS, true_cpo_with_halo, forecast_drop_pct. - Подсистема мониторинга. 7 endpoints под
/api/v1/monitoring/*, ежедневный scheduler в 06:10 МСК, статусы 🟢/🟡/🔴, AI-совет при 🔴. - Новые типы рекомендаций:
keep_supportive(оставить как поддержку органики),scale_for_halo(масштабировать). - console.html — рабочая консоль с двумя вкладками (Анализ, Мониторинг), Chart.js, drill-down карточек.
- OpenAPI-контракт
cloudcode_wb_ai_api_contract_full.yamlподнят до 1.1.0 (9 paths, 11 schemas).
v0.21 — колонка «Что сделать», органика, метка артикула в истории
- В рекомендациях появилась императивная колонка «Что сделать» («Снизить ставку с 500 до 400 коп.», «Добавить в минус: …»), отдельно «Причина» и «Эффект».
- ДРР с органикой и подсветка аномалий через WB Seller Analytics API (
/api/v2/nm-report/detail). - Аномалия: реклама <20% заказов артикула при общем объёме — предупреждение «возможно недокрутка ставок».
- В истории видно «🏷 артикул 853965831 → 2 РК (35208823, …)», а не только список ID кампаний.
v0.19 — AI-ключ полностью серверный, лог на человеческом
- Поле DeepSeek-ключа убрано из UI. Ключ задаёт администратор в
system-settings, в браузер не попадает. - AI-чат через серверный прокси.
- Лог: «Запуск», «✅ В магазине 73 активных кампании», «📋 Карточки получены», «🏁 Готово!».
v0.18 — роль manager, иерархия прав
- Новая роль
manager: всё кроме изменения системных ключей. - Системные ключи задаёт admin один раз. Все пользователи используют один и тот же магазин.
- Иерархия: нельзя создать пользователя выше своей роли.
v0.17 — выпадающий список кампаний, русские пороги, инструкция
- В форме «ID кампании» — выпадающий список активных кампаний.
- Пороги rule-engine переписаны человеческим языком (целевой CPO, минимум кликов и т. п.).
- Кнопка «📖 Инструкция» в шапке.
v0.16 — первая рабочая версия на alla.ignore.pro
- Авторизация admin + создание пользователей.
- Память AI (feedback-loop) в markdown.
- Анализ по артикулу: система сама находит активные РК товара.
- WB API адаптирован под endpoints 2025+ (
beginDate/endDateдля fullstats,from/toдля normquery). - Время МСК. Демо-режим убран.
v0.14 — боевой WB API
- Починены endpoints
/adv/v3/fullstatsи/adv/v1/normquery/stats. - Активные кампании — только
status=9.
v0.10 — честные ошибки
- Введён
WBErrorиpartial_successвместо молчаливого «данных нет».
v0.7–0.9 — стабильность
- Rate-limit backoff 10–80 с × 8 попыток, пауза 2.5 с перед каждым запросом WB.
v0.3 — fallback отключён
- Без DeepSeek-ключа executive summary / план / Telegram не генерируются (не подделываем AI).
v0.1 — MVP
- FastAPI + SQLite + WB-клиент (mock) + metrics + rule-engine + DeepSeek + XLSX + web UI.
- Деплой на alla.ignore.pro через teksher-prod-nginx с SSL Let's Encrypt.