Mostrar flows y paywalls - Android

Display flows and paywalls
Flows Creados en el Flow Builder — se renderizan de forma nativa en el dispositivo, sin WebView
Paywalls de Paywall Builder Todo el contenido existente de Paywall Builder

Si has creado un flow o paywall, no necesitas preocuparte por renderizarlo en el código de tu app para mostrárselo al usuario. Un flow o paywall ya contiene tanto lo que se debe mostrar como la forma en que debe mostrarse.

Esta guía cubre flows y paywalls del nuevo Paywall Builder renderizados por Adapty. El proceso es diferente para los paywalls de Remote Config y el modo Observer.

Para obtener el objeto flowConfiguration utilizado a continuación, consulta Obtener flows y paywalls.

Parámetros de la solicitud:

ParámetroPresenciaDescripción
flowConfigurationobligatorioProporciona un objeto AdaptyUI.FlowConfiguration con los detalles visuales del flow. Usa el método AdaptyUI.getFlowConfiguration(flow) para cargarlo. Consulta el tema Fetch the view configuration para más detalles.
productsopcionalProporciona un array de AdaptyPaywallProduct para optimizar el momento en que se muestran los productos en pantalla. Si se pasa null, AdaptyUI obtendrá los productos necesarios automáticamente.
eventListeneropcionalProporciona un AdaptyFlowEventListener para observar los eventos del flow. Se recomienda extender AdaptyFlowDefaultEventListener para facilitar su uso. Consulta el tema Handle flow & paywall events para más detalles.
insetsopcional

Los insets son los espacios alrededor del flow que evitan que los elementos interactivos queden ocultos tras las barras del sistema.

Por defecto: Unspecified, lo que significa que Adapty ajustará los insets automáticamente, lo cual funciona bien para flows edge-to-edge.

Si tu flow no es edge-to-edge, puede que quieras definir insets personalizados. Consulta la sección Change flow insets a continuación.

customAssetsopcionalPasa un objeto AdaptyCustomAssets para reemplazar imágenes y vídeos en tu flow o paywall en tiempo de ejecución. Consulta Customize assets para más detalles.
tagResolveropcionalUsa AdaptyUiTagResolver para resolver etiquetas personalizadas dentro del texto del flow. Este resolver recibe un parámetro de etiqueta y lo resuelve en la cadena correspondiente. Consulta el tema Custom tags in Paywall Builder para más detalles.
timerResolveropcionalPasa el resolver aquí si vas a utilizar funcionalidad de temporizador personalizado.

¿Quieres ver un ejemplo real de cómo se integra el SDK de Adapty en una app móvil? Echa un vistazo a nuestras apps de ejemplo, que muestran la configuración completa, incluyendo la visualización de paywalls, la realización de compras y otras funcionalidades básicas.

Cambiar los márgenes del flow

Los márgenes son los espacios alrededor del flow que evitan que los elementos interactivos queden ocultos detrás de las barras del sistema. Por defecto, Adapty ajusta automáticamente estos márgenes, lo que funciona muy bien para flows edge-to-edge.

Si tu flow no es edge-to-edge, puede que quieras definir márgenes personalizados:

  • Si ni la barra de estado ni la barra de navegación se superponen con el AdaptyFlowView, usa AdaptyFlowInsets.None.
  • Para configuraciones más personalizadas, por ejemplo si tu flow se superpone con la barra de estado superior pero no con la inferior, puedes establecer solo el bottomInset a 0, como se muestra en el ejemplo siguiente:

Usar el temporizador definido por el desarrollador

Para usar temporizadores definidos por el desarrollador en tu app, crea un objeto timerResolver—un diccionario o mapa que asocia temporizadores personalizados con los valores de cadena que los reemplazarán cuando el flow se renderice. Aquí tienes un ejemplo:

En este ejemplo, CUSTOM_TIMER_NY es el Timer ID del temporizador definido por el desarrollador que configuraste en el Adapty dashboard. El timerResolver garantiza que tu app actualice dinámicamente el temporizador con el valor correcto, como 13d 09h 03m 34s (calculado como la hora de fin del temporizador, por ejemplo el Año Nuevo, menos la hora actual).

Usar etiquetas personalizadas

Para usar etiquetas personalizadas en tu aplicación móvil, crea un objeto tagResolver—un diccionario o mapa que asocia etiquetas personalizadas con los valores de cadena que las reemplazarán cuando se renderice el flow. Aquí tienes un ejemplo:

En este ejemplo, USERNAME es una etiqueta personalizada que introdujiste en el Adapty dashboard como <USERNAME/>. El tagResolver se asegura de que tu app reemplace dinámicamente esta etiqueta personalizada con el valor indicado, como John.

Te recomendamos crear y completar el tagResolver justo antes de mostrar tu flow. Una vez listo, pásalo al método de AdaptyUI que uses para presentar el flow.

Cambiar el color del indicador de carga del flow

Puedes reemplazar el color predeterminado del indicador de carga de la siguiente forma:


<style name="AppTheme" parent="android:Theme.Material.Light.NoActionBar">

    <item name="adapty_progressIndicatorColor">@color/yourColor</item>
</style>

Si has personalizado un paywall con el Paywall Builder, no necesitas preocuparte por renderizarlo en el código de tu app para mostrárselo al usuario. Ese paywall ya incluye tanto lo que se debe mostrar como la forma en que debe mostrarse.

Esta guía es solo para paywalls del nuevo Paywall Builder que requieren SDK v3.0. El proceso para mostrar paywalls difiere según la versión del Paywall Builder utilizada, los paywalls de Remote Config y el modo Observer.

Para obtener el objeto viewConfiguration utilizado a continuación, consulta Obtener paywalls del Paywall Builder y su configuración.

Parámetros de la solicitud:

ParámetroPresenciaDescripción
viewConfigurationobligatorioProporciona un objeto AdaptyUI.LocalizedViewConfiguration con los detalles visuales del paywall. Usa el método Adapty.getViewConfiguration(paywall) para cargarlo. Consulta el tema Fetch the visual configuration of paywall para más detalles.
productsopcionalProporciona un array de AdaptyPaywallProduct para optimizar el momento en que se muestran los productos en pantalla. Si se pasa null, AdaptyUI obtendrá automáticamente los productos necesarios.
eventListeneropcionalProporciona un AdaptyUiEventListener para observar los eventos del paywall. Se recomienda extender AdaptyUiDefaultEventListener para facilitar su uso. Consulta el tema Handling paywall events para más detalles.
insetsopcional

Los insets son los espacios alrededor del paywall que evitan que los elementos interactivos queden ocultos detrás de las barras del sistema.

Por defecto: UNSPECIFIED, lo que significa que Adapty ajustará los insets automáticamente, algo que funciona muy bien para paywalls edge-to-edge.

Si tu paywall no es edge-to-edge, puede que quieras definir insets personalizados. Puedes ver cómo hacerlo en la sección Change paywall insets más abajo.

personalizedOfferResolveropcionalPara indicar precios personalizados (más información), implementa AdaptyUiPersonalizedOfferResolver y añade tu propia lógica que devuelva true para los AdaptyPaywallProduct cuyo precio sea personalizado, y false en caso contrario.
tagResolveropcionalUsa AdaptyUiTagResolver para resolver etiquetas personalizadas dentro del texto del paywall. Este resolver recibe un parámetro de etiqueta y lo resuelve a la cadena correspondiente. Consulta el tema Custom tags in Paywall Builder para más detalles.
timerResolveropcionalPasa el resolver aquí si vas a usar la funcionalidad de temporizador personalizado.

¿Quieres ver un ejemplo real de cómo se integra el SDK de Adapty en una app móvil? Echa un vistazo a nuestras apps de ejemplo, que muestran la configuración completa, incluyendo la visualización de paywalls, la realización de compras y otras funcionalidades básicas.

Cambiar los márgenes del paywall

Los márgenes son los espacios alrededor del paywall que evitan que los elementos interactivos queden ocultos detrás de las barras del sistema. Por defecto, Adapty ajusta automáticamente estos márgenes, lo que funciona perfectamente para paywalls de borde a borde.

Si tu paywall no es de borde a borde, puede que quieras definir márgenes personalizados:

  • Si ni la barra de estado ni la barra de navegación se superponen con AdaptyPaywallView, usa AdaptyPaywallInsets.NONE.
  • Para configuraciones más personalizadas, como cuando tu paywall se superpone con la barra de estado superior pero no con la inferior, puedes establecer solo el bottomInset a 0, como se muestra en el ejemplo a continuación:

Usar temporizador definido por el desarrollador

Para usar temporizadores definidos por el desarrollador en tu app, crea un objeto timerResolver —un diccionario o mapa que asocia temporizadores personalizados con los valores de cadena que los reemplazarán cuando se renderice el paywall. Aquí tienes un ejemplo:

En este ejemplo, CUSTOM_TIMER_NY es el Timer ID del temporizador definido por el desarrollador que configuraste en el Adapty dashboard. El timerResolver garantiza que tu app actualice dinámicamente el temporizador con el valor correcto, como 13d 09h 03m 34s (calculado como la hora de finalización del temporizador, por ejemplo el Año Nuevo, menos la hora actual).

Usa etiquetas personalizadas

Para usar etiquetas personalizadas en tu app, crea un objeto tagResolver—un diccionario o mapa que asocia etiquetas personalizadas con los valores de cadena que las reemplazarán cuando se renderice el paywall. Aquí tienes un ejemplo:

En este ejemplo, USERNAME es una etiqueta personalizada que introdujiste en el Adapty dashboard como <USERNAME/>. El tagResolver se encarga de que tu app reemplace dinámicamente esta etiqueta personalizada con el valor especificado, como John.

Te recomendamos crear y rellenar el tagResolver justo antes de mostrar tu paywall. Una vez listo, pásalo al método de AdaptyUI que uses para presentar el paywall.

Cambiar el color del indicador de carga del paywall

Puedes cambiar el color por defecto del indicador de carga de la siguiente manera:


<style name="AppTheme" parent="android:Theme.Material.Light.NoActionBar">

    <item name="adapty_progressIndicatorColor">@color/yourColor</item>
</style>