AiDevTeam | Техническое задание

AdWall
Легальная рекламная площадка

Pinterest + TikTok для блогеров. Auto-ERID, интерактивные метки, защита от блокировки.

Версия 2.106.04.2026

Техническое задание: AdWall

Легальная рекламная площадка для блогеров и рекламодателей


Версия: 2.1 Дата: 06.04.2026 Клиент: Максим / Александр Формат: Equity-партнёрство (AiDevTeam — технологический партнёр, 15-20%) Подготовил: AiDevTeam


Содержание

Часть I: Продукт

  1. О проекте
  2. Целевая аудитория и роли
  3. Конкурентный анализ
  4. Функциональные требования
  5. Пользовательские сценарии

Часть II: Техническая архитектура

  1. Архитектура системы
  2. Компоненты системы
  3. Контент-модерация и безопасность
  4. Маркировка рекламы и ОРД
  5. Рекомендательная система
  6. Монетизация — техническая реализация
  7. Модель данных
  8. API-спецификация

Часть III: Реализация

  1. Стек технологий
  2. Инфраструктура и деплой
  3. Нефункциональные требования
  4. Дизайн и UX
  5. Стратегия тестирования
  6. Этапы реализации (MVP → Full)
  7. Дорожная карта
  8. Команда проекта
  9. Риски и митигация
  10. Открытые вопросы
  11. Глоссарий

Главное

Ситуация. С 1 сентября 2025 года реклама на Instagram и Facebook полностью запрещена в России. 59% блогеров ушли в Telegram, но легальной централизованной площадки для рекламы не существует. Рынок инфлюенсер-маркетинга — ₽58 млрд в 2024 году (рост 30%+ в год), при этом ~25% рекламы в Telegram размещается без маркировки. Штрафы за отсутствие erid: 187 постановлений за 5 месяцев 2025 года на ₽11.5 млн.

Что решает AdWall.

# Результат Эффект
1 Единая легальная площадка Блогеры размещают рекламу без юридических рисков, со встроенной маркировкой
2 Автоматическая маркировка через ОРД 100% compliance с ФЗ о рекламе — erid, ЕРИР, отчётность
3 Агрегация аудитории всех блогеров Крупные рекламодатели покупают рекламные места на площадке с трафиком
4 Бесплатно для блогеров Блогеры не платят комиссию — монетизация через продажу рекламных мест

Суть продукта. AdWall — Pinterest-подобная витрина с вертикальным видео (TikTok-механика). Блогер в своих соцсетях (Telegram, VK, Max) упоминает товар и даёт ссылку на AdWall. На платформе — легальное размещение: название, описание, промо, ссылка на покупку, автоматическая маркировка erid. У каждого блогера — стилизованная страница-портфолио. Площадка зарабатывает на продаже рекламных мест в интерфейсе крупным рекламодателям (баннеры, промо-позиции, подборки по тегам).

Стратегический партнёр. Минцифры рассматривается как стратегический партнёр — для легитимизации продукта и защиты от блокировки. При этом AdWall позиционируется как частная площадка — не связанная с государством напрямую. Это критично для доверия блогеров и рекламодателей: пользователи охотнее идут на частную платформу, чем на государственную.


1. О проекте

1.1 Концепция

AdWall — легальная рекламная платформа, объединяющая три модели:

  • Pinterest — визуальный каталог с карточками товаров и услуг, организация по коллекциям и категориям
  • TikTok — вертикальное видео как основной формат контента, свайп-лента для бесконечного скролла
  • Telegram — прямая коммуникация между блогером и аудиторией, подписки, уведомления

Блогер создаёт рекламный контент (видео-обзор, фото с описанием, текстовую рекомендацию) и публикует его на платформе. В своих соцсетях блогер размещает ссылку: "Подробнее — на AdWallе". Пользователь переходит, смотрит контент, открывает для себя другие товары через рекомендации и хэштеги.

1.2 Бизнес-модель

Ключевой принцип: блогеры не платят. Монетизация — через продажу рекламных мест крупным рекламодателям.

Источник дохода Модель Описание
Рекламные места в интерфейсе CPM / фиксированная цена Баннеры, промо-позиции в ленте, брендированные подборки
Промо-размещения по тегам Аукцион / фикс Приоритетное отображение по поисковым тегам (#обзор, #красота)
Брендированные страницы Подписка Рекламодатель ведёт свою страницу с совместными публикациями с блогерами
Партнёрские программы CPA/CPC Оплата за переходы/покупки через платформу
Подписка Pro (блогеры) Ежемесячная Расширенная аналитика, продвинутый профиль, приоритетная модерация

Почему не комиссия с блогеров: блогеры и так несут множество расходов (налоги, 3% сбор, оплата контента). Комиссия их отпугнёт. Бесплатная площадка привлекает блогеров → трафик → рекламодатели покупают размещения.

1.3 Ключевые принципы

  1. Легальность — вся реклама маркируется через ОРД, compliance с ФЗ о рекламе
  2. Безопасность — AI-модерация + ручная модерация, фильтрация запрещённого контента
  3. Стиль — дизайн на уровне лучших мировых продуктов, визуальное впечатление в приоритете
  4. Mobile-first — основной канал потребления — мобильные устройства
  5. Прозрачность — открытая статистика, понятные комиссии, честные правила

2. Целевая аудитория и роли

2.1 Роли в системе

Роль Описание Ключевые потребности
Блогер Создатель контента, рекламирует товары/услуги Легальное размещение, монетизация, аналитика
Рекламодатель Бренд/компания, размещает рекламу через блогеров Доступ к аудитории, подбор блогеров, ROI-аналитика
Пользователь Потребитель контента, потенциальный покупатель Интересный контент, удобный поиск, честные рекомендации
Модератор Сотрудник платформы Инструменты модерации, очередь задач, AI-помощник
Админ Управление платформой Дашборды, настройки, финансы, отчётность

2.2 Портрет аудитории

Блогеры:

  • 18–45 лет, активные в соцсетях
  • Аудитория от 1K до 10M+ подписчиков
  • Ниши: lifestyle, beauty, tech, food, travel, fitness, fashion
  • Боль: нет удобной централизованной площадки для легальной рекламы, страх штрафов за немаркированную рекламу

Рекламодатели:

  • Онлайн-магазины, D2C-бренды, маркетплейс-селлеры
  • Бюджет на influencer-маркетинг от 50K до 5M+ руб/мес
  • Боль: сложно найти релевантных блогеров, непрозрачная отчётность, юридические риски

Пользователи:

  • 16–55 лет, активные онлайн-покупатели
  • Доверяют рекомендациям блогеров больше, чем прямой рекламе
  • Привыкли к TikTok/Instagram/Pinterest как к способу открывать новые товары

3. Конкурентный анализ

3.1 Прямые конкуренты

Параметр Яндекс.Ритм AdWall
Фокус Стрит-ритейл, бренды Блогеры, онлайн-продавцы
Масштаб 4000+ бизнесов, 56М аудитория — (новый продукт)
Формат Вертикальное видео Видео + фото + текст
Блогеры Ограниченно (с авг 2025) Ядро платформы
Монетизация блогеров Нет Бесплатно для блогеров
Мессенджер Нет Чат блогер ↔ рекламодатель
Маркировка рекламы Через Яндекс-экосистему Автоматическая через ОРД (multi-ORD)
UX Стандартный Яндекс Премиальный, стильный

Почему Ритм не закрывает рынок: нет прямой монетизации для блогеров, нет мессенджера, нет социальных функций, изначально строился для брендов, а не для создателей контента. 56М аудитории, но CTR всего 2.4%.

3.2 Косвенные конкуренты

  • VK Клипы / VK Видео — 82.8М MAU, монетизация авторов (VK AdBlogger: 1.1 млрд руб в 2025). Но это соцсеть, не рекламная витрина
  • Telegram — ₽38 млрд рекламы в 2025, но ~25% без маркировки. Нет централизованной рекламной площадки
  • Instagram — запрещена с 01.09.2025 для рекламы. 59% блогеров ушли
  • Яндекс.Дзен — MAU упала с 77М до 66М, видеомонетизация удалена в апреле 2025

3.3 Международный референс: LTK (LikeToKnowIt)

LTK — американская платформа, являющаяся прямым аналогом AdWall. Ключевые метрики:

Параметр Значение
Годовые продажи через платформу ₽430+ млрд ($5 млрд+)
Количество блогеров 350 000
Комиссия блогерам 16% (диапазон 10-25%)
Модель Блогер → ссылка → LTK → товар → покупка

Ключевая UX-фича LTK: пользователь наводит палец на фото → видит цену и ссылку на каждый объект (платье, сумка, обувь). Мгновенное решение о покупке без перехода на другую страницу.

LTK заблокирован в App Store в РФ. Это создаёт дополнительную возможность — российские блогеры не имеют доступа к этому инструменту.

3.4 Конкурентные преимущества AdWall

  1. Уникальная площадка "блогер → легальная реклама" — блогер ведёт из соцсетей на AdWall, где всё легально
  2. Бесплатно для блогеров — нет барьера входа, комиссий, сборов
  3. Автоматическая маркировка — erid "из коробки", блогер не думает о compliance
  4. Стратегическое партнёрство — легитимизация на государственном уровне, при этом платформа воспринимается как частная
  5. Пост-Instagram рынок — идеальный тайминг: блогерам некуда идти

4. Функциональные требования

4.1 Модуль: Контент-лента

Основной экран приложения — бесконечная лента контента.

# Функция Описание Приоритет
Ф1.1 Свайп-лента Вертикальный скролл видео (TikTok-стиль) MVP
Ф1.2 Сетка-каталог Pinterest-сетка с карточками (фото + цена) MVP
Ф1.3 Переключение режимов Табы: "Лента" / "Каталог" / "Подписки" MVP
Ф1.4 Pull-to-refresh Обновление контента свайпом вниз MVP
Ф1.5 Категории Фильтрация по нишам (beauty, tech, food и т.д.) MVP
Ф1.6 Хэштеги Поиск и навигация по тегам (#обзор, #красота) MVP
Ф1.7 Персональные рекомендации ML-лента на основе интересов пользователя v2
Ф1.8 Геолокация Контент с привязкой к городу/региону v2

4.2 Модуль: Профиль блогера

# Функция Описание Приоритет
Ф2.1 Портфолио Сетка опубликованных материалов MVP
Ф2.2 Статистика Просмотры, подписчики, вовлечённость MVP
Ф2.3 Категории контента Организация по коллекциям/нишам MVP
Ф2.4 Верификация Синяя галочка для подтверждённых блогеров MVP
Ф2.5 Рейтинг Рейтинг на основе качества контента и отзывов v2
Ф2.6 Медиа-кит Автоматически генерируемый медиа-кит (PDF) v2
Ф2.7 Связанные соцсети Ссылки на Telegram, VK, YouTube и т.д. MVP
Ф2.8 Подписка на блогера Push-уведомления о новых публикациях MVP

4.3 Модуль: Создание контента

# Функция Описание Приоритет
Ф3.1 Загрузка видео Вертикальное видео до 3 минут, сжатие на сервере MVP
Ф3.2 Загрузка фото До 10 фото с описанием, карусель MVP
Ф3.3 Текстовый пост Рекомендация товара/услуги в текстовом формате MVP
Ф3.4 Привязка товара Карточка товара: название, цена, ссылка на покупку MVP
Ф3.5 Хэштеги и категории Теги для навигации и поиска MVP
Ф3.6 Черновики Сохранение незаконченных публикаций MVP
Ф3.7 Встроенный видеоредактор Обрезка, фильтры, текст поверх видео v2
Ф3.8 Шаблоны Готовые шаблоны для рекламных постов v2
Ф3.9 Auto-ERID При публикации: запрос erid через ОРД → наложение erid прямо на изображение/видео + добавление в текст поста. Блогер не делает ничего вручную MVP
Ф3.10 Превью перед публикацией Предпросмотр как видит пользователь (с маркировкой) MVP
Ф3.11 Интерактивные метки на фото (LTK-стиль) Нажатие на объект в фото → всплывает цена и ссылка на покупку v2

4.4 Модуль: Карточка товара/услуги

# Функция Описание Приоритет
Ф4.1 Информация о товаре Название, описание, цена, фото MVP
Ф4.2 Ссылка на покупку Переход на сайт продавца / маркетплейс MVP
Ф4.3 Промокод Персональный промокод блогера MVP
Ф4.4 Сравнение цен Цена в разных магазинах (парсинг) v3
Ф4.5 Отзывы пользователей Отзывы людей, купивших через платформу v2
Ф4.6 "Хочу!" кнопка Сохранение в вишлист пользователя MVP
Ф4.7 Статистика переходов Счётчик кликов для блогера MVP

4.5 Модуль: Рекламный кабинет (для покупателей рекламных мест)

# Функция Описание Приоритет
Ф5.1 Создание рекламной кампании Бюджет, период, тип инвентаря (баннер, промо, тег) MVP
Ф5.2 Управление креативами Загрузка баннеров, настройка текстов, превью MVP
Ф5.3 Таргетинг По категориям, географии, аудитории блогеров MVP
Ф5.4 Аналитика кампании Показы, CTR, переходы, ROI MVP
Ф5.5 Оплата и биллинг Пополнение баланса (безнал для юрлиц), акты MVP
Ф5.6 Брендированная страница Своя страница рекламодателя с совместными публикациями v2
Ф5.7 Совместные публикации Спонсорский контент блогер + бренд v2
Ф5.8 Автоматический подбор блогеров AI-матчинг под задачу рекламодателя v3

4.6 Модуль: Поиск и навигация

# Функция Описание Приоритет
Ф6.1 Полнотекстовый поиск По названиям, описаниям, хэштегам MVP
Ф6.2 Поиск по категориям Дерево категорий (мода → платья → вечерние) MVP
Ф6.3 Поиск блогеров По нише, аудитории, городу MVP
Ф6.4 Автоподсказки Выпадающие подсказки при вводе MVP
Ф6.5 Трендовые запросы Популярные поисковые запросы за день/неделю v2
Ф6.6 Голосовой поиск Поиск голосом (интеграция с ASR) v3

4.7 Модуль: Уведомления и подписки

# Функция Описание Приоритет
Ф7.1 Push-уведомления Новый контент от подписок, статус модерации MVP
Ф7.2 Email-дайджест Еженедельная подборка рекомендаций v2
Ф7.3 Уведомления в приложении Колокольчик с историей событий MVP
Ф7.4 Подписка на хэштег Уведомления о новых публикациях по тегу v2

4.8 Модуль: Мессенджер

# Функция Описание Приоритет
Ф8.1 Чат блогер ↔ рекламодатель Обсуждение условий сотрудничества MVP
Ф8.2 Шаблоны сообщений Быстрые ответы на типовые запросы v2
Ф8.3 Обмен файлами Брифы, ТЗ, примеры контента MVP
Ф8.4 Интеграция со сделкой Привязка чата к рекламной кампании v2

4.9 Модуль: Аналитика

# Функция Описание Приоритет
Ф9.1 Дашборд блогера Просмотры, переходы, доход, динамика MVP
Ф9.2 Дашборд рекламодателя Охват, CPC, CPA, ROI по кампаниям MVP
Ф9.3 Дашборд админа GMV, активные пользователи, модерация MVP
Ф9.4 Экспорт отчётов CSV, PDF для бухгалтерии v2
Ф9.5 Воронка конверсий Просмотр → клик → переход → покупка v2

4.10 Модуль: Админ-панель

# Функция Описание Приоритет
Ф10.1 Управление пользователями Блокировка, верификация, роли MVP
Ф10.2 Очередь модерации Контент на проверке, AI-рекомендации MVP
Ф10.3 Финансы Транзакции, комиссии, выплаты MVP
Ф10.4 Настройки платформы Категории, правила, лимиты MVP
Ф10.5 Отчётность для ОРД Выгрузка данных о маркированной рекламе MVP
Ф10.6 Мониторинг Здоровье системы, ошибки, очереди MVP

5. Пользовательские сценарии

5.1 Блогер публикует рекламный контент

Как блогер, я хочу опубликовать видео-обзор товара, чтобы заработать на рекламе.

Шаг Действие Ожидаемый результат
1 Блогер нажимает "+" в приложении Открывается экран создания контента
2 Выбирает "Видео" и записывает/загружает ролик Видео загружается, отображается превью
3 Добавляет описание, хэштеги, категорию Поля заполнены, автоподсказки по тегам
4 Привязывает карточку товара (название, цена, ссылка) Карточка прикреплена к публикации
5 Выбирает рекламодателя из списка или указывает "самореклама" Определён плательщик рекламы
6 Нажимает "Опубликовать" Система автоматически добавляет маркировку "Реклама", контент отправляется на модерацию
7 Модерация (AI + ручная) одобряет контент Push: "Публикация одобрена", контент появляется в ленте
8 Блогер делится ссылкой в своих соцсетях Пользователи переходят на платформу

5.2 Пользователь открывает товар через контент

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

Шаг Действие Ожидаемый результат
1 Пользователь видит ссылку на AdWall в Telegram блогера Переходит по ссылке
2 Открывается контент блогера (видео/фото) Полноэкранный просмотр с карточкой товара внизу
3 Пользователь свайпит вверх Подробная информация о товаре, цена, ссылка на покупку
4 Нажимает "Купить" Переход на сайт продавца/маркетплейс
5 Продолжает скроллить ленту Алгоритм показывает похожие товары от других блогеров
6 Нажимает "Хочу!" на понравившемся товаре Товар сохраняется в вишлист
7 Подписывается на блогера Уведомления о новых публикациях

5.3 Рекламодатель запускает кампанию

Как рекламодатель, я хочу найти подходящих блогеров и запустить рекламную кампанию.

Шаг Действие Ожидаемый результат
1 Регистрируется как рекламодатель Доступ к рекламному кабинету
2 Создаёт кампанию: товар, бюджет, целевая аудитория Кампания в статусе "Черновик"
3 Подбирает блогеров: фильтр по нише, аудитории, рейтингу Список подходящих блогеров с метриками
4 Отправляет предложение выбранным блогерам Блогеры получают уведомление
5 Блогер принимает, создаёт контент Контент на одобрении у рекламодателя
6 Рекламодатель одобряет контент Контент публикуется, бюджет списывается
7 Смотрит аналитику: охват, переходы, конверсии Дашборд обновляется в реальном времени

5.4 Модератор проверяет контент

Как модератор, я хочу быстро проверить контент и предотвратить нарушения.

Шаг Действие Ожидаемый результат
1 Открывает очередь модерации Список контента, отсортированный по приоритету (AI-флаги первыми)
2 AI уже проверил контент и отметил потенциальные нарушения Красные/жёлтые метки с описанием проблемы
3 Просматривает контент, читает AI-заключение Контекст нарушения понятен
4 Одобряет или отклоняет с причиной Автору приходит уведомление с объяснением
5 При блокировке — контент снимается, аккаунт получает предупреждение Система ведёт счётчик нарушений

5.5 Администратор просматривает отчётность

Как администратор, я хочу видеть состояние платформы и финансов.

Шаг Действие Ожидаемый результат
1 Открывает админ-дашборд Ключевые метрики: DAU, GMV, контент/день
2 Проверяет финансы Баланс, транзакции, комиссии, выплаты
3 Генерирует отчёт для ОРД Выгрузка маркированных рекламных материалов
4 Просматривает очередь модерации Количество контента в очереди, среднее время проверки

6. Архитектура системы

6.1 Общая схема

flowchart TB
    subgraph Clients["Клиенты"]
        iOS["iOS-приложение"]
        Android["Android-приложение"]
        Web["Веб-приложение"]
    end

    subgraph Gateway["API Gateway"]
        APIGW["Nginx / Traefik"]
        CDN["CDN (видео/фото)"]
    end

    subgraph Core["Ядро платформы"]
        API["API Server"]
        Auth["Auth Service"]
        Content["Content Service"]
        Feed["Feed Service"]
        Search["Search Engine"]
    end

    subgraph Business["Бизнес-сервисы"]
        Ads["Ads Service"]
        Billing["Billing Service"]
        Chat["Chat Service"]
        Notify["Notification Service"]
    end

    subgraph AI["AI / ML"]
        Mod["Модерация"]
        Reco["Рекомендации"]
        ORD["ОРД-маркировка"]
    end

    subgraph Data["Хранилище"]
        DB["PostgreSQL"]
        Cache["Redis"]
        S3["Object Storage"]
        ES["Полнотекстовый поиск"]
        Queue["Очередь задач"]
    end

    Clients --> Gateway
    Gateway --> Core
    Core --> Business
    Core --> AI
    Core --> Data
    Business --> Data
    AI --> Data

    style Clients fill:#172554,stroke:#3b82f6
    style Gateway fill:#3b0764,stroke:#a855f7
    style Core fill:#14532d,stroke:#22c55e
    style Business fill:#78350f,stroke:#f59e0b
    style AI fill:#450a0a,stroke:#ef4444
    style Data fill:#172554,stroke:#3b82f6

6.2 Принципы архитектуры

Принцип Описание
Модульный монолит → микросервисы Стартуем как модульный монолит для скорости, выделяем сервисы по мере роста
Mobile-first API API оптимизирован под мобильные клиенты (пагинация, сжатие, offline)
Event-driven Асинхронная обработка через очередь (модерация, конвертация видео, уведомления)
CDN для медиа Видео и фото раздаются через CDN, бэкенд не участвует в раздаче
Горизонтальное масштабирование Stateless API-серверы за балансировщиком

6.3 Поток данных: публикация контента

flowchart TB
    Upload["Блогер загружает видео"]
    Validate["Валидация формата и размера"]
    S3["Сохранение в Object Storage"]
    Queue["Очередь обработки"]
    Transcode["Транскодирование (240p, 480p, 720p, 1080p)"]
    Thumbnail["Генерация превью"]
    AICheck["AI-модерация (NSFW, текст, бренды)"]
    ORDMark["Маркировка ОРД"]
    ModQueue["Очередь ручной модерации"]
    Publish["Публикация в ленту"]
    Index["Индексация в поиске"]
    Notify["Уведомление подписчикам"]

    Upload --> Validate --> S3 --> Queue
    Queue --> Transcode
    Queue --> Thumbnail
    Queue --> AICheck
    Transcode --> ModQueue
    AICheck --> ModQueue
    Thumbnail --> ModQueue
    ModQueue --> ORDMark --> Publish
    Publish --> Index
    Publish --> Notify

    style Upload fill:#172554,stroke:#3b82f6
    style AICheck fill:#450a0a,stroke:#ef4444
    style ORDMark fill:#78350f,stroke:#f59e0b
    style Publish fill:#14532d,stroke:#22c55e

7. Компоненты системы

7.1 Content Service — управление контентом

Назначение: CRUD операции над публикациями, управление медиафайлами, организация по категориям и хэштегам.

Ключевые функции:

  • Загрузка и валидация медиа (видео до 3 мин / 500 MB, фото до 10 шт / 50 MB)
  • Транскодирование видео в адаптивные разрешения (HLS)
  • Генерация превью (thumbnail) из первого кадра или выбранного фрейма
  • Привязка карточек товаров к публикациям
  • Управление черновиками и статусами публикации

Статусы публикации:

draft → pending_moderation → approved → published → archived
                           → rejected (с причиной)

7.2 Feed Service — формирование ленты

Назначение: Сборка персонализированной ленты контента для каждого пользователя.

Алгоритм формирования ленты (MVP):

  1. Подписки — контент от блогеров, на которых подписан пользователь (40% ленты)
  2. Категории — контент из выбранных пользователем категорий (30%)
  3. Тренды — самый популярный контент за последние 24 часа (20%)
  4. Промо — рекламные размещения с пометкой (10%)

Алгоритм формирования ленты (v2 — ML):

  • Коллаборативная фильтрация (похожие пользователи смотрели X)
  • Content-based рекомендации (embeddings контента)
  • Учёт поведения: время просмотра, лайки, переходы, "Хочу!"

7.3 Auth Service — авторизация

Назначение: Регистрация, авторизация, управление сессиями и ролями.

Методы авторизации:

  • Телефон + SMS-код (основной для РФ)
  • Email + пароль
  • OAuth: VK, Яндекс, Telegram
  • Apple Sign In / Google Sign In (для мобильных)

Роли и права:

Роль Публикация Рекламный кабинет Модерация Админка
Пользователь -- -- -- --
Блогер + -- -- --
Рекламодатель -- + -- --
Модератор -- -- + --
Админ + + + +

7.4 Ads Service — рекламные кампании

Назначение: Управление рекламными кампаниями, матчинг блогеров с рекламодателями, биллинг.

Жизненный цикл кампании:

created → active → matching → in_progress → review → completed → settled

Модели оплаты:

Модель Описание Когда используется
CPP (Cost Per Post) Фиксированная оплата за публикацию Основная модель
CPC (Cost Per Click) Оплата за переход на сайт рекламодателя Для performance-кампаний
CPM (Cost Per Mille) Оплата за 1000 показов Для охватных кампаний
Revenue Share % от продаж через промокод/ссылку Для партнёрских программ

7.5 Billing Service — финансы и расчёты

Назначение: Управление балансами, транзакциями, комиссиями и выплатами.

Финансовый поток:

Рекламодатель → пополнение баланса → заморозка суммы при запуске кампании
→ списание при выполнении условий → комиссия платформы (%)
→ начисление блогеру → вывод средств блогеру

Комиссии платформы (предварительно):

Операция Комиссия
Размещение рекламного контента 15-25%
Промо-размещения (топ ленты) Фиксированная цена
Вывод средств блогером 0% (до лимита) / 1%
Транзакции CPC/CPA 10-20%

7.6 Chat Service — мессенджер

Назначение: Коммуникация между блогерами и рекламодателями в рамках сделок.

Технические требования:

  • WebSocket для реального времени
  • Хранение истории сообщений
  • Обмен файлами (брифы, ТЗ, примеры)
  • Привязка чата к рекламной кампании
  • Push-уведомления о новых сообщениях

7.7 Notification Service — уведомления

Назначение: Отправка push-уведомлений, email и in-app уведомлений.

Типы уведомлений:

Событие Push Email In-app
Новая публикация от подписки + -- +
Контент одобрен/отклонён + + +
Новое сообщение в чате + -- +
Предложение от рекламодателя + + +
Выплата зачислена + + +
Еженедельный дайджест -- + --

8. Контент-модерация и безопасность

Этот раздел критически важен для презентации Минцифры.

8.1 Трёхуровневая система модерации

flowchart TB
    Upload["Загрузка контента"]

    subgraph L1["Уровень 1: Автоматическая"]
        NSFW["NSFW-детектор"]
        Text["Анализ текста (мат, экстремизм)"]
        Brand["Детектор товарных знаков"]
        Dup["Детектор дубликатов"]
    end

    subgraph L2["Уровень 2: AI-ассистент"]
        LLM["LLM-анализ контекста"]
        Score["Scoring: 0-100"]
    end

    subgraph L3["Уровень 3: Ручная"]
        Human["Модератор"]
        Appeal["Апелляция"]
    end

    Auto["Авто-одобрение (score > 90)"]
    Reject["Авто-отклонение (score < 20)"]
    Review["На проверку (20-90)"]

    Upload --> L1
    L1 --> L2
    L2 --> Auto
    L2 --> Reject
    L2 --> Review --> L3

    style L1 fill:#450a0a,stroke:#ef4444
    style L2 fill:#78350f,stroke:#f59e0b
    style L3 fill:#14532d,stroke:#22c55e

8.2 Категории запрещённого контента

Категория Детекция Действие
Порнография / NSFW Falconsai/nsfw_image_detection (open-source CV) Мгновенная блокировка
Токсичный текст rubert-tiny-toxicity (ROC AUC 0.9937 для русского) Фильтрация + предупреждение
Наркотики Текст + CV + LLM Мгновенная блокировка
Экстремизм, терроризм Текст + LLM + база Минюста Мгновенная блокировка + отчёт (обязательно по закону)
Мошенничество LLM-анализ + поведенческие паттерны Блокировка + предупреждение
Нарушение авторских прав pHash fingerprinting + жалобы Снятие + уведомление
Контент с запрещённых площадок Проверка ссылок на заблокированные домены Блокировка ссылки

Стоимость модерации (бенчмарки): AI — ~₽0.1-1 за текст, ~₽1-5 за изображение. Ручная модерация — ₽30-60К/мес за модератора. При 10K DAU (~50K единиц контента/день): 85-95% автоматически, 1-2 модератора для уровней 2-3.

8.3 Политика безопасности

  • Верификация блогеров — паспорт или ИНН для подтверждения личности
  • Верификация рекламодателей — ИНН + выписка ЕГРЮЛ/ЕГРИП
  • Rate limiting — защита от спама и ботов
  • Жалобы пользователей — кнопка "Пожаловаться" на каждой публикации
  • Система штрафов — 3 предупреждения → временная блокировка → бан
  • Прозрачность — публичный отчёт о модерации (кол-во проверок, блокировок, апелляций)

8.4 Данные для Минцифры

Платформа предоставляет регулятору:

  • API для получения статистики модерации
  • Ежемесячные отчёты о заблокированном контенте
  • Доступ к системе жалоб
  • Инструменты экстренной блокировки по запросу регулятора

9. Маркировка рекламы и ОРД

9.1 Требования ФЗ о рекламе

С 1 сентября 2022 года вся интернет-реклама в РФ подлежит маркировке:

Требование Реализация в AdWall
Пометка "Реклама" Автоматически добавляется к каждой публикации
Указание рекламодателя ИНН рекламодателя в карточке
Токен рекламного креатива Генерируется через API ОРД
Отчётность в ЕРИР Автоматическая выгрузка через ОРД

9.2 Архитектура ОРД-интеграции: ORD Gateway

Реестр ОРД меняется (8 операторов на 2026 год, последний добавлен в декабре 2025), API версии обновляются, тарифы переходят из беты в платный режим. Поэтому архитектурно закладываем адаптерный слой (ORD Gateway) — единый интерфейс для работы с любым ОРД.

flowchart TB
    Create["Блогер создаёт публикацию"]
    Meta["Сбор метаданных"]
    GW["ORD Gateway (адаптерный слой)"]

    subgraph ORDs["Операторы рекламных данных"]
        Y["Яндекс ОРД"]
        VK["VK ОРД"]
        Other["Другие ОРД"]
    end

    Token["erid получен"]
    Mark["Маркировка в UI"]
    Publish["Публикация"]
    Report["Ежемесячная отчётность"]

    Create --> Meta --> GW
    GW --> ORDs
    ORDs --> Token --> Mark --> Publish
    Publish --> Report

    style GW fill:#78350f,stroke:#f59e0b
    style ORDs fill:#172554,stroke:#3b82f6
    style Publish fill:#14532d,stroke:#22c55e

9.3 Выбор ОРД

ОРД Тарифы Sandbox API Рекомендация
Яндекс ОРД Бесплатно (тарифы пересматриваются с 02.2026) Есть REST, OAuth2, Swagger Старт
VK ОРД Бесплатно Демо-кабинет REST Резервный
МедиаСкаут (МТС) 1% от бюджета, мин ₽1000/мес Нет REST На перспективу
Озон ОРД Мин ₽5000/мес Есть REST На перспективу

Стратегия: Старт с Яндекс ОРД (лучшие доки, sandbox, бесплатно). VK ОРД — резервный. ORD Gateway позволяет подключать новые ОРД без переписывания логики.

9.4 Что маркируется автоматически

  • Каждая публикация с привязкой к товару/услуге → автоматический запрос erid
  • erid отображается: поверх видео, в подписи поста, как GET-параметр в ссылках
  • Пометка "Реклама" + ИНН рекламодателя — в каждой карточке
  • Ежемесячная отчётность: статистика показов, суммы, закрывающие акты → автоматически в ЕРИР через ОРД
  • Блогер не взаимодействует с ОРД напрямую — всё встроено в UX публикации

10. Рекомендательная система

10.1 Фаза 0 (до 500 пользователей): правила и ручная курация

Правила дают 50-70% ценности ML-рекомендаций и являются правильной стартовой точкой.

Сигнал Вес Описание
Категории пользователя 30% Выбранные при регистрации интересы
Подписки 25% Контент от подписанных блогеров
Популярность 20% Просмотры, лайки, "Хочу!" за 24ч
Свежесть 15% Новый контент приоритетнее
Промо (рекламные места) 10% Оплаченные размещения рекламодателей (с пометкой erid)

10.2 Фаза 1 (500-5000 пользователей): LightFM

  • LightFM — гибридная модель, сочетает content-based (категории, теги, embeddings изображений) и collaborative filtering
  • Хорошо работает при cold-start (мало данных о пользователях)
  • Индивидуальная персонализация начинает работать при 1000+ пользователей с 5+ взаимодействиями

10.3 Фаза 2 (5000+ пользователей): Two-tower + CatBoost

  • Two-tower модель (user tower + item tower) — state-of-the-art для Pinterest, TikTok, YouTube
  • Item embeddings вычисляются offline, user embeddings — в реальном времени
  • CatBoost для ранжирования — нативная работа с категориальными фичами (используется VK Discovery)
  • FAISS для approximate nearest neighbor search

10.4 Рекламный слой в рекомендациях

Критически важно: как только алгоритм "продвигает" рекламный контент (boost, промо-позиции) — это автоматически запускает контур ОРД/ЕРИР. Рекламный инвентарь строго отделён от органической ленты и всегда маркирован erid.

10.5 Метрики качества

Метрика Цель Описание
CTR ленты > 5% Доля публикаций, на которые кликнули
Время просмотра > 30 сек Среднее время на публикацию
Scroll depth > 10 Среднее число карточек за сессию
Conversion rate > 1% Доля переходов на сайт продавца

11. Монетизация — техническая реализация

11.1 Модель: продажа рекламных мест (медийная модель)

Блогеры используют платформу бесплатно. Доход платформы — от продажи рекламных размещений крупным рекламодателям (бренды, маркетплейсы, банки, телеком).

flowchart TB
    subgraph Advertisers["Рекламодатели"]
        Brand["Бренды (Сбербанк, МТС)"]
        Market["Маркетплейсы"]
        Agency["Рекламные агентства"]
    end

    subgraph Platform["Платформа"]
        AdBalance["Баланс рекламодателя"]
        AdEngine["Рекламный движок"]
        Analytics["Аналитика показов"]
    end

    subgraph Inventory["Рекламный инвентарь"]
        Banner["Баннеры в ленте"]
        Promo["Промо-позиции"]
        Tags["Подборки по тегам"]
        BrandPage["Брендированные страницы"]
    end

    Advertisers --> AdBalance --> AdEngine
    AdEngine --> Inventory
    Inventory --> Analytics

    style Advertisers fill:#14532d,stroke:#22c55e
    style Platform fill:#78350f,stroke:#f59e0b
    style Inventory fill:#172554,stroke:#3b82f6

11.2 Типы рекламного инвентаря

Тип Описание Модель оплаты
Баннеры в ленте Нативные рекламные карточки между контентом блогеров CPM (за 1000 показов)
Промо-позиции Приоритетное размещение в топе ленты/категории Фиксированная цена / день
Тегированные подборки Брендированная подборка по хэштегу (#красота от бренда X) Фикс / неделя
Брендированная страница Полноценная страница рекламодателя с совместными публикациями с блогерами Подписка / месяц
Нативные интеграции Совместные публикации блогер + бренд (отмечены как спонсорские) CPC / CPM

11.3 Финансовый поток

  1. Рекламодатель (юрлицо) пополняет баланс по безналичному расчёту
  2. Создаёт рекламную кампанию: выбирает тип инвентаря, бюджет, период
  3. Рекламный движок показывает размещения целевой аудитории
  4. Списание по факту показов/кликов или по фиксированному графику
  5. Аналитика: охват, CTR, переходы — в рекламном кабинете

11.4 Платёжная инфраструктура

Провайдер Для чего Комиссия
ЮKassa (эскроу "Безопасная сделка") Приём платежей от рекламодателей, hold до 180 дней 3.5% (карты)
Т-Касса Альтернативный приём, СБП 2.19-2.69% (карты), 0.4-0.7% (СБП)
Безналичный расчёт Для крупных рекламодателей (юрлица) 0% (банковский перевод)

Важно: ЮKassa прекратила обслуживание самозанятых с 29.12.2025. Если в будущем появятся выплаты блогерам — использовать Рокет Ворк или WinWork для mass payouts.

11.5 Юридическая структура

Параметр Решение
Юрлицо ООО на УСН "Доходы" (6%)
Роль в рекламной цепочке Рекламораспространитель (площадка)
3% рекламный сбор Платит площадка с дохода от распространения рекламы
ФЗ-152 Хранение ПДн строго в РФ, регистрация как оператор ПДн
Блогеры Не платят комиссию, самостоятельно платят свои налоги и 3% сбор со своего рекламного дохода

12. Модель данных

12.1 Основные сущности

flowchart TB
    subgraph Users["Пользователи"]
        User["User"]
        Blogger["BloggerProfile"]
        Advertiser["AdvertiserProfile"]
    end

    subgraph Content["Контент"]
        Post["Post"]
        Media["Media"]
        Product["ProductCard"]
        Tag["Tag"]
    end

    subgraph Ads["Реклама"]
        Campaign["Campaign"]
        Deal["Deal"]
        Transaction["Transaction"]
    end

    subgraph Social["Социальное"]
        Follow["Follow"]
        Wishlist["Wishlist"]
        Message["Message"]
    end

    User --> Blogger
    User --> Advertiser
    Blogger --> Post
    Post --> Media
    Post --> Product
    Post --> Tag
    Advertiser --> Campaign
    Campaign --> Deal
    Deal --> Blogger
    Deal --> Transaction
    User --> Follow
    User --> Wishlist
    Wishlist --> Product

    style Users fill:#172554,stroke:#3b82f6
    style Content fill:#14532d,stroke:#22c55e
    style Ads fill:#78350f,stroke:#f59e0b
    style Social fill:#3b0764,stroke:#a855f7

12.2 Схема данных (ключевые таблицы)

Пользователи:

{
  "User": {
    "id": "uuid",
    "phone": "+79001234567",
    "email": "user@example.com",
    "display_name": "Анна Иванова",
    "avatar_url": "https://cdn.blogmarket.ru/avatars/uuid.jpg",
    "role": "blogger | advertiser | user | moderator | admin",
    "is_verified": true,
    "inn": "770100001234",
    "created_at": "2026-04-01T10:00:00Z"
  }
}

Профиль блогера:

{
  "BloggerProfile": {
    "user_id": "uuid",
    "bio": "Обзоры техники и гаджетов",
    "categories": ["tech", "gadgets"],
    "social_links": {
      "telegram": "@annareviews",
      "vk": "https://vk.com/annareviews",
      "youtube": "https://youtube.com/@annareviews"
    },
    "subscribers_count": 15420,
    "total_views": 2340000,
    "avg_engagement_rate": 4.2,
    "rating": 4.8,
    "is_verified": true,
    "verified_at": "2026-03-15T00:00:00Z"
  }
}

Публикация:

{
  "Post": {
    "id": "uuid",
    "blogger_id": "uuid",
    "type": "video | photo | text",
    "title": "Обзор беспроводных наушников",
    "description": "Тестировала 2 недели — вот что думаю...",
    "status": "draft | pending_moderation | approved | published | rejected | archived",
    "rejection_reason": null,
    "category": "tech",
    "tags": ["наушники", "обзор", "техника"],
    "ad_marker": {
      "is_ad": true,
      "advertiser_inn": "770100001234",
      "advertiser_name": "ООО Аудиотех",
      "erid": "2VtzqwP1234",
      "ord_token_created_at": "2026-04-01T12:00:00Z"
    },
    "stats": {
      "views": 12500,
      "likes": 890,
      "wishlist_adds": 234,
      "clicks": 567,
      "shares": 45
    },
    "media": ["uuid-1", "uuid-2"],
    "product_card_id": "uuid",
    "published_at": "2026-04-01T14:00:00Z",
    "created_at": "2026-04-01T10:00:00Z"
  }
}

Карточка товара:

{
  "ProductCard": {
    "id": "uuid",
    "name": "Беспроводные наушники XSound Pro",
    "description": "Активное шумоподавление, 30 часов работы",
    "price": 8990,
    "currency": "RUB",
    "image_urls": ["https://cdn.blogmarket.ru/products/uuid-1.jpg"],
    "purchase_url": "https://shop.example.com/xsound-pro",
    "promo_code": "ANNA10",
    "promo_discount": "10%",
    "seller_name": "Аудиотех",
    "seller_url": "https://shop.example.com"
  }
}

Рекламная кампания:

{
  "Campaign": {
    "id": "uuid",
    "advertiser_id": "uuid",
    "name": "Запуск XSound Pro — весна 2026",
    "product_card_id": "uuid",
    "budget": 500000,
    "budget_spent": 125000,
    "status": "draft | active | paused | completed | cancelled",
    "payment_model": "cpp | cpc | cpm | revenue_share",
    "target_categories": ["tech", "lifestyle"],
    "target_audience": {
      "age_min": 18,
      "age_max": 45,
      "regions": ["Москва", "Санкт-Петербург"]
    },
    "start_date": "2026-04-01",
    "end_date": "2026-05-01",
    "created_at": "2026-03-25T10:00:00Z"
  }
}

13. API-спецификация

13.1 Основные эндпоинты

Авторизация:

Метод Путь Описание
POST /api/v1/auth/send-code Отправить SMS-код
POST /api/v1/auth/verify-code Подтвердить код, получить JWT
POST /api/v1/auth/oauth/{provider} OAuth через VK/Yandex/Telegram
POST /api/v1/auth/refresh Обновить JWT-токен
DELETE /api/v1/auth/logout Выход

Контент:

Метод Путь Описание
GET /api/v1/feed Персонализированная лента
GET /api/v1/feed/trending Трендовый контент
GET /api/v1/posts/{id} Детали публикации
POST /api/v1/posts Создать публикацию
PATCH /api/v1/posts/{id} Обновить черновик
DELETE /api/v1/posts/{id} Удалить публикацию
POST /api/v1/posts/{id}/publish Отправить на модерацию
POST /api/v1/media/upload Загрузить медиафайл

Профили:

Метод Путь Описание
GET /api/v1/users/{id} Профиль пользователя
GET /api/v1/bloggers/{id} Профиль блогера + публикации
GET /api/v1/bloggers/{id}/stats Статистика блогера
POST /api/v1/bloggers/{id}/follow Подписаться
DELETE /api/v1/bloggers/{id}/follow Отписаться

Рекламный кабинет:

Метод Путь Описание
GET /api/v1/campaigns Список кампаний
POST /api/v1/campaigns Создать кампанию
PATCH /api/v1/campaigns/{id} Обновить кампанию
GET /api/v1/campaigns/{id}/stats Аналитика кампании
POST /api/v1/campaigns/{id}/deals Предложить сделку блогеру
PATCH /api/v1/deals/{id} Принять/отклонить сделку

Поиск:

Метод Путь Описание
GET /api/v1/search?q={query} Полнотекстовый поиск
GET /api/v1/search/bloggers?category={cat} Поиск блогеров
GET /api/v1/categories Дерево категорий
GET /api/v1/tags/trending Трендовые теги

Финансы:

Метод Путь Описание
GET /api/v1/billing/balance Баланс (блогер/рекламодатель)
POST /api/v1/billing/topup Пополнение баланса
POST /api/v1/billing/withdraw Заявка на вывод средств
GET /api/v1/billing/transactions История транзакций

Модерация:

Метод Путь Описание
GET /api/v1/moderation/queue Очередь на проверку
POST /api/v1/moderation/{post_id}/approve Одобрить
POST /api/v1/moderation/{post_id}/reject Отклонить с причиной
POST /api/v1/reports Жалоба на контент

Мессенджер:

Метод Путь Описание
GET /api/v1/chats Список диалогов
GET /api/v1/chats/{id}/messages Сообщения диалога
POST /api/v1/chats/{id}/messages Отправить сообщение
WebSocket /ws/chats Real-time сообщения

13.2 Пример запроса: создание публикации

Request:

POST /api/v1/posts
Content-Type: application/json
Authorization: Bearer <jwt>

{
  "type": "video",
  "title": "Обзор наушников XSound Pro",
  "description": "Тестировала 2 недели в метро, спортзале и дома...",
  "category": "tech",
  "tags": ["наушники", "обзор", "техника", "xsound"],
  "media_ids": ["uuid-media-1"],
  "product_card": {
    "name": "XSound Pro",
    "price": 8990,
    "purchase_url": "https://shop.example.com/xsound-pro",
    "promo_code": "ANNA10"
  },
  "ad_info": {
    "advertiser_id": "uuid-advertiser",
    "campaign_id": "uuid-campaign"
  }
}

Response (201 Created):

{
  "id": "uuid-post",
  "status": "draft",
  "ad_marker": {
    "is_ad": true,
    "erid": null,
    "status": "pending_ord_registration"
  },
  "created_at": "2026-04-01T10:00:00Z"
}

13.3 Коды ошибок

Код Описание
400 Невалидные данные (описание ошибки в теле ответа)
401 Не авторизован
403 Нет прав (роль не соответствует)
404 Ресурс не найден
409 Конфликт (дублирование, уже существует)
413 Файл слишком большой
429 Слишком много запросов (rate limit)
500 Внутренняя ошибка сервера

14. Стек технологий

14.1 Клиентские приложения

Компонент Технология Обоснование
iOS Swift + SwiftUI Нативная производительность, плавные анимации
Android Kotlin + Jetpack Compose Нативная производительность, Material Design
Веб-приложение Next.js (React) SSR, SEO для контента, общий код с PWA
Видеоплеер ExoPlayer (Android) / AVPlayer (iOS) HLS-стриминг, адаптивный битрейт

Альтернатива: React Native / Flutter для кросс-платформенной разработки (быстрее, дешевле, но компромисс по UX).

14.2 Backend

Компонент Технология Обоснование
API-сервер Go / Node.js Высокая производительность, параллелизм
БД (основная) PostgreSQL JSONB, полнотекстовый поиск, надёжность
Кэш / сессии Redis Скорость, pub/sub для реального времени
Очередь задач Redis (BullMQ) или RabbitMQ Асинхронная обработка (модерация, видео)
Полнотекстовый поиск Elasticsearch / Meilisearch Быстрый поиск по контенту, хэштегам
Хранение медиа S3-совместимое (MinIO / Yandex Object Storage) Масштабируемое хранение видео/фото
CDN CDNvideo (основной) / Gcore (резервный) Быстрая раздача видео по РФ. Cloudflare НЕ применим — дросселируется Роскомнадзором
WebSocket Centrifugo Real-time (чат, уведомления, лента)

14.3 AI / ML

Задача Технология Обоснование
Модерация контента (NSFW) Open-source CV модель Offline, без зависимости от внешних API
Модерация текста LLM (через API) Понимание контекста, сарказма, скрытой рекламы
Рекомендации (v2) Two-tower модель State-of-the-art для рекомендательных систем
Embeddings контента Embedding-модель Семантический поиск и рекомендации

14.4 DevOps / Инфраструктура

Компонент Технология Обоснование
Контейнеризация Docker + Docker Compose Единообразная среда, простой деплой
Оркестрация Kubernetes (при масштабировании) Автоскейлинг, rolling updates
CI/CD GitHub Actions Автоматическое тестирование и деплой
Мониторинг Prometheus + Grafana Метрики, алерты, дашборды
Логирование Loki / ELK Stack Централизованные логи
Транскодирование видео FFmpeg (в контейнере) Конвертация в HLS, превью, resize

15. Инфраструктура и деплой

15.1 Серверные требования и стоимость (данные из исследования)

Этап Compute Storage CDN Транскодирование Итого/мес
MVP (1K DAU) ₽3-5K ₽0.5-1.5K ₽2-5K ₽1-3K ₽8.5-19.5K/мес
Рост (10K DAU) ₽15-30K ₽5-15K ₽20-50K ₽5-15K ₽55-130K/мес
Масштаб (100K+ DAU) ₽100-200K ₽50-150K ₽150-400K ₽30-100K ₽380-950K/мес

Цены: Yandex Cloud / Selectel / VK Cloud. Хостинг строго в РФ (ФЗ-152).

15.2 Структура деплоя (MVP)

┌─────────────────────────────────────────┐
│  Reverse Proxy (Nginx / Caddy)          │
│  SSL termination, routing               │
├─────────────────────────────────────────┤
│  Web App (Next.js)       :3000          │
│  API Server (Go/Node)    :8000          │
│  Centrifugo (WebSocket)  :8001          │
├─────────────────────────────────────────┤
│  PostgreSQL              :5432          │
│  Redis                   :6379          │
│  Meilisearch             :7700          │
├─────────────────────────────────────────┤
│  MinIO (Object Storage)  :9000          │
│  Worker (транскодирование, модерация)   │
└─────────────────────────────────────────┘

15.3 CDN для медиаконтента

  • Видео и фото раздаются через CDN (edge-серверы в крупных городах РФ)
  • Оригиналы хранятся в Object Storage
  • CDN автоматически кэширует по географии

16. Нефункциональные требования

# Параметр Порог (MVP) Порог (Scale)
N1 Время загрузки ленты (p95) <= 2 сек <= 1 сек
N2 Время начала воспроизведения видео <= 3 сек <= 1.5 сек
N3 Время загрузки медиа (100 MB видео) <= 30 сек <= 15 сек
N4 API response time (p95) <= 500 мс <= 200 мс
N5 Доступность (uptime) >= 99% >= 99.9%
N6 Одновременных пользователей >= 100 >= 10 000
N7 Время модерации (AI + ручная) <= 2 ч <= 30 мин
N8 Размер мобильного приложения <= 50 MB <= 50 MB
N9 Время регистрации <= 1 мин <= 1 мин
N10 Покрытие тестами (backend) >= 60% >= 80%

17. Дизайн и UX

17.1 Визуальная концепция

"Должно быть всё выглядеть очень стильно" — Александр, из встречи 24.03

Параметр Описание
Стиль Премиальный, чистый, минималистичный
Референсы Pinterest (сетка), TikTok (свайп-лента), Instagram (Stories)
Цвета Тёмная тема (основная) + светлая тема. Акцентный цвет — на выбор
Типография Современные sans-serif шрифты (Inter, SF Pro, Manrope)
Анимации Плавные переходы, micro-interactions, skeleton loading
Иконки Outlined стиль, консистентный размер

17.2 Ключевые экраны

# Экран Описание
1 Онбординг 3-4 слайда: концепция, выбор интересов, роль
2 Лента (видео) Полноэкранный вертикальный свайп, как TikTok
3 Лента (каталог) Pinterest-сетка с карточками товаров
4 Профиль блогера Шапка + статистика + сетка контента
5 Карточка товара Фото/видео + описание + цена + "Купить" / "Хочу!"
6 Создание публикации Пошаговый wizard: медиа → описание → товар → превью
7 Рекламный кабинет Дашборд с кампаниями, аналитикой, блогерами
8 Мессенджер Список чатов + диалог (как в Telegram)
9 Поиск Строка поиска + категории + тренды
10 Настройки Профиль, уведомления, безопасность, выплаты

17.3 Адаптивность

Платформа Приоритет Подход
iOS Высший Нативное приложение
Android Высший Нативное приложение
Веб (desktop) Средний Адаптивный веб-сайт
Веб (mobile) Средний PWA + адаптивная вёрстка

18. Стратегия тестирования

Уровень Что тестируем Инструменты Покрытие
Unit Бизнес-логика, сервисы Jest / Go test >= 70%
Integration API endpoints, БД Supertest / httptest Все эндпоинты
E2E (веб) Ключевые пользовательские пути Playwright 10 основных сценариев
E2E (мобайл) Регистрация, публикация, покупка Detox / Maestro 5 основных сценариев
Performance Нагрузка на API, ленту k6 / Artillery NFR-пороги
Security OWASP Top 10, инъекции OWASP ZAP, ручной аудит Перед запуском
Модерация Точность AI-модерации Ручная оценка на тестовом наборе Precision > 95%, Recall > 90%

19. Этапы реализации (MVP → Full)

19.1 MVP (Minimum Viable Product)

Цель: Работающая площадка для демонстрации и первых пользователей.

Что входит Что НЕ входит
Регистрация (телефон + SMS) OAuth (VK, Yandex)
Лента контента (видео + каталог) ML-рекомендации
Публикация контента (видео + фото) Встроенный видеоредактор
Карточка товара с ссылкой Сравнение цен
Базовый поиск и категории Голосовой поиск
Профиль блогера Автогенерация медиа-кита
Подписки и уведомления Email-дайджест
AI-модерация (NSFW + текст) Рекомендательная ML-модель
Автомаркировка рекламы (ОРД) Множественные ОРД
Рекламный кабинет (CPP) CPC/CPM/Revenue Share
Мессенджер (базовый чат) Шаблоны, привязка к сделкам
Админ-панель Расширенная аналитика
Веб-приложение (PWA) Нативные iOS/Android
Оплата (Юкасса) Безналичный расчёт для юрлиц

19.2 v2 — Рост

  • ML-рекомендации (Two-tower модель)
  • Нативные iOS + Android приложения
  • Расширенный рекламный кабинет (CPC, CPM)
  • Аналитика и отчёты (воронки, ROI)
  • OAuth авторизация
  • Email-дайджест
  • Отзывы пользователей
  • Рейтинг блогеров
  • Расширенная модерация (fingerprinting, жалобы)

19.3 v3 — Масштаб

  • Автоматический матчинг блогеров (AI)
  • Revenue Share модель
  • Сравнение цен (парсинг маркетплейсов)
  • Голосовой поиск
  • Геолокация
  • Встроенный видеоредактор
  • API для интеграции с внешними системами
  • Партнёрская программа (реферальная)

20. Дорожная карта

gantt
    title Дорожная карта AdWall
    dateFormat YYYY-MM-DD
    excludes weekends

    section Фаза 0: Подготовка
    Дизайн UI/UX (прототипы)       :design, 2026-04-14, 15d
    Презентация для Минцифры        :pres, 2026-04-14, 10d
    Архитектура и DevOps setup      :arch, 2026-04-14, 10d

    section Фаза 1: MVP Backend
    Auth + Users + Profiles         :auth, after arch, 10d
    Content Service + Media         :content, after auth, 15d
    Feed Service                    :feed, after content, 10d
    Модерация (AI)                  :mod, after content, 10d
    ОРД-интеграция                  :ord, after mod, 10d

    section Фаза 2: MVP Frontend
    Веб-приложение (Next.js)        :web, after feed, 20d
    Лента + Каталог                 :lens, after feed, 15d
    Создание контента               :create, after lens, 10d
    Поиск и навигация               :search, after lens, 10d

    section Фаза 3: Бизнес-логика
    Рекламный кабинет               :ads, after ord, 15d
    Биллинг и платежи               :bill, after ads, 15d
    Мессенджер                      :chat, after web, 10d
    Админ-панель                    :admin, after bill, 10d

    section Фаза 4: Запуск
    Тестирование и QA               :qa, after admin, 10d
    Пилотный запуск (beta)          :beta, after qa, 5d
    Итерации по обратной связи      :iter, after beta, 10d

20.1 Ключевые вехи

Дата Веха Результат
Конец апреля 2026 Презентация для Минцифры Визуальная презентация + прототип
Конец мая 2026 MVP Backend готов API, модерация, ОРД работают
Конец июня 2026 MVP Frontend готов Веб-приложение, лента, публикация
Середина июля 2026 Бизнес-логика Рекламный кабинет, платежи, чат
Конец июля 2026 Beta-запуск Приглашённые блогеры + рекламодатели
Сентябрь 2026 Публичный запуск Открытая регистрация

21. Команда проекта

21.1 Необходимые роли

Роль Кол-во Основные задачи
Tech Lead / Архитектор 1 Архитектура, код-ревью, ключевые решения
Backend-разработчик 2 API, бизнес-логика, интеграции
Frontend-разработчик 1 Веб-приложение (Next.js)
Mobile-разработчик 1-2 iOS + Android (с v2)
AI/ML-инженер 1 Модерация, рекомендации
UI/UX-дизайнер 1 Интерфейсы, прототипы, дизайн-система
DevOps 0.5 Инфраструктура, CI/CD, мониторинг
QA-инженер 1 Тестирование, автотесты
Product Manager 1 Приоритизация, roadmap, общение с клиентом

21.2 Минимальная команда (MVP)

Для MVP достаточно:

  • 1 Tech Lead (fullstack) + 1 Backend + 1 Frontend + 0.5 AI + 0.5 DevOps + 1 дизайнер
  • Итого: 5-6 человек

22. Риски и митигация

# Риск Вероятность Влияние Митигация
R1 Минцифры не входит как партнёр Средняя Высокое Платформа спроектирована compliance-first — работает легально без партнёрства. Минцифры = ускоритель, не блокер
R2 Блокировка Роскомнадзором Низкая Критическое ОРД-интеграция, полная маркировка, реестр 10K+, прозрачная отчётность. Партнёрство с Минцифры снижает риск
R3 Изменение закона о рекламе Средняя Высокое ORD Gateway (адаптерный слой) — быстрая адаптация к новым требованиям
R4 Конкуренция (Яндекс.Ритм и VK) Средняя Среднее Фокус на блогерах (бесплатно), а не на брендах. Мессенджер, стилизованные страницы, UX
R5 Холодный старт (нет блогеров) Высокая Высокое Привлечение 50-100 блогеров через личные контакты Максима. Бесплатность снижает барьер
R6 Низкое качество AI-модерации Средняя Высокое Трёхуровневая система (AI + scoring + ручная). rubert-tiny-toxicity для русского (ROC AUC 0.9937)
R7 Рекламодатели не покупают места Средняя Высокое Без критической массы блогеров и трафика — нет рекламодателей. Фокус на росте аудитории в первые 6 мес
R8 Мошенничество (накрутки) Высокая Среднее Верификация аккаунтов, anti-fraud, проверка статуса 10K+ через API РКН
quadrantChart
    title Risk Map
    x-axis "Low probability" --> "High probability"
    y-axis "Low impact" --> "High impact"

    R1 MinCifry exit: [0.5, 0.75]
    R2 RKN block: [0.2, 0.95]
    R3 Law change: [0.4, 0.75]
    R4 Competition: [0.5, 0.5]
    R5 Cold start: [0.7, 0.8]
    R6 AI quality: [0.4, 0.7]
    R7 No advertisers: [0.5, 0.8]
    R8 Fraud: [0.7, 0.5]

23. Открытые вопросы

# Вопрос Контекст Варианты
1 Нативные приложения или кросс-платформа? Мобильное приложение — приоритет (пользователи приходят из мобильных соцсетей). Нативные дают лучший UX, но стоят x2 A) PWA на старте, нативные с v2 (рекомендуем); B) Flutter/React Native сразу; C) Нативные iOS + Android
2 Хостинг Данные обязаны храниться в РФ (ФЗ-152). Зарубежные облака исключены A) Yandex Cloud (рекомендуем — S3, CDN, compute); B) Selectel; C) VK Cloud
3 Язык бэкенда Зависит от команды и планов масштабирования A) Go (производительность); B) Node.js/TypeScript (скорость разработки); C) Python (ML-интеграции)
4 Ценообразование рекламных мест Нет бенчмарков для новой площадки. Нужна стартовая pricing strategy A) CPM ₽50-200 (аналог Telegram Ads); B) Фиксированные пакеты; C) Аукционная модель
5 Позиционирование для Минцифры Как подать проект, чтобы максимизировать интерес к партнёрству A) "Импортозамещение Instagram для рекламы"; B) "Легальная площадка — антидот серому рынку"; C) "Инструмент прозрачности рекламного рынка"
6 Референс: LTK (LikeToKnowIt) Идентифицировано по скриншоту. Ключевая фича — интерактивные метки на фото (нажатие → цена/ссылка). Заблокирован в App Store в РФ Фича "интерактивные метки" заложена в roadmap v2
7 Доля Минцифры Какую долю/формат предлагать? Требует отдельной проработки с юристом

24. Глоссарий

Термин Определение
ОРД Оператор рекламных данных — организация, через которую маркируется реклама в интернете
ЕРИР Единый реестр интернет-рекламы — государственная система учёта рекламы
erid Уникальный токен рекламного креатива, присваиваемый ОРД
CPP Cost Per Post — оплата за одну рекламную публикацию
CPC Cost Per Click — оплата за один клик (переход)
CPM Cost Per Mille — оплата за 1000 показов
CPA Cost Per Action — оплата за целевое действие (покупку, регистрацию)
GMV Gross Merchandise Value — общий объём транзакций на платформе
DAU Daily Active Users — ежедневная активная аудитория
HLS HTTP Live Streaming — протокол адаптивного видеостриминга
CDN Content Delivery Network — сеть доставки контента
NSFW Not Safe For Work — контент для взрослых
PWA Progressive Web App — веб-приложение с функциями нативного
Эскроу Условное депонирование — заморозка средств до выполнения условий
ФЗ-152 Федеральный закон о персональных данных
Медиа-кит Документ с данными о блогере (аудитория, охваты, стоимость размещения)

Техническое задание является предварительным и будет уточняться по мере получения ответов на открытые вопросы.

Подготовлено: AiDevTeam Дата: 01.04.2026

Следующие шаги

Техническое задание на платформу AdWall. Чтобы двигаться дальше, уточним несколько вопросов.

Точки внимания

Холодный старт

Без блогеров нет трафика, без трафика нет рекламодателей. Нужна стратегия привлечения первых 50-100 блогеров.

Блокировка Роскомнадзором

Стратегическое партнёрство и полный compliance с ОРД/ЕРИР минимизируют риск.

Изменение регулирования

Регуляторика меняется быстро. Архитектура ORD Gateway позволяет адаптироваться.

Конкуренция

Крупные игроки развивают свои инструменты. Наше преимущество: бесплатность и Auto-ERID.

Как сделать мощнее и дешевле

Идеальный тайминг

Запрет рекламы на Instagram создал массовый дефицит площадок. 59% блогеров ушли в Telegram без инструментов.

Бесплатно для блогеров

Нулевой барьер входа. Платформа зарабатывает на рекламных местах для крупных брендов.

Auto-ERID

Автоматическая маркировка прямо на изображении и в тексте. Блогер не думает о compliance.

Mobile-first

Пользователи приходят из мобильных соцсетей. Вертикальное видео + интерактивные метки на фото.

Стратегический партнёр

Легитимизация на государственном уровне, защита от блокировки.

Рынок ₽58 млрд

Российский инфлюенсер-маркетинг растёт на 30%+ в год.

Вопрос 1

Приоритет

Что важнее сделать первым?

Вопрос 2

Платформа

С чего начинаем?

Вопрос 3

Первые блогеры

Есть ли блогеры, готовые тестировать платформу?

Вопрос 4

Рекламные места

Ценообразование на старте?

Вопрос 5

Комментарии

Любые вопросы или дополнительная информация.