Руководство по вводным предложениям (Introductory Offers) в iOS

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

Всем привет, меня зовут Денис. Мы с командой разрабатываем сервис Apphud — это инструмент для аналитики подписок в iOS.

254d47f241ee22960bd32486b6ba249d.jpg


Разновидности вводных предложений


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

До недавнего времени (а именно до iOS 10) Apple предлагала только один тип вводных предложений — бесплатный триальный период. Сейчас этот список расширился до трех: бесплатный триальный период, оплата по факту использования (Pay as you go) и предоплата (Pay up front).


Оплата по факту использования (Pay as you go)

Эта модель оплаты предусматривает единовременную скидку на один или несколько платежных периодов. По окончании этих периодов с пользователя будет списана обычная стоимость подписки. Например, пользователю может быть предложено оформить подписку на сервис стоимостью $3.99 в месяц. Эта цена будет действовать 2 месяца, по окончании которых он сможет продолжить пользоваться сервисом по обычной цене $9.99 в месяц.

Пример оплаты по факту использования

Цена этого предложения по факту использования обязательно должна быть ниже обычной цены подписки. Например, вы не можете предложить пользователю платить $19.99/месяц в течение первых двух месяцев, а после — $9.99 в месяц.

В таблице ниже приведены возможные значения длительности начального периода в зависимости от длительности самой подписки:

66e438199a86035a42ed030079876196.png


Предоплата (Pay up front)

В этой модели вы предлагаете пользователю заплатить сразу за несколько месяцев (1, 2, 3, 6 или 12) вперед. По окончании этого периода пользователь будет оплачивать подписку по стандартным условиям. Например, вы можете предложить оплатить подписку за облачное хранение данных сразу на 3 месяца вперед со скидкой за $14.99. А через 3 месяца пользователь будет платить $9.99 в месяц. Есть 2 существенных отличия этой модели от Оплаты по факту использования:


  1. Стоимость предоплаты не обязательно должна быть меньше стоимости основной подписки.
  2. Число периодов действия предложения всегда равно 1. Иными словами, предложение действует в течение только одного периода длительностью 1, 2, 3, 6 или 12 месяцев.

Схема работы предоплаты


Бесплатный триал

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


Некоторые замечания


  • Каждая подписка может иметь только одно вводное предложение на 1 территорию (страну). Таким образом, вы можете создать отдельное вводное предложение для каждой территории. Но только одно на каждую территорию. Чаще всего создают одно вводное предложение сразу для всех стран.
  • Пользователь может использовать вводное предложение в каждой группе подписок только один раз.
  • Вводные предложения доступны начиная с iOS 10, macOS 10.12.6 и tvOS 10.


Как создать вводное предложение?

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

Откройте App Store Connect, перейдите в секцию «Features» и выберите нужную подписку:

11899a516b06febeb789e950f9a90d54.png

В разделе «Subscription Prices» нажмите на »+» и выберите в выпадающем списке «Create Introductory Offer»:

593d42f41670ef63142dfea66fc149e3.png

Выберите территории (страны), на которые будет распространяться предложение:

4cec67a18076f2e7b0bbe8fab16e9233.png


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

Введите даты начала и окончания предложения:

267385db8a951a4504639813375165c6.png

Выберите один из трех типов вводного предложения:

e5eae2e5ecce84269e01aa23ed6d57bb.png

В зависимости от выбранного типа введите следующие данные:


  • Pay as you go, Pay up front: число периодов и базовую стоимость вводного предложения.
  • Триал: длительность триала.

Если вы создаете предложение по типу Pay as you go или Pay up front, на следующем экране можете настроить стоимость предложения по каждой территории, на которой она действует:

2cec93ef488d7c91e7c777f02bc58e93.png

Сохраните изменения. Круто! Ваше предложение создано и активно.


API вводных предложений

В Apple разработали специальный класс для работы с вводными предложениями: SKProductDiscount. Этот класс включен в библиотеку StoreKit, отвечающую за работу со встроенными покупками. Отныне каждый продукт (объект класса SKProduct) содержит опциональный атрибут introductoryPrice (он опциональный, потому что вводное предложение может и не существовать для этой подписки) типа SKProductDiscount.

SKProductDiscount содержит информацию о предложении:


  • paymentMode — тип вводного предложения. Возможные значения: payAsYouGo, payUpFront, freeTrial.
  • price и priceLocale — стоимость и локаль вводного предложения.
  • numberOfPeriods — число периодов вводного предложения. Для Pay up front и триала это значение всегда равно 1.
  • subscriptionPeriod — длительность периода вводного предложения. Например, день, неделя, месяц или год.

Вы можете использовать это API для правильного отображения условий предложения пользователю: в том числе его длительности и цены.




Проверка права пользователя на вводное предложение

Перед тем, как показывать пользователю вводное предложение, вы должны удостовериться в том, что пользователь сможет им воспользоваться. Дело в том, что каждый пользователь может воспользоваться предложением только один раз в каждой группе подписок. Например, если в вашем приложении есть три тарифных плана: Bronze, Silver и Gold, которые находятся в одной группе продуктов, и каждый из которых предлагает бесплатный недельный триал, то пользователь сможет активировать только один из трех триалов. И воспользоваться триалом лишь единожды (в пределах одной группы подписок). Если он однажды это уже сделал, то мы не можем показать ему, как и остальным пользователям, экран с предложением попробовать приложение бесплатно в течение недели. Вместо этого мы должны сразу отправить его на экран с оформлением платной подписки.

Следить за этим — задача разработчика.

Вот тут начинается самое интересное. В StoreKit нет методов, позволяющих узнать, может ли пользователь воспользоваться вводным предложением или нет. Единственный вариант — это сохранять где-то (например, на сервере) чеки (receipts) от всех подписок этого пользователя по каждой группе покупок. И всякий раз, когда требуется проверить право пользователя на вводное предложение какой-то подписки, просматривать все транзакции каждого чека, принадлежащего нужной группе подписок, в поисках полей is_trial_period и is_in_intro_offer_period. Если где-то это значение равно 1, то пользователь уже воспользовался триалом/вводным предложением в этой группе подписок.

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



Таким образом, новые пользователи всегда могут воспользоваться триалом или вводным предложением, а среди текущих — только те, кто никогда не активировал триал или вводное предложение в этой группе подписок.


Некоторые замечания


  • Всегда проверяйте, вправе ли пользователь воспользоваться предложением перед тем, как, например, показывать ему экран триального периода.
  • Эту проверку лучше проводить как можно раньше: любая задержка при показе экрана подписки может сказаться на конверсии в покупку.
  • Вводные цены отображаются в App Store и их можно использовать как маркетинговый инструмент. Так пользователи могут начинать триал или активировать вводное предложение, прямо в App Store:
    Вы можете рекламировать подписки прямо в App Store
  • Всегда четко и правильно формулируйте условия подписки и вводных предложений, чтобы избежать удаления приложения из App Store. Для этого используйте API вводных предложений.
  • Показывайте вводное предложение пользователю как можно раньше: таким образом вы расширите воронку и увеличите конверсию в подписки.
  • Вы можете (хотя это необязательно) указать в интерфейсе приложения ссылку на управление подписками, перейдя по которой пользователь сможет ее изменить: https://buy.itunes.apple.com/WebObjects/MZFinance.woa/wa/manageSubscriptions


Заключение

Вводные предложения — это замечательный инструмент, позволяющий привлечь новых пользователей. Вкупе со сниженной до 15% комиссии Apple для лояльных пользователей это поможет значительно увеличить заработок вашего приложения. Но к сожалению, чтобы его корректно использовать, придется изрядно повозиться с настройкой собственного сервера.


Что почитать?


© Habrahabr.ru