Включение покупок с помощью пейволов в Kotlin Multiplatform SDK
Чтобы включить встроенные покупки, нужно понять три ключевых концепции:
- Продукты — всё, что пользователи могут купить (подписки, расходуемые покупки, пожизненный доступ).
- Пейволы — конфигурации, определяющие, какие продукты предлагать. В Adapty пейволы — единственный способ получить продукты, и такой подход позволяет менять предложения, цены и комбинации продуктов без изменения кода приложения.
- Плейсменты — где и когда показывать пейволы в приложении (например,
main,onboarding,settings). Вы настраиваете пейволы для плейсментов в дашборде, а затем запрашиваете их по ID плейсмента в коде. Это упрощает запуск A/B-тестов и показ разных пейволов разным пользователям.
Adapty предлагает три способа включить покупки в приложении. Выберите подходящий в зависимости от требований:
| Реализация | Сложность | Когда использовать |
|---|---|---|
| Adapty Paywall Builder | ✅ Просто | Вы создаёте готовый к покупкам пейвол в no-code конструкторе. Adapty автоматически отображает его и берёт на себя весь сложный процесс покупки, валидацию чеков и управление подписками. |
| Пейволы, созданные вручную | 🟡 Средне | Вы реализуете UI пейвола в коде приложения, но всё равно получаете объект пейвола из Adapty для гибкого управления предложениями. См. гайд. |
| Режим наблюдателя | 🔴 Сложно | У вас уже есть собственная инфраструктура обработки покупок и вы хотите её сохранить. Учтите, что режим наблюдателя имеет ограничения в Adapty. См. статью. |
Шаги ниже показывают, как реализовать пейвол, созданный в Adapty Paywall Builder.
Если вы не хотите использовать Paywall Builder, см. гайд по обработке покупок в пейволах, созданных вручную.
Чтобы показать пейвол, созданный в Adapty Paywall Builder, в коде приложения достаточно:
- Получить пейвол: запросить пейвол из Adapty.
- Показать пейвол, и Adapty обработает покупки за вас: отобразить полученный контейнер пейвола в приложении.
- Обработать действия кнопок: связать взаимодействия пользователя с пейволом с реакцией приложения на них. Например, открывать ссылки или закрывать пейвол при нажатии кнопок.
Перед началом работы
Выполните следующие шаги:
- Подключите приложение к App Store и/или Google Play в дашборде Adapty.
- Создайте продукты в Adapty.
- Создайте пейвол и добавьте в него продукты.
- Создайте плейсмент и добавьте в него пейвол.
- Установите и активируйте Adapty SDK в коде приложения.
Самый быстрый способ выполнить эти шаги — следовать краткому руководству или создать пейволы и плейсменты с помощью Developer CLI.
1. Получите пейвол
Ваши пейволы привязаны к плейсментам, настроенным в дашборде. Плейсменты позволяют показывать разные пейволы разным аудиториям или запускать A/B-тесты.
Чтобы получить пейвол, созданный в Adapty Paywall Builder, нужно:
-
Получить объект
paywallпо ID плейсмента с помощью методаgetPaywallи проверить, создан ли пейвол в конструкторе. -
Получить конфигурацию представления пейвола с помощью метода
createPaywallView. Конфигурация содержит элементы UI и стили, необходимые для отображения пейвола.
Чтобы получить конфигурацию представления, необходимо включить переключатель Show on device в Paywall Builder. Иначе вы получите пустую конфигурацию, и пейвол не отобразится.
Adapty.getPaywall("YOUR_PLACEMENT_ID")
.onSuccess { paywall ->
if (!paywall.hasViewConfiguration) {
return@onSuccess
}
val paywallView = AdaptyUI.createPaywallView(paywall = paywall)
paywallView?.present()
}
.onError { error ->
// handle the error
}
2. Отобразите пейвол
Когда конфигурация пейвола получена, достаточно добавить несколько строк, чтобы его отобразить.
Для отображения визуального пейвола на экране устройства его необходимо предварительно настроить. Вызовите метод AdaptyUI.createPaywallView():
val paywallView = AdaptyUI.createPaywallView(paywall = paywall)
paywallView?.present()
После успешного создания представления вы можете показать его на экране устройства.
Подробнее об отображении пейвола — в нашем гайде.
3. Обработайте действия кнопок
Когда пользователи нажимают кнопки в пейволе, Kotlin Multiplatform SDK автоматически обрабатывает покупки, восстановление, закрытие пейвола и открытие ссылок.
Однако другие кнопки имеют пользовательские или предопределённые ID и требуют обработки действий в вашем коде. Также вы можете переопределить их поведение по умолчанию.
Например, ниже показано поведение кнопки закрытия по умолчанию. Добавлять его в код необязательно, но здесь видно, как это делается при необходимости.
AdaptyUI.setPaywallsEventsObserver(object : AdaptyUIPaywallsEventsObserver {
override fun paywallViewDidPerformAction(view: AdaptyUIPaywallView, action: AdaptyUIAction) {
when (action) {
AdaptyUIAction.CloseAction, AdaptyUIAction.AndroidSystemBackAction -> view.dismiss()
}
}
})
Следующие шаги
Ваш пейвол готов к показу в приложении. Протестируйте покупки в песочнице App Store или в Google Play Store, чтобы убедиться, что тестовая покупка через пейвол проходит успешно.
Теперь вам нужно проверить уровень доступа пользователей, чтобы показывать пейвол или открывать платные функции нужным пользователям.
Полный пример
Вот как все эти шаги можно объединить в приложении.
// Set up the observer for handling paywall actions
AdaptyUI.setPaywallsEventsObserver(object : AdaptyUIPaywallsEventsObserver {
override fun paywallViewDidPerformAction(view: AdaptyUIPaywallView, action: AdaptyUIAction) {
when (action) {
is AdaptyUIAction.CloseAction -> view.dismiss()
}
}
})
// Get and display the paywall
Adapty.getPaywall("YOUR_PLACEMENT_ID")
.onSuccess { paywall ->
if (!paywall.hasViewConfiguration) {
// Use custom logic
return@onSuccess
}
val paywallView = AdaptyUI.createPaywallView(paywall = paywall)
paywallView?.present()
}
.onError { error ->
// handle the error
}