Автоматические возобновляемые подписки уже стали золотым стандартом в деле заработка на iOS приложениях. А почему бы и нет? Пользователи непрерывно получают нужный им сервис, программист может спрогнозировать свой денежный поток. Да и чего греха таить: в большинстве случаев выбор подписочной модели позволяет разработчику зарабатывать больше.
Это первая статья в цикле, посвященном подпискам. В ней я постарался собрать самую важную информацию об авто-возобновляемых подписках. Меня зовут Денис и я занимаюсь разработкой сервиса Apphud, который позволяет передавать события подписок (например, продление, отмена и т.д.) в сторонние сервисы аналитики (такие как Mixpanel и Amplitude).
1. Что такое авто-возобновляемые подписки?
Здесь все максимально просто. Вы предлагаете пользователю доступ к вашему контенту или функционалу на регулярной основе. Пользователь регулярно (например, ежемесячно или еженедельно) оплачивает этот доступ: в конце периода подписки Apple списывает с его банковской карты стоимость подписки.
Apple пытается списать деньги с пользователя за 24 часа до предполагаемого времени окончания подписки. Если списание не удалось, то Apple будет пытаться списать деньги в течение следующих 60 дней.
Длительность периода подписки может быть разной: 1 неделя, 1 месяц, 2 месяца, 3 месяца, 6 месяцев, 1 год. Разработчик сам определяет это значение.
Не стоит забывать и о триальном (пробном, бесплатном) периоде, в рамках которого пользователь может попробовать подписку бесплатно. По окончании пробного периода, если пользователь его не отменил, Apple попытается списать с него полную стоимость подписки за следующий период.
Вообще говоря, триальный период является частным случаем так называемых вводных предложений (Introductory offers). Apple различает 3 вида вводных предложений: триал, оплата по факту использования (Pay as you go), предоплата (Pay up front). О вводных предложениях мы поговорим ниже.
2. Продукты, уровни и группы продуктов
Каждая подписка — это отдельный продукт, который вы создаете в App Store Connect. В качестве примера рассмотрим вымышленное приложение DropCloud — облачное хранилище фотографий для iPhone. В приложении предлагается оформить один из двух тарифных планов: Silver и Gold, каждый из которых предлагает пользователю 50 или 100 ГБ облачного хранилища соответственно. Кроме того в приложении можно подписаться на еженедельную платную рассылку с рекомендациями и полезными советами от лучших мировых фотографов. Эта подписка, допустим, называется Inspiration. Тогда каждая из следующих подписок будет отдельным продуктом:
- Подписка Gold стоимостью $19.99 / месяц
- Подписка Gold стоимостью $9.99 / неделя
- Подписка Silver стоимостью $14.99 / месяц
- Подписка Silver стоимостью $4.99 / неделя
- Подписка Inspiration стоимостью $1.99 / неделя
Продукты группируются в группы продуктов. Каждый продукт может принадлежать только одной группе. В нашем случае таких групп будет две. Назовем первую Cloud, а вторую — News. Тогда структура продуктов будет выглядеть так:
В любой момент пользователь может иметь только одну активную подписку в каждой из групп. В нашем случае пользователь может быть одновременно подписан на тариф Gold и рассылку Inspiration, но не может в одно и то же время иметь активные подписки Gold и Silver.
Создавайте более одной группы подписок только тогда, когда без этого действительно не обойтись.
Все продукты внутри одной группы группируются по уровням (Levels). В зависимости от уровня подписки пользователю предлагается тот или иной перечень доступных функций или, в нашем случае, объем облачного хранилища. Уровни следует отсортировать по убыванию: от подписок с наибольшим уровнем сервиса к наименьшим.
А зачем нужны уровни? Тут все не так просто, как кажется. Apple использует уровни, когда дело доходит до даунгрейдов, апгрейдов и кроссгрейдов подписок. Такое случается, если пользователь в пределах группы переходит с одной активной подписки на другую (например, с плана Gold на план Silver). В этом случае Apple учитывает уровни, чтобы рассчитать стоимость и сроки действия новой подписки. Мы рассмотрим эту тему в одной из следующих статей.
3. Вводные предложения
Разработчик может единовременно предложить своим новым пользователям специальные предложения на подписки. Apple их называет вводными (Introductory offers). Они бывают трех видов: триал, оплата по факту использования (Pay as you go), предоплата (Pay up front). Первый из них — триал — мы уже рассмотрели. Приглядимся к остальным двум.
Оплата по факту использования (Pay as you go)
Эта модель оплаты предусматривает единовременную скидку на один или несколько платежных периодов. По окончании этих периодов с пользователя будет списана обычная стоимость подписки. Например, пользователю может быть предложено оформить подписку на сервис стоимостью $3.99 в месяц. Эта цена будет действовать 2 месяца, по окончании которых он сможет продолжить пользоваться сервисом по обычной цене $9.99 в месяц.
Цена этого предложения по факту использования обязательно должна быть ниже обычной цены подписки. Например, вы не можете предложить пользователю платить $19.99/месяц в течение первых двух месяцев, а после — $9.99 в месяц. Частично это вопрос решается с помощью вводного предложения типа “Предоплата” (Pay up front).
Предоплата (Pay up front)
В этой модели вы предлагаете пользователю оплатить сразу за несколько месяцев (1, 2, 3, 6 или 12) вперед. По окончании этого периода пользователь будет оплачивать подписку по стандартным условиям. Например, вы можете предложить оплатить подписку за облачное хранение данных сразу на 3 месяца вперед со скидкой за $14.99. А через 3 месяца пользователь будет платить $9.99 в месяц. Есть 2 существенных отличия этой модели от Оплаты по факту использования:
Стоимость предоплаты не обязательно должна быть меньше стоимости основной подписки.
Число периодов действия предложения всегда равно 1. Иными словами, предложение действует в течение только одного периода длительностью 1, 2, 3, 6 или 12 месяцев.
Некоторые замечания
- Каждая подписка может иметь только одно вводное предложение на 1 территорию (страну). Таким образом, вы можете создать отдельное вводное предложение для каждой территории. Но только одно на каждую территорию. Чаще всего создают одно вводное предложение сразу для всех стран.
- Пользователь может использовать вводное предложение в каждой группе подписок только один раз.
- Вводные предложения доступны начиная с iOS 10, macOS 10.12.6 и tvOS 10.
4. Промо-предложения
Промо-предложения являются отличным способом вернуть пользователей, которые в прошлом являлись активными подписчиками. Как и вводные, промо-предложения — это подписка на специальных условиях, действующих ограниченное время.
Основными отличиями промо-предложений от вводных являются:
- Задача вводных предложений привлечь новых пользователей, задача промо-предложений — вернуть старых и удержать действующих, предлагая им выгодные условия на подписку.
- Промо-предложением могут воспользоваться только пользователи, которые имеют действующую активную подписку или имели ее в прошлом.
- В отличие от вводных предложений, пользователь может воспользоваться несколькими промо-предложениями.
- Можно создать до 10 активных промо-предложений для каждой подписки (продукта).
- Промо-предложения, в отличие от вводных, не отображаются на странице приложения в App Store.
- Промо-предложения доступны начиная с iOS 12.2, macOS 10.14.4 и tvOS 12.2.
Настройка промо-предложений является довольно трудной задачей, требующей настройки собственного сервера. Мы рассмотрим процедуру настройки промо-предложений в одной из следующих статей.
5. Отмена подписки пользователем
Пользователь может отменить подписку в любое время ее действия. Отменить ее он может один из способов:
- через настройки iOS или приложение App Store.
- через запрос в поддержку Apple. В этом случае пользователь скорее всего получит обратно свои деньги (частично или полностью) за последний период подписки.
Подписка так же будет автоматически отменена в следующих случаях:
- на банковской карте пользователя недостаточно средств для продления подписки.
- пользователь не согласился с повышением цены на подписку. О изменении цен на подписку мы поговорим ниже.
- продукт был недоступен при продлении подписки.
Хорошей практикой является попытка вернуть утраченного клиента. Например, предложить ему оформить подписку по промо-предложению или, как минимум, узнать у него причины отмены подписки.
6. Через один год вы будете получать 85% от выручки…
… за вычетом налогов, если сумеете сохранить пользователя на протяжении года. Стандартный размер комиссии Apple — 30%. Однако если пользователь на протяжении года имел активную подписку в вашем приложении, то размер комиссии через по прошествии этого года будет снижен до 15%.
В этом правиле есть одно допущение: на протяжении этого года подписка может переставать быть активной (например, пользователь отменил ее через настройки или возникла проблема с платежом) на срок не более чем 60 дней. Этот период называется grace-периодом. Он стартует ровно в тот момент, когда подписка останавливается. Если в течение следующих 60 дней она вновь активируется, то отсчет заветного года до 15%-ной комиссии не сбрасывается.
Grace-период так же не сбрасывается при апгрейдах, даунгрейдах и кроссгрейдах подписки в рамках одной группы подписок.
7. Управление ценами на подписку
Вы можете повышать или понижать цены на подписки в любой момент. Но при изменении цены возникает несколько нюансов, которые мы сейчас рассмотрим.
Снижение цен
Здесь все просто: снижение цен влияет на всех пользователей с этой активной подпиской — как на текущих, так и на будущих. Для первых сниженная цена будет применена в следующем платежном периоде. Для будущих, очевидно, сразу.
Повышение цен
При повышении цен вы можете выбрать один из двух вариантов:
- Оставить старую цену для текущих подписчиков.
- Повысить цену для текущих подписчиков.
Во втором варианте текущие подписчики получат push и email-уведомления от Apple с вопросом, согласны ли они с повышением цены. Если пользователь согласится, то повышенная цена будет применена в следующем платежном периоде. Иначе — подписка будет отменена.
Несколько раз подумайте прежде, чем повышать цены для текущих подписчиков. Это чревато потерей (возможно) многих активных подписчиков, не согласившихся с новыми условиями. Apple рекомендует повышать цены постепенно и по когортам: в первую очередь повысить цены для тех пользователей, которые уже платят цену, наиболее близкую к новой. Затем повышение коснется следующей наиболее близкой к новой цене когорты пользователей. И так далее.
Заключение
Как мы видим, тема автоматических возобновляемых подписок в iOS является довольно обширной. Есть множество нюансов, которые нужно учесть при проектировании, анализе и принятии решений в отношении подписок.
Проблема отслеживания подписок и принятия решений
Одной из важных и трудных задач является отслеживание подписок и отправка информации об основных событиях (например, продление подписки, ее отмена или возврат денег через поддержку Apple) в систему аналитики (например, Firebase, Amplitude или Mixpanel). Зачем это нужно? Без этого невозможно, например:
- вычислить, сколько денег вам приносит один платящий пользователь,
- узнать, какие рекламные каналы наиболее эффективны,
- проанализировать, какие пользователи чаще отменяют подписку в триальном периоде: их пол, возраст, местоположение,
- вычислить, у каких пользователей чаще возникают проблемы при биллинге.
И, например, предложить пользователю скидку, узнать, почему он отменил подписку, или попросить обновить платежные данные.
К сожалению, Apple не предоставляет удобного инструмента для этого (аналитика App Store Connect не в счет: она не позволяет анализировать подписки по конкретному пользователю).
Мы сами давно столкнулись с этой проблемой и решили разработать инструмент, который устраняет эти недочеты. Так и зародилась идея проекта, над которым мы сейчас трудимся.
В дальнейших статьях мы более подробно разберем подписки, в том числе технические аспекты их создания, валидации чеков, промо предложений и так далее.
Хотите внедрить подписки в iOS-приложение за 10 минут? Интегрируйте Apphud и:
- оформляйте покупки с помощью лишь одного метода;
- автоматически отслеживайте состояние подписки каждого пользователя;
- легко интегрируйте Subscription Offers;
- отправляйте события о подписках в Amplitude, Mixpanel, Slack и Telegram с учетом локальной валюты пользователя;
- уменьшайте Churn rate в приложениях и возвращайте отписавшихся пользователей.