Разработка B2C-сервиса с подпиской: списания, отмена, персонализация и геймификация

B2C-сервис с подпиской держится на трёх вещах: подписка в системе всегда в понятном состоянии, платёж и доступ не расходятся, а человек может уйти без обращения в поддержку. Всё остальное, от персонализации до геймификации, имеет смысл только поверх них. Делаем веб-сервис на заказ: модель подписки, подключение вашего эквайринга, личный кабинет, повторы неудачных списаний и измерение оттока. Механики удержания добавляем после основы и проверяем на вашей аудитории.

Обследование — от 200 000 ₽, 2–3 неделиПлатёж принимает ваш эквайринг, данные карт мы не хранимИсходный код в вашем репозитории с первого коммита

С чем приходят

Когда нужен сервис с подпиской на заказ, а не форма оплаты

Подписку ведут вручную

Оплату подтверждают по выписке, доступ включают после проверки, продления считают в таблице. Пока подписчиков мало, это терпимо; потом поддержка тонет в вопросах «я оплатил, а доступа нет».

Платёж прошёл, а доступ не включился

Или наоборот: деньги вернулись, а доступ остался. Причина обычно в том, что состояние подписки хранится в двух местах и не сверяется.

Люди уходят, а почему, неизвестно

Нет разделения между теми, кто отказался сам, и теми, у кого не прошло списание. Лечить эти причины нужно по-разному.

Хотят персонализацию и геймификацию

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

Модели подписки

Пять моделей подписки: что внутри и где ломается

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

Модель
Как устроена
Где ломается
Что нужно в системе
МодельПериодмесяц или год
Как устроенаФиксированная сумма за период, доступ открыт весь срок
Где ломаетсяПродление в день, когда у человека не прошла оплата; смена тарифа посреди периода
Что нужно в системеСостояния подписки, льготный период, расчёт доплаты при смене тарифа
МодельЛимитыкредиты, запросы
Как устроенаПодписка даёт набор операций на период, сверх него платно или нельзя
Где ломаетсяСчётчик расходится с фактом при повторе запроса; непонятно, что с остатком
Что нужно в системеЖурнал списания операций с идентификатором, правило сгорания остатка
МодельМестасемья, группа
Как устроенаОдин плательщик, несколько участников со своими профилями
Где ломаетсяКто управляет участниками, что будет с чужим профилем при отмене
Что нужно в системеРоли владельца и участника, приглашения, правила при отмене
МодельПробный периодбесплатно, затем платно
Как устроенаЧеловек входит бесплатно, через срок начинаются списания
Где ломаетсяПовторное использование пробного периода; недовольство внезапным списанием
Что нужно в системеПривязка пробного периода к человеку, напоминание до первого списания
МодельРазовая и подпискапродукт плюс обновления
Как устроенаОсновной доступ куплен, обновления или контент по подписке
Где ломаетсяДва вида прав в одном профиле, возвраты по одному из них
Что нужно в системеРаздельные права на каждый вид покупки
Состояния

Состояния подписки: источник истины и защита от дублей

Основная ошибка подписочных сервисов в том, что «оплачено» считается одним флагом. На самом деле у подписки есть жизненный цикл.

Подписка проходит состояния: пробный период, активна, ожидает оплаты (льготный период), приостановлена, отменена с доступом до конца оплаченного срока, завершена. Для каждого записано, какие переходы допустимы, что видит человек и какие права у него открыты.

  • Источник истины — событие платёжной системы. Сервис не считает платёж состоявшимся по возврату человека на страницу «спасибо»: возврат может не случиться, а уведомление придёт. Уведомление проверяется по подписи и обрабатывается так, чтобы повтор не создавал второй платёж или второе продление: у события свой идентификатор, обработанные запоминаются.
  • Доступ вычисляется, а не хранится флагом. Права следуют из состояния и срока. Тогда при сбое уведомления подписка не остаётся в вечно активном состоянии.
  • Сверка по расписанию. Раз в сутки сервис сверяет свои подписки с данными платёжной системы и выводит расхождения в журнал, который разбирает человек.
  • Журнал переходов. Кто, когда и по какой причине перевёл подписку в другое состояние, видно поддержке и нужно при споре о списании.

Платёжный провайдер выбираете и подключаете вы, мы работаем с его программным интерфейсом. Данные карт хранит провайдер, в нашей базе остаются только идентификаторы платёжного средства.

Неудачные списания

Что делаем, когда списание не прошло: четыре причины и четыре ответа

Здесь теряется доля подписчиков, которые уходить не хотели. Порядок повторов согласуется с платёжным провайдером и вашей политикой.

Причина отказа
Что видим
Что делаем
Чем рискуем
Причина отказаНе хватило средстввременный отказ
Что видимОтказ банка без признака окончательного
Что делаемПовторяем с паузой в несколько дней, пока человек не потерял доступ; сообщаем о причине
Чем рискуемСлишком частые повторы раздражают и могут блокироваться провайдером
Причина отказаКарта истекла или замененапостоянный отказ
Что видимПлатёжное средство недействительно
Что делаемПросим обновить способ оплаты в кабинете, ссылка в письме и в интерфейсе
Чем рискуемЧеловек уйдёт молча, если ссылки нет в месте, где он действует
Причина отказаСбой на нашей или чужой стороненет ответа
Что видимУведомление не пришло или пришло с ошибкой
Что делаемНе считаем платёж ни успешным, ни неуспешным до сверки; запрашиваем статус у провайдера
Чем рискуемДвойное списание или доступ без оплаты, если трактовать молчание как успех
Причина отказаЧеловек отказалсяявная отмена
Что видимПодписка отменена в кабинете или через поддержку
Что делаемНе повторяем списание, доступ сохраняется до конца оплаченного срока
Чем рискуемСписание после отмены, если отмена записана в двух системах и не синхронизирована
Отмена и тарифы

Отмена, пауза и смена тарифа: сценарии, которые читает поддержка

Если отмену трудно найти, обращения и возвраты растут, а доверие падает. Сценарии записываются заранее и тестируются на стенде платёжной системы.

Отмена

Отмена доступна в кабинете без звонка, действует сразу и показывает дату, до которой сохраняется доступ. Перед отменой допустим вопрос о причине и предложение паузы, но не препятствие. Подтверждение отмены приходит письмом. Условия автопродления и возврата оформляет юрист заказчика, мы реализуем их в логике сервиса.

Пауза

Приостановка на заданный срок удерживает часть тех, кто уходит из-за сезонности или временного отсутствия потребности. Нужно решить, замораживается ли срок подписки и что видит человек за это время.

Смена тарифа

Повышение тарифа обычно действует сразу с доплатой за остаток периода, понижение вступает в силу со следующего периода. Правило записывается и показывается человеку до подтверждения: сумма и дата следующего списания должны быть видны на экране. Подписка внутри нативного приложения подчиняется правилам магазина приложений; нативные приложения мы не делаем, речь о веб-сервисе.

Персонализация

Персонализация по ступеням: от правил до модели

Начинаем с простого и поднимаемся, только если простое не хватило. Про рекомендательные модели отдельно: рекомендательные системы.

Ступень
Что делает
Какие данные
Когда имеет смысл
СтупеньПравиласегменты вручную
Что делаетРазные приветствия, подборки и письма для новичка, активного и давно не заходившего
Какие данныеВозраст подписки, последние действия, выбранный тариф
Когда имеет смыслС самого начала: не требует истории, легко объяснить и отключить
СтупеньПодборки по историина основе просмотров
Что делаетПродолжить с места остановки, похожее на уже выбранное
Какие данныеИстория действий самого пользователя
Когда имеет смыслКогда есть что рекомендовать и накопилась история
СтупеньМодельобученная на данных
Что делаетРекомендации по поведению многих пользователей
Какие данныеДостаточная история действий; требуется проверка на отложенной выборке
Когда имеет смыслКогда простых правил не хватило. Модель оценивается на данных заказчика
Геймификация

Геймификация: что поддерживает привычку, а что только давит

Серии и напоминания

Серия дней подряд помогает закрепить привычку. Если же пропуск обнуляет всё накопленное, человек бросает сервис. Правило прощения пропуска и возможность отключить напоминания закладываем сразу.

Уровни и достижения

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

Награды и бонусы

Бонус имеет стоимость и правила: срок действия, учёт, возврат при отмене покупки. Эти правила согласуются с вашей бухгалтерией до запуска.

Рейтинги и сравнение

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

Что делаем

Из чего состоит работа и сколько она стоит

Цены — по тарифам. Точная сумма называется у обследования, дальше вилка, которая сужается. Остановиться можно после любой ступени.

Обследование: подписка и один-два процесса

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

200 000 ₽ · 2–3 недели

Обследование: с несколькими системами

Подписка связана с CRM, 1С, рассылками или внешним каталогом: схема обменов и источники истины.

350 000 ₽ · 3–4 недели

Пилот: регистрация, оплата, доступ

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

150 000–400 000 ₽ · 2–8 недель

Первая версия сервиса

Подписка с повторами и отменой, кабинет, журнал, сверка, минимальная админка для поддержки, одна механика персонализации или геймификации.

400 000–1 200 000 ₽ · 2–3 месяца

Вывод в эксплуатацию

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

от 1 500 000 ₽ этапами по 300 000–700 000 ₽ · от 3 месяцев

Сопровождение

Мониторинг списаний, обращения, разбор расхождений. Плановые доработки с пакета на 60 000 ₽. Сверх пакета — 5 000 ₽ в час.

20 000 / 60 000 / 120 000 ₽ в месяц
Процесс

Как идёт работа

2–4 недели — Обследование

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

До разработки — Прототип

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

Первые недели — Платёжный контур и состояния

Подключаем ваш эквайринг на тестовом контуре, обрабатываем уведомления, строим состояния и сверку.

Дальше — Кабинет и механики

Регистрация, вход, отмена, история платежей, затем одна механика удержания, которую измеряем.

Запуск малой группой — Передача

Включаем сервис для небольшой группы, смотрим обращения и расхождения, расширяем. Передаём код и регламент.

Цена

Что двигает цену внутри вилки

Число тарифов и правил

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

Документы и возвраты

Чеки, закрывающие документы, возвраты и частичные возвраты увеличивают и разработку, и приёмку. Часть берёт на себя ваш эквайринг.

Данные и персонализация

Правила на готовых признаках дешевле модели, которой нужны история, подготовка данных и оценка качества.

Вход и безопасность

Вход по телефону, подтверждение почты, второй фактор для чувствительных действий и защита от подбора добавляют работы.

Контроль

Что остаётся у вас и чего мы не делаем

Остаётся у вас

  • Исходный код в вашем репозитории с первого коммита.
  • Описание состояний подписки и переходов: по нему поддержка и бухгалтерия понимают, что происходит.
  • Сценарии проверки: оплата, повтор, отмена, возврат, восстановление доступа.
  • Инструкция по развёртыванию; можно идти к другому подрядчику.
  • Право остановиться после любой ступени: сделанное остаётся у вас по акту.

Мы этого не делаем

  • Не принимаем платежи от вашего имени и не храним данные карт: платёж принимает ваш эквайринг.
  • Не делаем платёжные и банковские продукты, маркетплейсы и стриминг.
  • Не делаем нативные мобильные приложения. Адаптивный веб-сервис входит.
  • Не готовим оферту, условия автопродления и политику обработки персональных данных: это работа юриста заказчика. Технические меры, чтобы эти условия выполнялись, делаем мы.
  • Не обещаем снижение оттока на конкретную величину. Эффект измеряется на вашей аудитории.
  • Не дежурим круглосуточно и не берём работы дешевле 150 000 ₽.
Граница

Сервис с подпиской, SaaS-платформа или личный кабинет: где проходит граница

Сервис с подпиской для частных лиц — это B2C. Если вы продаёте доступ компаниям, у которых свои пользователи и роли, это SaaS-платформа с изоляцией данных клиентов. Если подписки нет, а нужен только доступ к данным учёта, хватит личного кабинета. Общий случай, когда нужен интерфейс с собственной логикой, описан на странице веб-сервисов.

Если ожидается наплыв пользователей в короткие сроки, это отдельный разговор о высоконагруженном B2C-сервисе. Типичные места, где подписка ломается на практике, описаны в разборе «B2C-сервис по подписке».

Инструменты

На чём собираем

Серверная часть и данные
  • Python: Django или FastAPI
  • PostgreSQL, журнал переходов подписки и платежей
  • Очередь задач для повторов списаний и писем
  • Подключение вашего платёжного провайдера по его программному интерфейсу
Интерфейс и развёртывание
  • React или Vue, TypeScript, адаптивная вёрстка
  • Письма и уведомления через ваш сервис рассылки
  • Docker, Nginx, GitLab CI
  • Мониторинг списаний и расхождений
Материалы

Материалы по теме

Статья

Подписка в B2C-сервисе: как устроена и как снизить отток

Добровольный и невольный отток, где его искать в данных и какие меры что дают.

  • Два вида оттока
  • Неудачные списания
  • Что измерять
Читать →
Статья

Как разработать SaaS с нуля: этапы и ошибки

Порядок работ от гипотезы до эксплуатации. Пригодится, если подписка станет основой продукта.

  • Проверка спроса
  • Первая версия
  • Ошибки
Читать →
Статья

Рекомендательная система: с чего начать

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

  • Правила сначала
  • Проверка пользы
  • Данные
Читать →
Заявка

Разберём вашу модель подписки и места, где она теряет подписчиков

Сорок минут созвона: как устроена подписка сейчас, где она ломается и какие механики вы хотите добавить. По итогам скажем, с какой ступени начинать и в какую вилку это укладывается.

Спасибо, заявка отправлена. Ответим в течение рабочего дня.

Не удалось отправить. Напишите в телеграм или позвоните.

Вопросы

Частые вопросы: разработка B2C-сервиса с подпиской

Сколько стоит разработка сервиса с подпиской?

Начинаем с обследования: 200 000 ₽ за один-два процесса, 350 000 ₽ при нескольких системах. Первая версия сервиса стоит 400 000–1 200 000 ₽ за 2–3 месяца, вывод в эксплуатацию от 1 500 000 ₽ этапами по 300 000–700 000 ₽. Обследование вычитается из первого этапа, если продолжаете с нами.

Вы подключаете платёжную систему?

Мы подключаем программный интерфейс вашего эквайринга или платёжного сервиса. Договор с ним заключаете вы, платёж принимает он, данные карт хранит он. В нашей базе остаются только идентификаторы платёжного средства.

Как избежать двойных списаний и доступа без оплаты?

Состояние подписки меняется по событиям платёжной системы, повтор события не создаёт второго действия, доступ вычисляется из состояния, а раз в сутки идёт сверка с данными провайдера. Расхождения попадают в журнал, который читает человек.

Можно ли снизить отток персонализацией и геймификацией?

Иногда можно, но обещать величину мы не будем. Сначала разделяем отток на добровольный и вызванный неудачным списанием: вторая часть лечится повторами и напоминаниями, без игровых механик. Механики добавляем по одной и измеряем на вашей аудитории.

Нужно ли согласие пользователей на сбор данных для персонализации?

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

Можно ли сделать подписку для мобильного приложения?

Нет, нативные приложения мы не делаем. Адаптивный веб-сервис входит. Если приложение вам сделает другой подрядчик, серверную часть подписки можно спроектировать так, чтобы к ней подключиться.

Вы работаете только в Ростове-на-Дону?

Мы в Ростове-на-Дону, работаем с заказчиками по всей России: удалённо и в вашем контуре. Доступ к системам и обследование согласуем на старте с вашей службой безопасности.