SaaS-платформа / аналитика
MaxCatalog.ru
Каталог и аналитика каналов в мессенджере MAX
13,9K каналов в каталоге
Задача
Создать аналитический сервис для мессенджера MAX — аналог TGStat и MaxFrame: каталог каналов, динамика подписчиков, биржа рекламы и инструменты для рекламодателей, владельцев каналов и аналитиков.
Проект требовал не только витрины с топами, но и отдельного контура сбора и расчёта метрик, личного кабинета, подтверждения владения каналами через бота и платной подписки на расширенную аналитику.
Решение
Продукт и разделы
- Главная с общими цифрами по базе, быстрыми топами, блоком добавления канала и инструкцией по боту.
- Каталог каналов с фильтрами: категория, тип, открытый/приватный, подписчики, прирост за 24 часа / 7 / 30 дней.
- Профили каналов: подписчики, прирост, ER, просмотры, история, рекламные размещения, отзывы и рейтинг.
- Каталог сеток каналов и биржа рекламы — отдельные разделы для подборки площадок и закупки размещений.
- Поиск публикаций по ключевым словам, брендам и компаниям с учётом репостов.
- Личный кабинет: избранное, управление каналами, цены рекламы, подписка Premium.
Архитектура и API
- WordPress отвечает за витрину, SEO, тарифы, FAQ и UI личного кабинета.
- Laravel Analytics API собирает данные, считает метрики и отдаёт готовую аналитику через REST API v1.
- Раздельные БД: mstat_wp_db и mstat_analytics_db — WordPress не обращается к аналитической базе напрямую.
- Redis для кэша и очередей, Laravel Scheduler и queue:work для фоновых задач.
- Контроль доступа к premium-метрикам через подписки и entitlement.
Сбор данных и парсинг
- Парсер каталога MaxFrame по cron: discover, parse, requeue с очередью URL.
- Гибридная модель источников: trust + fallback, канонизация метрик по приоритетам.
- Puppeteer-сервис для headless-парсинга и сравнения стратегий загрузки страниц.
- Внутренний импорт каналов через Artisan без HTTP для служебных операций.
- Управление parse-воркерами: systemd timer, мониторинг и контроль через Filament.
MAX-бот и владение каналами
- Бот MaxCatalog в мессенджере MAX: webhook, ingest батчей, идемпотентность и очереди.
- Сбор статистики по закрытым каналам, где бот добавлен администратором.
- Claim через бота: подтверждение владения каналом с автоматическим или ручным approve.
- Команды /help и /stats, cron resync каналов, Prometheus-метрики и alert rules.
- UX статуса бота на профиле канала и в личном кабинете «Мои каналы».
Администрирование
- Операторская админка Filament в Analytics API: модерация, отзывы, claim-потоки, webhook-события.
- Портал сотрудника и Chrome-расширение для внутренних операций.
- Лидеры закупок, рекламные связи каналов, отзывы с антиспамом и модерацией.
- Синхронизация на прод через rsync-скрипты и пошаговые runbook-инструкции.
Результат
Запущен работающий каталог аналитики MAX с базой из тысяч каналов, актуальными топами и биржей рекламы. Рекламодатели находят площадки с метриками, владельцы каналов подключают бота и управляют размещениями, а платформа масштабируется за счёт отдельного API-контура и автоматизированного сбора данных.
- Рекламодатели и агентства исследуют рынок MAX через каталог, топы и биржу с ценами.
- Владельцы каналов добавляют площадки, подтверждают права через бота и продают рекламу.
- Аналитический контур обновляет метрики автоматически — без ручного пересчёта на витрине.
Технологии
- Витрина WordPress, тема mstat-vitrina
- Analytics API Laravel 11, REST API v1, Filament
- Данные MySQL, Redis, очереди и Scheduler
- Парсинг Puppeteer-сервис, cron-воркеры, MaxFrame parser
- Интеграции MAX Bot API, webhook ingest, Premium-подписки