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