Android - Отображение пейволов на новом Paywall Builder

Если вы настроили пейвол с помощью Paywall Builder, вам не нужно беспокоиться о его отрисовке в коде мобильного приложения — пейвол уже содержит всё необходимое: и что показывать, и как показывать.

Этот гайд предназначен только для пейволов на новом Paywall Builder, которые требуют SDK v3.0. Процесс отображения пейволов различается в зависимости от версии Paywall Builder, а также для Remote Config пейволов и Observer mode.

Чтобы получить объект viewConfiguration, используемый ниже, см. Получение пейволов Paywall Builder и их конфигурации.

Параметры запроса:

ПараметрОбязательностьОписание
viewConfigurationобязательныйПередайте объект AdaptyUI.LocalizedViewConfiguration, содержащий визуальные параметры пейвола. Используйте метод Adapty.getViewConfiguration(paywall) для его загрузки. Подробнее см. в разделе Получение визуальной конфигурации пейвола.
productsнеобязательныйПередайте массив AdaptyPaywallProduct для оптимизации времени отображения продуктов на экране. Если передать null, AdaptyUI автоматически загрузит необходимые продукты.
eventListenerнеобязательныйПередайте AdaptyUiEventListener для отслеживания событий пейвола. Рекомендуется расширять AdaptyUiDefaultEventListener для удобства использования. Подробнее см. в разделе Обработка событий пейвола.
insetsнеобязательный

Отступы вокруг пейвола, которые не позволяют интерактивным элементам скрываться за системными панелями.

По умолчанию: UNSPECIFIED — Adapty автоматически подбирает отступы, что отлично работает для пейволов от края до края.

Если ваш пейвол не является edge-to-edge, вы можете задать пользовательские отступы. Подробнее читайте в разделе Изменение отступов пейвола ниже.

personalizedOfferResolverнеобязательныйЧтобы указать персонализированную цену (подробнее), реализуйте AdaptyUiPersonalizedOfferResolver и передайте собственную логику, которая возвращает true для AdaptyPaywallProduct, если цена продукта персонализирована, и false в противном случае.
tagResolverнеобязательныйИспользуйте AdaptyUiTagResolver для обработки кастомных тегов в тексте пейвола. Этот resolver принимает тег в качестве параметра и возвращает соответствующую строку. Подробнее см. в разделе Кастомные теги в Paywall Builder.
timerResolverнеобязательныйПередайте resolver, если планируете использовать функциональность кастомных таймеров.

Хотите увидеть реальный пример интеграции Adapty SDK в мобильное приложение? Посмотрите наши примеры приложений — они демонстрируют полную настройку: отображение пейволов, совершение покупок и другие базовые функции.

Изменение отступов пейвола

Отступы — это пространство вокруг пейвола, которое не позволяет интерактивным элементам скрываться за системными панелями. По умолчанию Adapty автоматически подбирает отступы, что отлично работает для пейволов от края до края.

Если ваш пейвол не является edge-to-edge, вы можете задать пользовательские отступы:

  • Если ни строка состояния, ни панель навигации не перекрывают AdaptyPaywallView, используйте AdaptyPaywallInsets.NONE.
  • Для более сложных случаев, например когда пейвол перекрывается верхней строкой состояния, но не нижней панелью, можно задать только bottomInset равным 0, как показано в примере ниже:

Использование таймеров, определённых разработчиком

Чтобы использовать кастомные таймеры в мобильном приложении, создайте объект timerResolver — словарь или карту, связывающую кастомные таймеры со строковыми значениями, которые будут подставляться при отрисовке пейвола. Вот пример:

В этом примере CUSTOM_TIMER_NY — это Timer ID кастомного таймера, заданного в дашборде Adapty. timerResolver обеспечивает динамическое обновление таймера корректным значением — например, 13д 09ч 03м 34с (вычисляется как время окончания таймера, например Новый год, минус текущее время).

Использование кастомных тегов

Чтобы использовать кастомные теги в мобильном приложении, создайте объект tagResolver — словарь или карту, связывающую кастомные теги со строковыми значениями, которые будут подставляться при отрисовке пейвола. Вот пример:

В этом примере USERNAME — это кастомный тег, введённый в дашборде Adapty как <USERNAME/>. tagResolver обеспечивает динамическую замену этого кастомного тега на указанное значение — например, John.

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

Изменение цвета индикатора загрузки пейвола

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


<style name="AppTheme" parent="android:Theme.Material.Light.NoActionBar">
    
    <item name="adapty_progressIndicatorColor">@color/yourColor</item>
</style>