Apphud – Integrate, analyze and improve subscriptions in your iOS app
Разработка

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

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

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

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

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

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

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

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

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

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

Доступные длительности Pay as you go

Предоплата (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” и выберите нужную подписку:

Список подписок

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

Настройки подписки

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

Выбор территории для подписки

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

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

Начало и окончание подписки

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

Тип вводного предложения

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

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

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

Стоимость вводного предложения

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

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

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

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

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

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

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

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

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

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

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

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

Мы сами столкнулись с этой проблемой и начали решать ее. Так появилась идея Apphud – удобной аналитики подписок в iOS. Одна из функций Apphud – это отправка событий о подписках в вашу любимую систему аналитики (например, Amplitude, Flurry или Mixpanel). Проект сейчас находится на стадии Beta-тестирования, и вы можете поучаствовать в нем! Все что нужно – перейти на сайт Apphud и оставить свой email.

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

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

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

Заключение

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