Перейти к основному содержимому

Клиентские дашборды и отчёты

Концепция

Клиенты Fotofactor получают не просто фотографии и видео, а полноценную аналитическую платформу для управления присутствием на маркетплейсах. Дашборды на основе данных SalesFinder показывают эффект от обновлённого контента и дают рекомендации по оптимизации.

Ценностное предложение

"Мы не просто снимаем фотографии — мы оптимизируем ваше присутствие на маркетплейсах. Дашборд показывает, как наш контент увеличивает ваши продажи."

Архитектура системы отчётности

┌──────────────────────────────────────────────────────────────┐
│ ИСТОЧНИКИ ДАННЫХ │
│ │
│ ┌─────────────┐ ┌──────────────┐ ┌─────────────────────┐ │
│ │ SalesFinder │ │ Platrum │ │ Внутренняя │ │
│ │ API │ │ Spider DB │ │ аналитика │ │
│ │ │ │ │ │ │ │
│ │ • Позиции │ │ • Задачи │ │ • Сроки съёмки │ │
│ │ • Цены │ │ • Комменты │ │ • Стоимость работ │ │
│ │ • Продажи │ │ • Статусы │ │ • Метрики контента │ │
│ │ • Ключевики │ │ • Дедлайны │ │ • Before/After │ │
│ └──────┬──────┘ └──────┬───────┘ └──────────┬──────────┘ │
│ │ │ │ │
│ └────────────────┼──────────────────────┘ │
│ │ │
│ ┌──────▼──────┐ │
│ │ SQLite │ │
│ │ Cache │ │
│ └──────┬──────┘ │
└──────────────────────────┼───────────────────────────────────┘

┌────────────┼────────────────┐
│ │ │
┌──────▼─────┐ ┌───▼────────┐ ┌────▼──────┐
│ Streamlit │ │ Отчёты │ │ Telegram │
│ Dashboard │ │ PDF/Email │ │ Bot │
│ (web UI) │ │ (weekly) │ │ (alerts) │
└─────────────┘ └────────────┘ └───────────┘

Компоненты дашборда

1. Трекинг позиций товаров

Ежедневный/еженедельный мониторинг позиций товаров клиента в поиске маркетплейсов.

Что видит клиент:

ТоварЗапросПозиция сегодняНеделю назадИзменениеТренд
Makita DHP453"шуруповёрт makita"#3#30Стабильно
Makita DHP453"шуруповёрт аккумуляторный"#8#12+4Рост
Makita HR2470"перфоратор makita"#2#1-1Внимание
Makita GA5030"болгарка 125 мм"#15#9-6Падение

Streamlit-компонент:

import streamlit as st
import pandas as pd
import plotly.express as px

def render_positions_chart(product_data: pd.DataFrame):
"""График динамики позиций товара по ключевым запросам."""

st.subheader("Динамика позиций в поиске")

# Выбор товара
product = st.selectbox(
"Товар",
options=product_data["product_name"].unique()
)

# Выбор периода
period = st.radio(
"Период",
["7 дней", "30 дней", "90 дней"],
horizontal=True
)

# Фильтрация данных
filtered = product_data[product_data["product_name"] == product]

# График позиций (инвертированная ось Y: 1 = лучшая позиция)
fig = px.line(
filtered,
x="date",
y="position",
color="keyword",
title=f"Позиции: {product}",
labels={"position": "Позиция в поиске", "date": "Дата"}
)
fig.update_yaxes(autorange="reversed") # Позиция 1 = вверху графика

st.plotly_chart(fig, use_container_width=True)

# Сводная таблица
summary = filtered.groupby("keyword").agg(
current=("position", "last"),
best=("position", "min"),
worst=("position", "max"),
avg=("position", "mean")
).round(1)

st.dataframe(summary, use_container_width=True)

2. Мониторинг цен конкурентов

Сравнение цен клиента с ценами конкурентов в режиме реального времени.

Что видит клиент:

Категория: Шуруповёрты аккумуляторные

Makita DHP453 Bosch GSR 18V DeWalt DCD791
───────────── ───────────── ─────────────
Цена: 12 900 руб 13 500 руб 14 200 руб
РРЦ: 12 900 руб 13 800 руб 14 500 руб
Откл: 0% -2.2% -2.1%
Рейтинг: 4.8 ★ 4.7 ★ 4.6 ★
Отзывы: 1,247 892 654
Алерт РРЦ

Когда цена любого товара падает ниже РРЦ более чем на 10%, клиент получает мгновенное уведомление в Telegram с информацией о продавце-нарушителе.

3. Оценка трендов продаж

Графики динамики продаж на основе оценочных данных SalesFinder.

Streamlit-компонент:

def render_sales_trends(sales_data: pd.DataFrame):
"""График оценки продаж по товарам клиента."""

st.subheader("Оценка продаж (SalesFinder)")

col1, col2, col3, col4 = st.columns(4)

# KPI-карточки
with col1:
st.metric(
"Продажи (оценка)",
f"{sales_data['sales_estimate'].sum():,.0f} шт",
delta=f"+{sales_data['sales_growth'].mean():.1f}%"
)
with col2:
st.metric(
"Выручка (оценка)",
f"{sales_data['revenue_estimate'].sum():,.0f} руб",
delta=f"+{sales_data['revenue_growth'].mean():.1f}%"
)
with col3:
st.metric(
"Средняя позиция",
f"#{sales_data['avg_position'].mean():.1f}",
delta=f"{sales_data['position_change'].mean():.1f}",
delta_color="inverse" # Падение позиции = красный
)
with col4:
st.metric(
"Content Score",
f"{sales_data['content_score'].mean():.0f}/100",
delta=f"+{sales_data['score_change'].mean():.0f}"
)

# Выбор метрики для графика
metric = st.selectbox(
"Метрика",
["Продажи", "Выручка", "Средняя позиция", "Content Score"]
)

# Линейный график тренда
fig = px.line(
sales_data,
x="date",
y=metric_mapping[metric],
color="product_name",
title=f"Динамика: {metric}"
)
st.plotly_chart(fig, use_container_width=True)

4. SEO-аналитика: рейтинг ключевых слов

Позиции товаров клиента по ключевым поисковым запросам.

Что видит клиент:

Ключевой запросЧастотностьПозицияИзм. за нед.Конкуренция
шуруповёрт makita45 000#30Высокая
шуруповёрт аккумуляторный120 000#8+4Высокая
makita 18v28 000#10Средняя
дрель шуруповёрт85 000#12-2Высокая
шуруповёрт для дома65 000#15+3Средняя

5. Эффект от обновления контента (Before/After)

Ключевой раздел, который демонстрирует ценность услуг Fotofactor.

Что видит клиент:

Товар: Makita DHP453 (шуруповёрт)
Обновление контента: 15 января 2026

ДО обновления ПОСЛЕ (30 дней) Изменение
───────────── ─────────────── ─────────
Позиция (ср.): #12 #5 +7 позиций
Продажи (оценка): 2,100 шт/мес 3,150 шт/мес +50%
Конверсия карточки: 3.2% 4.8% +50%
Content Score: 45 82 +37 пунктов
Отзывы/мес: +85 +127 +49%
Что было обновлено
  • 8 новых профессиональных фото (предметная + lifestyle)
  • Видеообзор 60 сек (распаковка + функционал)
  • 3 инфографики с ключевыми характеристиками
  • Оптимизированный заголовок (по данным SF Keywords)
  • Rich-контент (A+) для Ozon

Техническая реализация

Streamlit-дашборд

Дашборд реализуется на Streamlit, который уже используется в Platrum Spider.

Структура файлов:

src/web/pages/
├── client_dashboard.py # Главная страница дашборда
├── positions_tracker.py # Трекинг позиций
├── competitor_prices.py # Мониторинг цен конкурентов
├── sales_trends.py # Тренды продаж
├── seo_keywords.py # SEO-аналитика
├── content_impact.py # Эффект от контента (Before/After)
└── reports_archive.py # Архив отчётов

Запуск:

# Запуск дашборда для клиента
streamlit run src/web/pages/client_dashboard.py \
--server.port 8503 \
-- --client "MakitaRU"

Еженедельные PDF/Email отчёты

Автоматическая генерация и отправка отчётов клиентам:

# Генерация недельного отчёта
python spider.py salesfinder report \
--client "MakitaRU" \
--period weekly \
--format pdf \
-o reports/makita_week_07_2026.pdf

# Отправка по email (через интеграцию)
python spider.py salesfinder report \
--client "MakitaRU" \
--period weekly \
--send-email \
--to "manager@makita.ru"

Структура еженедельного отчёта:

╔══════════════════════════════════════════════════════════╗
║ ЕЖЕНЕДЕЛЬНЫЙ АНАЛИТИЧЕСКИЙ ОТЧЁТ ║
║ Клиент: Makita Russia ║
║ Период: 10-16 февраля 2026 ║
║ Подготовлено: Fotofactor Analytics ║
╚══════════════════════════════════════════════════════════╝

1. СВОДКА (Executive Summary)
• Средняя позиция: #7.3 (было #8.1, рост на 9.9%)
• Оценка продаж: 42,500 шт (+8.3% к прошлой неделе)
• Content Score (средний): 68/100 (+3 пункта)
• Нарушения РРЦ: 2 случая (Bosch: -12%, DeWalt: -8%)

2. ТОП-10 ТОВАРОВ ПО РОСТУ ПОЗИЦИЙ
[Таблица с товарами, показавшими лучшую динамику]

3. ТОВАРЫ, ТРЕБУЮЩИЕ ВНИМАНИЯ
[Таблица с товарами, потерявшими позиции]

4. КОНКУРЕНТНЫЙ ОБЗОР
[Сравнение с Bosch, DeWalt, Hitachi]

5. SEO-ИНСАЙТЫ
[Новые ключевые запросы с потенциалом]

6. РЕКОМЕНДАЦИИ
[Конкретные действия на следующую неделю]

7. ЭФФЕКТ ОТ ОБНОВЛЁННОГО КОНТЕНТА
[Before/After для обновлённых карточек]

Telegram-бот для уведомлений

Мгновенные алерты о критических событиях:

"""Telegram-бот для уведомлений клиентов."""

ALERT_TEMPLATES = {
"position_drop": (
"Падение позиции\n\n"
"Товар: {product_name}\n"
"Запрос: \"{keyword}\"\n"
"Было: #{old_position} -> Стало: #{new_position}\n"
"Изменение: {change} позиций\n\n"
"Рекомендация: {recommendation}"
),
"price_violation": (
"Нарушение РРЦ\n\n"
"Товар: {product_name}\n"
"РРЦ: {rrc_price} руб\n"
"Текущая цена: {current_price} руб ({deviation}%)\n"
"Продавец: {seller_name}\n"
"Площадка: {marketplace}"
),
"content_score_change": (
"Обновление Content Score\n\n"
"Товар: {product_name}\n"
"Было: {old_score}/100 -> Стало: {new_score}/100\n"
"Изменение: +{change} пунктов\n\n"
"Обновлённый контент начал работать!"
),
"weekly_summary": (
"Еженедельная сводка\n\n"
"Период: {period}\n"
"Средняя позиция: #{avg_position} ({position_change})\n"
"Продажи (оценка): {sales_estimate} шт ({sales_change})\n"
"Content Score: {content_score}/100\n\n"
"Полный отчёт: {report_link}"
)
}

Типы уведомлений и частота:

Тип уведомленияТриггерПриоритетВремя отправки
Падение позиции >10Ежедневная проверкаВысокийМгновенно
Нарушение РРЦ >10%Ежедневная проверкаКритическийМгновенно
Рост позиции >5Ежедневная проверкаИнформационныйУтро (9:00)
Обновление Content ScoreПри измененииИнформационныйВ течение часа
Еженедельная сводкаПятница 17:00СтандартныйПо расписанию
Ежемесячный отчёт1-е число месяцаСтандартныйПо расписанию

Ценовая модель для клиентов

Пакеты аналитических услуг

ПараметрBasicStandardPremium
Мониторинг товаровдо 100 SKUдо 500 SKUБез ограничений
Трекинг позицийЕженедельноЕжедневноReal-time
Мониторинг ценТоп-20 SKUВсе SKUВсе SKU + алерты
Конкурентный анализ1 конкурент3 конкурентаБез ограничений
SEO-аналитикаБазоваяРасширеннаяПолная + рекомендации
ОтчётыЕжемесячныйЕженедельныйЕжедневный + еженедельный
Дашборд (Streamlit)НетДоступДоступ + кастомизация
Telegram-ботНетЕженедельная сводкаВсе алерты + сводки
Before/After анализПо запросуАвтоматическийАвтоматический + рекомендации
КонсультацииНет1 час/мес4 часа/мес
Цена15 000 руб/мес30 000 — 50 000 руб/мес80 000 — 120 000 руб/мес
Цена указана за один бренд

При подключении дополнительных брендов действует скидка 15-20% на каждый следующий бренд. Аналитическая инфраструктура масштабируется с минимальными дополнительными затратами.

Комбинированные пакеты (Аналитика + Контент)

Для максимальной ценности клиенту предлагается комбинация аналитики и контент-производства:

ПакетАналитикаКонтентЦена
СтартBasic мониторинг10 SKU фото/мес45 000 руб/мес
РостStandard мониторинг30 SKU фото + 5 видео/мес120 000 руб/мес
МасштабPremium мониторинг80 SKU фото + 20 видео + инфографика280 000 руб/мес
EnterpriseПолный PremiumНеограниченный контент + стратегияПо запросу

Экономика масштабирования

СЕБЕСТОИМОСТЬ ОДНОГО КЛИЕНТА:
├── Подписка SalesFinder (амортизация): 3 000 руб/мес
├── Серверные ресурсы (Streamlit, DB): 1 000 руб/мес
├── Время аналитика (4 часа/мес): 8 000 руб/мес
├── Автоматические отчёты (CPU): 500 руб/мес
└── ИТОГО себестоимость: 12 500 руб/мес

ПАКЕТ BASIC (15 000 руб/мес):
├── Маржа: 2 500 руб/мес (17%)
└── Назначение: вход в воронку, upsell на Standard

ПАКЕТ STANDARD (40 000 руб/мес):
├── Себестоимость: 15 000 руб/мес (+ время аналитика)
├── Маржа: 25 000 руб/мес (62%)
└── Назначение: основной продукт

ПАКЕТ PREMIUM (100 000 руб/мес):
├── Себестоимость: 22 000 руб/мес
├── Маржа: 78 000 руб/мес (78%)
└── Назначение: максимальная маржинальность

МАСШТАБИРОВАНИЕ (10 клиентов Standard):
├── Выручка: 400 000 руб/мес
├── Себестоимость: 120 000 руб/мес (общие ресурсы)
├── Маржа: 280 000 руб/мес (70%)
└── Годовая выручка: 4 800 000 руб
Эффект масштаба

Каждый новый клиент добавляет маргинальную себестоимость (в основном время аналитика), но выручка растёт линейно. При 10+ клиентах маржинальность аналитических услуг достигает 70-80%.

Воронка продаж через дашборды

Путь клиента

Этап 1: ПРИВЛЕЧЕНИЕ
│ Клиент видит статью в блоге с данными SF
│ или получает рекомендацию

├── Предложение: бесплатный аудит карточек (1 товар)


Этап 2: ДЕМОНСТРАЦИЯ ЦЕННОСТИ
│ Бесплатный мини-отчёт по 1 товару клиента
│ - Текущие позиции
│ - Сравнение с конкурентами
│ - Рекомендации по оптимизации

├── Предложение: пакет "Старт" (45K руб/мес)


Этап 3: ОСНОВНОЙ ПРОДУКТ
│ Клиент подключён к дашборду
│ Видит позитивную динамику после обновления контента

├── Предложение: upsell на "Рост" или "Масштаб"


Этап 4: МАСШТАБИРОВАНИЕ
│ Полный пакет аналитики + контент
│ Ежемесячные стратегические встречи
│ Долгосрочный контракт (6-12 мес)

├── Расширение: дополнительные бренды


Этап 5: RETENTION
Высокая стоимость переключения
(клиент привык к дашборду, данные накоплены)
LTV: 1 200 000 — 3 600 000 руб

Конверсия по этапам

ЭтапКонверсияКол-во (из 100 лидов)
Лид -> Бесплатный аудит30%30
Аудит -> Пакет "Старт"20%6
"Старт" -> "Рост"/"Масштаб"50%3
Retention (12 мес)80%2.4

Примеры визуализаций

KPI-панель (верхняя часть дашборда)

┌──────────────────┬──────────────────┬──────────────────┬──────────────────┐
│ СРЕДНЯЯ │ ПРОДАЖИ │ CONTENT │ НАРУШЕНИЯ │
│ ПОЗИЦИЯ │ (оценка) │ SCORE │ РРЦ │
│ │ │ │ │
│ #7.3 │ 42,500 шт │ 68/100 │ 2 │
│ ▲ +9.9% │ ▲ +8.3% │ ▲ +3 пункта │ ▼ -1 │
│ │ │ │ │
│ за неделю │ за неделю │ за неделю │ за неделю │
└──────────────────┴──────────────────┴──────────────────┴──────────────────┘

Таблица "Before/After" (ключевой элемент для продаж)

┌─────────────────────────────────────────────────────────────────────────┐
│ ЭФФЕКТ ОТ ОБНОВЛЕНИЯ КОНТЕНТА │
│ │
│ Товар: Makita DHP453 (обновлено: 15.01.2026) │
│ │
│ ┌─────────────────────────────────────────────────────────────────┐ │
│ │ ДО ПОСЛЕ (30 дней) │ │
│ │ ┌──────────────┐ ┌──────────────┐ │ │
│ │ │ Content: 45 │ ────────> │ Content: 82 │ (+82%) │ │
│ │ │ Позиция: #12 │ │ Позиция: #5 │ (+58%) │ │
│ │ │ Продажи: │ │ Продажи: │ │ │
│ │ │ 2,100 шт │ │ 3,150 шт │ (+50%) │ │
│ │ └──────────────┘ └──────────────┘ │ │
│ └─────────────────────────────────────────────────────────────────┘ │
│ │
│ Обновлено: 8 фото, 1 видео, 3 инфографики, SEO-оптимизация │
│ Стоимость работ: 35,000 руб │
│ Дополнительная выручка: ~650,000 руб/мес │
│ ROI обновления: 18.5x │
└─────────────────────────────────────────────────────────────────────────┘

Интеграция с Platrum Spider

CLI-команды для управления отчётами

# Генерация клиентского отчёта
python spider.py salesfinder report --client "MakitaRU" --period weekly --json

# Запуск дашборда
python spider.py salesfinder dashboard --client "MakitaRU" --port 8503

# Настройка алертов в Telegram
python spider.py salesfinder alerts --client "MakitaRU" \
--telegram-chat-id 123456789 \
--position-drop 10 \
--price-violation 10

# Просмотр всех клиентских отчётов
python spider.py salesfinder reports-list --json

# Before/After анализ для конкретного товара
python spider.py salesfinder impact --product-id 12345 \
--update-date "2026-01-15" --period 30 --json

Расписание автоматических задач

# Добавление в SyncScheduler (src/scheduler/)

# Синхронизация данных SF — каждые 2 часа
scheduler.add_job(
salesfinder_syncer.sync,
IntervalTrigger(hours=2),
id="salesfinder_sync"
)

# Проверка алертов — каждые 30 минут
scheduler.add_job(
position_monitor.check,
IntervalTrigger(minutes=30),
id="sf_position_check"
)

# Еженедельный отчёт — пятница 16:00
scheduler.add_job(
generate_weekly_reports,
CronTrigger(day_of_week="fri", hour=16),
id="sf_weekly_report"
)

# Ежемесячный отчёт — 1-е число месяца 10:00
scheduler.add_job(
generate_monthly_reports,
CronTrigger(day=1, hour=10),
id="sf_monthly_report"
)

Безопасность и доступ

Разграничение доступа

РольДоступОписание
КлиентТолько свои данныеДашборд с фильтрацией по client_id
Менеджер FotofactorВсе клиентыПолный доступ к аналитике
АдминистраторУправлениеНастройка алертов, клиентов, пакетов

Защита данных

  • Каждый клиент видит только свои товары (фильтрация по client_id)
  • Конкурентные данные агрегированы (клиент не видит точные цифры других клиентов)
  • Доступ к дашборду по ссылке с токеном (не требует авторизации в Platrum)
  • Отчёты хранятся 90 дней (настраиваемый retention)

Резюме

ПараметрЗначение
ПродуктБрендированные аналитические дашборды для клиентов
ТехнологииStreamlit + SalesFinder API + Platrum Spider
Каналы доставкиWeb-дашборд, PDF-отчёты, Telegram-бот
Ценовые пакетыBasic (15K), Standard (30-50K), Premium (80-120K) руб/мес
Маржинальность17% (Basic) — 78% (Premium)
Ключевая метрикаBefore/After анализ (ROI от обновления контента)
МасштабированиеКаждый новый клиент = маргинальная стоимость
Конкурентное преимущество"Не просто фотографии, а оптимизация присутствия на маркетплейсах"
Целевой LTV1 200 000 — 3 600 000 руб/клиент