Обзор
Рекламные кампании используют механизм Telegram Deep Links для привязки новых пользователей к источникам трафика. Каждая кампания генерирует уникальную ссылку вида:
При переходе по ссылке новый пользователь автоматически привязывается к кампании и может получить бонус.
Типы бонусов
Balance (баланс)
Фиксированная сумма начисляется на баланс пользователя. Пользователь видит сообщение: “Вы получили за регистрацию по кампании ''!”
Subscription (триальная подписка)
Создаёт триальную подписку с параметрами:
Подписка не создаётся, если у пользователя уже есть активная подписка.
Tariff (тарифная подписка)
Создаёт полноценную (не триальную) подписку по выбранному тарифу:
tariff_id — ссылка на активный тариф
tariff_duration_days — длительность (1-730 дней)
- Трафик, устройства и серверы наследуются из тарифа
None (только отслеживание)
Бонус не выдаётся, но регистрация привязывается к кампании для аналитики.
Механизм Deep Link
Как работает
- Генерация ссылки — каждая кампания имеет уникальный
start_parameter (3-32 символа, [A-Za-z0-9_-])
- Пользователь переходит по ссылке
/start {parameter}
- Обработка в боте:
- Ищет кампанию по
start_parameter
- Если найдена — сохраняет
campaign_id в FSM
- Если у кампании есть партнёр — устанавливает его как реферера
- Если кампания не найдена — трактует параметр как реферальный код
- Бонус применяется после завершения регистрации
Сохранение через проверку канала
Если включена обязательная подписка на канал (CHANNEL_IS_REQUIRED_SUB=true), параметр кампании сохраняется в Redis и восстанавливается после подписки.
Веб-ссылка для MiniApp
Дополнительный формат: {MINIAPP_CUSTOM_URL}/?campaign={start_parameter}
Ограничения
- Только для новых пользователей — существующие видят “Эта ссылка доступна только для новых пользователей”
- Один бонус на пользователя — уникальность по
(campaign_id, user_id)
- Подавление welcome-оффера — при регистрации через кампанию стандартный триал/welcome-оффер пропускается
- Самореферирование — партнёр не может получить бонус по своей кампании
Партнёрская интеграция
Кампании можно привязать к партнёру (partner_user_id):
- При создании/редактировании выбирается из одобренных партнёров (
partner_status='approved')
- Переход по партнёрской кампании автоматически делает партнёра реферером нового пользователя
- Все реферальные доходы от пользователей кампании отмечаются
campaign_id в таблице referral_earnings
- На странице партнёра в Cabinet отображается статистика по каждой кампании: регистрации, рефералы, доход
Аналитика
Метрики по кампании
Графики и аналитика
В Cabinet админ-панели доступна расширенная аналитика по каждой кампании:
Общая статистика
- Всего / активных / неактивных кампаний
- Суммарные регистрации
- Суммарные начисления баланса и подписок
Управление (админ-панель)
Создание кампании (пошагово)
- Название (3-100 символов)
- Start параметр (3-32 символа,
[A-Za-z0-9_-], уникальный)
- Тип бонуса (4 варианта через инлайн-клавиатуру)
- В зависимости от типа:
- Balance: сумма в рублях
- Subscription: дни, трафик, устройства, серверы
- Tariff: выбор тарифа, длительность
- None: сразу создаётся
Действия
Уведомления
При переходе по ссылке кампании администратор получает уведомление с:
- Названием кампании и ID
- Информацией о пользователе
- Статусом (новый / уже зарегистрирован)
- Деталями бонуса
Cabinet и Web API
Cabinet Admin API
Полный CRUD: создание, просмотр, редактирование, удаление, переключение статуса. Дополнительно:
- Обзорная статистика (
GET /overview)
- Детальная статистика (
GET /{id}/stats)
- Данные для графиков (
GET /{id}/chart-data) — ежедневные регистрации, тренды, период-vs-период, депозиты/траты
- Список зарегистрированных пользователей (
GET /{id}/registrations)
- Доступные серверы, тарифы и партнёры для настройки
Web API
CRUD через API-токен: POST, GET, PATCH, DELETE.
Связанные переменные
Специальных переменных нет. Поведение зависит от: