Skip to main content

Обзор

Рекламные кампании используют механизм Telegram Deep Links для привязки новых пользователей к источникам трафика. Каждая кампания генерирует уникальную ссылку вида:
При переходе по ссылке новый пользователь автоматически привязывается к кампании и может получить бонус.

Типы бонусов

Balance (баланс)

Фиксированная сумма начисляется на баланс пользователя. Пользователь видит сообщение: “Вы получили за регистрацию по кампании ''!”

Subscription (триальная подписка)

Создаёт триальную подписку с параметрами:
Подписка не создаётся, если у пользователя уже есть активная подписка.

Tariff (тарифная подписка)

Создаёт полноценную (не триальную) подписку по выбранному тарифу:
  • tariff_id — ссылка на активный тариф
  • tariff_duration_days — длительность (1-730 дней)
  • Трафик, устройства и серверы наследуются из тарифа

None (только отслеживание)

Бонус не выдаётся, но регистрация привязывается к кампании для аналитики.

Как работает

  1. Генерация ссылки — каждая кампания имеет уникальный start_parameter (3-32 символа, [A-Za-z0-9_-])
  2. Пользователь переходит по ссылке /start {parameter}
  3. Обработка в боте:
    • Ищет кампанию по start_parameter
    • Если найдена — сохраняет campaign_id в FSM
    • Если у кампании есть партнёр — устанавливает его как реферера
    • Если кампания не найдена — трактует параметр как реферальный код
  4. Бонус применяется после завершения регистрации

Сохранение через проверку канала

Если включена обязательная подписка на канал (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 админ-панели доступна расширенная аналитика по каждой кампании:

Общая статистика

  • Всего / активных / неактивных кампаний
  • Суммарные регистрации
  • Суммарные начисления баланса и подписок

Управление (админ-панель)

Создание кампании (пошагово)

  1. Название (3-100 символов)
  2. Start параметр (3-32 символа, [A-Za-z0-9_-], уникальный)
  3. Тип бонуса (4 варианта через инлайн-клавиатуру)
  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.

Связанные переменные

Специальных переменных нет. Поведение зависит от: