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

Автор · Full-Stack Engineer ·

Чтобы подписки в приложении приносили деньги, нужны три вещи: правильно настроенные продукты в App Store и Google Play, сервер или сервис вроде RevenueCat, который знает актуальный статус каждого подписчика, и пейвол, который показывается в нужный момент. Большая часть потерь выручки связана с техническими ошибками: доступ не открылся, продление не засчиталось, восстановление покупок не работает. Разбираю, как это настроить и что проверить.

Как устроены подписки в мобильном приложении?

Пользователь оплачивает подписку через App Store или Google Play, стор списывает деньги и продлевает её автоматически, а приложение должно в любой момент знать, активна ли подписка. Самая сложная часть — именно последнее: статус меняется вне приложения.

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

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

Стор забирает комиссию с каждой оплаты — обычно от 15 до 30%, в зависимости от программы и срока подписки. Это стоит сразу заложить в цену.

Зачем нужен RevenueCat и можно ли без него?

RevenueCat — сервис, который берёт на себя проверку покупок, продления, возвраты и синхронизацию доступа между iOS и Android. Без него можно, но тогда всё это нужно написать и поддерживать на своём сервере.

Что нужно сделатьСвой серверRevenueCat
Проверка чеков App Store и Google PlayПишем и поддерживаем самиГотово из коробки
Уведомления о продлении, отмене, возвратеОтдельная логика для каждого стораПриходят в едином формате
Доступ на iOS, Android и в вебеСвоя база пользователей и правЕдиный профиль подписчика
Смена пейвола и цен без релизаНужна своя админкаНастраивается в панели
Отчёты по выручке и оттокуСобираем самиЕсть готовые

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

Отдельный вопрос — несколько платформ. Если человек купил подписку на iPhone, а потом открыл приложение на Android или в браузере, доступ должен быть и там. Для этого подписка привязывается к аккаунту пользователя, а не к устройству: вход по почте, телефону или через Apple и Google. Без аккаунта синхронизировать доступ между платформами не получится, и это нужно решить до разработки пейвола. Если приложение выходит ещё и в RuStore или Huawei AppGallery, там свои платёжные SDK, и их покупки тоже нужно сводить к одному профилю подписчика.

Оценю ваш проект бесплатно

Опишите задачу в паре строк — отвечу в Telegram, назову цену и сроки по этапам. ТЗ не нужно.

Оставить заявкуНаписать в Telegram

Нужен ли пробный период и какой?

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

Варианты, которые настраиваются в сторах:

  • Бесплатный пробный период. Пользователь указывает способ оплаты, первые дни бесплатны, потом подписка продлевается сама.
  • Первый период со скидкой. Первая неделя или месяц дешевле, дальше полная цена.
  • Без триала. Оплата сразу, но с понятным описанием, что пользователь получает.

Какой вариант лучше, заранее не скажет никто — это проверяется на ваших пользователях. Поэтому важнее другое: чтобы пейвол и предложения можно было менять без выпуска новой версии и видеть в аналитике, как меняется конверсия. RevenueCat позволяет настраивать набор предложений удалённо, а Mixpanel или Firebase показывают, на каком шаге люди уходят.

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

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

Где и когда показывать пейвол?

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

Точки, где обычно стоит пейвол:

  1. После онбординга. Пользователь рассказал о себе, увидел, что приложение для него сделает, и получает предложение оформить подписку.
  2. Перед платной функцией. Нажал «Сгенерировать», «Скачать», «Открыть полную версию» — видит пейвол.
  3. После бесплатного результата. Получил первый результат и хочет ещё.
  4. Повторные показы. При следующих запусках, но аккуратно, чтобы не раздражать.

На самом экране важны простые вещи: заголовок о результате, который получит пользователь, цена за период, видимая кнопка закрытия там, где это требуется, ссылки на условия и политику конфиденциальности и кнопка «Восстановить покупки». Без последних двух пунктов Apple может отклонить приложение на ревью.

Если вы делаете AI-продукт, пейвол часто совмещается с лимитами: сколько генераций доступно без подписки и сколько с ней. Лимиты стоит считать от стоимости запросов к модели: подписчик, который генерирует очень много, не должен уводить продукт в минус. Про AI в продукте подробнее — в статье про AI-агентов для бизнеса.

Из-за чего приложение теряет выручку от подписок?

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

  • Нет проверки на сервере. Статус хранится только на устройстве. Возвраты и отмены не отслеживаются.
  • Не работает «Восстановить покупки». Пользователь сменил телефон, подписка есть, доступа нет. Он пишет в поддержку или просто уходит.
  • Не обрабатывается период отсрочки. Когда списание не прошло, стор даёт время на обновление карты. Если в этот момент сразу закрыть доступ, часть подписчиков не вернётся.
  • Нет аналитики воронки. Непонятно, сколько людей увидели пейвол, сколько начали оплату и сколько её завершили.
  • Цены и продукты в сторах настроены с ошибками. Не та группа подписок, неправильные периоды, нет локализованных цен.
  • Нет мониторинга ошибок. Покупка падает на определённой версии Android, а об этом никто не знает. Я подключаю Sentry, чтобы видеть такие сбои сразу.

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

Что подготовить, чтобы запустить подписки?

Подготовьте модель монетизации и доступы к аккаунтам разработчика — остальное можно собрать на созвоне. ТЗ не нужно.

  1. Что именно продаётся. Полный доступ, лимиты, отдельные функции. Можно ли пользоваться бесплатно и как много.
  2. Какие периоды. Неделя, месяц, год. Нужен ли триал.
  3. Аккаунты App Store и Google Play. Они должны быть оформлены на вас. Аккаунт Apple стоит $99 в год, Google Play — разовые $25.
  4. Документы. Условия использования и политика конфиденциальности — сторы требуют ссылки на них.
  5. Нужна ли оплата вне стора. Если планируете продавать доступ ещё и на сайте, скажите заранее — это влияет на архитектуру.

Подписки и оплата входят в приложение от $2000: подробнее, что входит в эту сумму, в статье сколько стоит мобильное приложение. Если приложение уже есть и нужно только перенастроить подписки, это доработка, её цена по оценке.

Как понять, что подписки настроены правильно?

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

Перед релизом я прохожу все эти сценарии на тестовых аккаунтах стора. После релиза смотрю, чтобы цифры в RevenueCat совпадали с отчётами App Store Connect и Google Play Console, а события в аналитике показывали реальную воронку от первого запуска до оплаты. Если где-то расхождение, значит, где-то теряются деньги.

Короткий чек-лист, который я прохожу перед каждым релизом с подписками:

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

Приложения, которые я делал, — например, Tattoo AI с генерацией эскизов тату и AR-примеркой, Logo Maker или AI-психолог Dzeny, — собраны в кейсах вместе с отзывами.

Если вы хотите запустить подписки или подозреваете, что текущие теряют деньги, опишите задачу в форме заявки или напишите в Telegram. Оценка бесплатная, после созвона на 20–30 минут назову сумму и зафиксирую её в договоре.

Частые вопросы

Обязательно ли подключать RevenueCat?
Нет. Это готовый сервис, который экономит время на проверке покупок и синхронизации доступа. Если логика подписок нестандартная, её можно вести на своём сервере или совместить оба варианта.
Можно ли продавать подписку в приложении дешевле, чем на сайте?
Можно ставить разные цены в разных каналах, но правила сторов о том, как упоминать внешнюю оплату внутри приложения, строгие и различаются по странам. Это решаем для каждого проекта отдельно.
Что будет с подписчиками, если сменить разработчика?
Ничего, если аккаунты сторов и RevenueCat оформлены на вас. Подписки привязаны к вашему аккаунту в сторе, а не к подрядчику.
Какую подписку делать — недельную, месячную или годовую?
Обычно предлагают две: короткую и годовую со скидкой. Какая комбинация лучше для вашего продукта, показывают только тесты на реальных пользователях.
Ещё статьи
Интернет-магазин под ключ: сайт, приложение или Telegram-ботИнтернет-магазин под ключ: сайт от $300, приложение от $2000, Telegram-бот или Mini App — по оценке. Что выбрать, что входит в цену и как не переплатить.ТЗ на мобильное приложение: что на самом деле нужно разработчикуНужно ли техническое задание на мобильное приложение и что в нём писать. Чек-лист к созвону, типичные ошибки, приложение от $2000, оценка бесплатно.AI-агент для бизнеса: что это, сколько стоит и где он окупаетсяЧто такое AI-агент, чем он отличается от чат-бота, какие задачи бизнеса решает и сколько стоит разработка.
Контакты

Есть идея? Давайте соберём.

Отвечаю моментально. Консультация и оценка бесплатно, ТЗ не нужно.

Заявка за минутуШаг 1 / 3
Что нужно сделать?