Включение покупок с Flow & Paywall Builder в iOS SDK

Чтобы подключить встроенные покупки, нужно разобраться в трёх ключевых концепциях:

  • Продукты – всё, что пользователи могут купить (подписки, расходуемые покупки, пожизненный доступ)
  • Флоу и пейволы – экраны, которые представляют продукты пользователям, созданные в no-code конструкторе Flow & Paywall Builder. SDK получает их через getFlow. Если вы предпочитаете строить UI в собственном коде, см. Реализация пользовательских пейволов.
  • Плейсменты – где и когда вы показываете флоу и пейволы в приложении (например, main, onboarding, settings). Вы привязываете их к плейсментам в дашборде, а затем запрашиваете по ID плейсмента в коде. Это позволяет легко запускать A/B-тесты и показывать разные варианты разным пользователям.

Adapty предлагает три способа подключить покупки в вашем приложении. Выберите подходящий в зависимости от требований:

РеализацияСложностьКогда использовать
Adapty Flow & Paywall Builder✅ ЛегкоВы создаёте полноценный, готовый к покупке флоу или пейвол в no-code конструкторе. Adapty автоматически отображает его и берёт на себя всю сложную логику покупок, валидацию чеков и управление подписками.
Кастомные пейволы🟡 СреднеВы реализуете UI пейвола в коде приложения, но всё равно получаете объект флоу из Adapty, сохраняя гибкость в управлении продуктами. См. гайд.
Режим наблюдателя🔴 СложноУ вас уже есть собственная инфраструктура обработки покупок, и вы хотите продолжать её использовать. Обратите внимание, что режим наблюдателя имеет ограничения в Adapty. См. статью.
Important

Шаги ниже показывают, как реализовать флоу или пейвол, созданный в Adapty Flow & Paywall Builder.

Если вы предпочитаете создавать UI пейвола самостоятельно, см. Реализация кастомных пейволов.

Чтобы отобразить флоу или пейвол, созданный в Adapty Flow & Paywall Builder, в коде вашего приложения нужно лишь:

  1. Получите флоу или пейвол: Запросите его из Adapty.
  2. Отобразите его — Adapty обработает покупки за вас: Покажите экран в приложении.
  3. Обработайте действия кнопок: Свяжите действия пользователей с реакцией приложения. Например, открывайте ссылки или закрывайте пейвол при нажатии кнопок.

Прежде чем начать

Прежде чем начать, выполните следующие шаги:

  1. Подключите приложение к App Store в дашборде Adapty.
  2. Создайте продукты в Adapty.
  3. Создайте флоу или пейвол и добавьте продукты в него.
  4. Создайте плейсмент и добавьте в него флоу или пейвол.
  5. Установите и активируйте SDK в коде приложения. В этом гайде используются API Adapty iOS SDK v4.

1. Получите флоу или пейвол

Ваши флоу и пейволы привязаны к плейсментам, настроенным в дашборде. Плейсменты позволяют показывать разные флоу или пейволы разным аудиториям или запускать A/B-тесты.

Чтобы получить флоу или пейвол, созданный в Adapty Flow & Paywall Builder, нужно:

  1. Получить объект flow по ID плейсмента с помощью метода getFlow и проверить, есть ли у него конфигурация отображения.
  2. Получить конфигурацию отображения с помощью метода getFlowConfiguration. Она содержит элементы UI и стили, необходимые для отображения.

func loadFlow() async {
    let flow = try await Adapty.getFlow(placementId: "YOUR_PLACEMENT_ID")

    guard flow.hasViewConfiguration else {
        print("Flow doesn't have a view configuration")
        return
    }

    flowConfiguration = try await AdaptyUI.getFlowConfiguration(forFlow: flow)
}

2. Отображение флоу или пейвола

Когда у вас есть конфигурация флоу, достаточно добавить несколько строк, чтобы отобразить флоу или пейвол.

Info

Подробнее о том, как отображать флоу или пейвол, см. в нашем гайде.

3. Обработка действий кнопок

Когда пользователи нажимают кнопки, iOS SDK автоматически обрабатывает покупки, восстановление, закрытие экрана и открытие ссылок.

Однако другие кнопки имеют пользовательские или предопределённые идентификаторы и требуют обработки действий в вашем коде. Или вы можете захотеть переопределить их поведение по умолчанию.

Например, вот как обработать кнопку закрытия. В UIKit SDK автоматически закрывает контроллер при срабатывании .close — переопределяйте только если нужно особое поведение. В SwiftUI вы должны самостоятельно установить привязку isPresented в false.

Tip

Читайте наши гайды о том, как обрабатывать действия кнопок и события.

Следующие шаги

Tip

Есть вопросы или возникли проблемы? Загляните на наш форум поддержки, где можно найти ответы на распространённые вопросы или задать свой. Наша команда и сообщество всегда готовы помочь!

Ваш флоу или пейвол готов к отображению в приложении. Протестируйте покупки в режиме песочницы, чтобы убедиться, что тестовая покупка проходит успешно.

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

Полный пример

Вот как все шаги из этого гайда можно объединить в вашем приложении.