Skip to main content

Обзор

Рекламные кампании используют механизм Telegram Deep Links для привязки новых пользователей к источникам трафика. Каждая кампания генерирует уникальную ссылку вида:
https://t.me/{bot_username}?start={start_parameter}
При переходе по ссылке новый пользователь автоматически привязывается к кампании и может получить бонус.

Типы бонусов

ТипОписание
balanceНачисление на баланс (в копейках)
subscriptionТриальная подписка с настраиваемыми параметрами
tariffПолноценная подписка по конкретному тарифу
noneТолько отслеживание (без бонуса)

Balance (баланс)

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

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

Создаёт триальную подписку с параметрами:
ПараметрОписание
subscription_duration_daysДлительность (1-730 дней)
subscription_traffic_gbТрафик в ГБ (0 = безлимит)
subscription_device_limitЛимит устройств
subscription_squadsСписок серверов (UUID). Если пусто — случайный триальный сервер
Подписка не создаётся, если у пользователя уже есть активная подписка.

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

Аналитика

Метрики по кампании

МетрикаОписание
registrationsВсего зарегистрировано
balance_issuedВсего начислено на баланс
subscription_issuedКоличество выданных подписок
total_revenue_kopeksДоход от пользователей кампании
conversion_rateКонверсия в оплату (%)
trial_conversion_rateКонверсия триала в оплату (%)
avg_revenue_per_user_kopeksСредний доход на пользователя
avg_first_payment_kopeksСредний первый платёж

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

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

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

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

  1. Название (3-100 символов)
  2. Start параметр (3-32 символа, [A-Za-z0-9_-], уникальный)
  3. Тип бонуса (4 варианта через инлайн-клавиатуру)
  4. В зависимости от типа:
    • Balance: сумма в рублях
    • Subscription: дни, трафик, устройства, серверы
    • Tariff: выбор тарифа, длительность
    • None: сразу создаётся

Действия

ДействиеОписание
СтатистикаДетальные метрики кампании
Включить/ВыключитьПереключение is_active
РедактированиеНазвание, start параметр, параметры бонуса
УдалениеС подтверждением (заблокировано, если есть регистрации)
Фильтр пользователейПросмотр пользователей, пришедших через кампанию

Уведомления

При переходе по ссылке кампании администратор получает уведомление с:
  • Названием кампании и ID
  • Информацией о пользователе
  • Статусом (новый / уже зарегистрирован)
  • Деталями бонуса

Cabinet и Web API

Cabinet Admin API

Полный CRUD: создание, просмотр, редактирование, удаление, переключение статуса. Дополнительно:
  • Обзорная статистика (GET /overview)
  • Детальная статистика (GET /{id}/stats)
  • Список зарегистрированных пользователей (GET /{id}/registrations)
  • Доступные серверы, тарифы и партнёры для настройки

Web API

CRUD через API-токен: POST, GET, PATCH, DELETE.

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

Специальных переменных нет. Поведение зависит от:
ПеременнаяОписание
DEFAULT_DEVICE_LIMITЛимит устройств по умолчанию для subscription-бонуса
MAX_DEVICES_LIMITМаксимальный лимит устройств
MINIAPP_CUSTOM_URLБазовый URL для веб-ссылок кампаний
BOT_USERNAMEДля генерации deep link (автоопределяется)