Кейс 12: Позиционный радар — мониторинг позиций
Проблема
Позиции товаров на Wildberries меняются ежедневно. Карточка может упасть с #10 на #50 за одну ночь из-за действий конкурентов, изменения алгоритмов ранжирования или проблем со стоком. Без постоянного мониторинга продавец узнаёт о падении слишком поздно — когда продажи уже ощутимо просели.
Типичный сценарий:
- Конкурент запускает агрессивную акцию → его карточка поднимается
- Карточка клиента смещается вниз по категории и ключевым запросам
- CTR падает → заказы падают → оборачиваемость замедляется
- Продавец замечает проблему через 2–3 недели по выручке
- К этому моменту позиции потеряны, а восстановление стоит дорого
Fotofactor нуждается в непрерывном мониторинге позиций, чтобы:
- Оперативно реагировать на изменения
- Обосновывать ценность своих услуг перед клиентом
- Продавать мониторинг как рекуррентный сервис
Пайплайн данных
Используем два эндпоинта MPStats:
| Эндпоинт | Данные | Частота запросов |
|---|---|---|
GET /wb/get/item/{sku}/by_category | Позиция в категории (массив за 30 дней) | Еженедельно |
GET /wb/get/item/{sku}/by_keywords | Позиция по каждому ключевому слову (массив pos за 30 дней) | Еженедельно |
Оба эндпоинта возвращают массив pos длиной 30 элементов — по одному значению позиции на каждый день. Индекс [-1] — последний (сегодняшний) день, [-8] — неделю назад. Значение 0 обычно означает «товар не найден в выдаче».
{
"category": "Ароматизаторы для дома",
"pos": [12, 11, 10, 8, 8, 7, 6, 5, 5, 4, 4, 4, 3, 3, ...],
"graph": "..."
}
Для ключевых слов структура аналогична — массив объектов, где каждый содержит keyword, pos (массив позиций) и дополнительные метрики.
Еженедельный пайплайн мониторинга
flowchart LR
A["⏰ Cron\n(понедельник, 09:00)"] --> B["Fetch позиций\nпо всем SKU клиента"]
B --> C["Сравнение\nс прошлой неделей"]
C --> D{"Δ > 5\nпозиций?"}
D -- "Падение" --> E["🔴 Алерт\nв Telegram"]
D -- "Рост" --> F["🟢 Поздравление\nклиенту"]
D -- "Стабильно" --> G["📊 Еженедельный\nотчёт"]
E --> G
F --> G
Логика пайплайна:
- Еженедельный cron-job запрашивает позиции по всем отслеживаемым SKU клиента
- Для каждого SKU сравниваются текущие позиции с позициями неделю назад
- Значимые изменения (сдвиг более 5 позиций) генерируют алерт или поздравление
- Все данные агрегируются в еженедельный отчёт