Obtener paywalls de Paywall Builder y su configuración en el SDK de React Native
Después de diseñar la parte visual de tu paywall con el nuevo Paywall Builder en el Adapty Dashboard, puedes mostrarlo en tu app móvil. El primer paso en este proceso es obtener el paywall asociado al placement y su configuración de vista, tal como se describe a continuación.
El nuevo Paywall Builder funciona con la versión 3.0 o superior del SDK de React Native.
Ten en cuenta que este tema hace referencia a paywalls personalizados con Paywall Builder. Si estás implementando tus paywalls manualmente, consulta el tema Obtener paywalls y productos para paywalls de Remote Config en tu app móvil.
¿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.
Antes de empezar a mostrar paywalls en tu app móvil (haz clic para expandir)
- Crea tus productos en el Adapty Dashboard.
- Crea un paywall e incorpora los productos en el Adapty Dashboard.
- Crea placements e incorpora tu paywall en el Adapty Dashboard.
- Instala el SDK de Adapty en tu app móvil.
Obtener el paywall diseñado con Paywall Builder
Si has diseñado un paywall con Paywall Builder, no necesitas preocuparte por renderizarlo en el código de tu app móvil para mostrárselo al usuario. Ese tipo de paywall contiene tanto lo que debe mostrarse como la forma en que debe hacerse. Aun así, debes obtener su ID a través del placement, su configuración de vista y luego presentarlo en tu app móvil.
Para garantizar un rendimiento óptimo, es fundamental recuperar el paywall y su configuración de vista lo antes posible, dejando tiempo suficiente para que las imágenes se descarguen antes de presentarlas al usuario.
Para obtener un paywall, usa el método getPaywall:
try {
const placementId = 'YOUR_PLACEMENT_ID';
const locale = 'en';
const paywall = await adapty.getPaywall(placementId, locale);
// the requested paywall
} catch (error) {
// handle the error
}
Parámetros:
| Parámetro | Presencia | Descripción |
|---|---|---|
| placementId | obligatorio | El identificador del Placement deseado. Es el valor que especificaste al crear un placement en el Adapty Dashboard. |
| locale | opcional por defecto: | El identificador de la localización del paywall. Se espera que este parámetro sea un código de idioma compuesto por uno o dos subetiquetas separadas por el carácter menos (-). La primera subetiqueta es para el idioma y la segunda para la región. Ejemplo: Consulta Localizaciones y códigos de idioma para más información sobre los códigos de idioma y cómo recomendamos usarlos. |
| fetchPolicy | por defecto: .reloadRevalidatingCacheData | Por defecto, el SDK intentará cargar datos desde el servidor y devolverá datos en caché en caso de fallo. Recomendamos esta opción porque garantiza que tus usuarios siempre reciban los datos más actualizados. Sin embargo, si crees que tus usuarios tienen conexión a internet inestable, considera usar Ten en cuenta que la caché permanece intacta al reiniciar la app y solo se borra al desinstalarla o mediante una limpieza manual. El SDK de Adapty almacena los paywalls localmente en dos capas: la caché de actualización regular descrita anteriormente y los paywalls de respaldo. También usamos CDN para obtener los paywalls más rápido y un servidor de respaldo independiente en caso de que la CDN no sea accesible. Este sistema está diseñado para garantizar que siempre obtengas la versión más reciente de tus paywalls, asegurando la fiabilidad incluso cuando la conexión a internet es escasa. |
| loadTimeoutMs | por defecto: 5 seg | Este valor limita el tiempo de espera de este método. Si se alcanza el límite, se devolverán los datos en caché o el fallback local. Ten en cuenta que en casos excepcionales este método puede agotar el tiempo de espera un poco después de lo especificado en Para Android: puedes crear |
Parámetros de respuesta:
| Parámetro | Descripción |
|---|---|
| Paywall | Un objeto AdaptyPaywall con una lista de IDs de productos, el identificador del paywall, Remote Config y varias otras propiedades. |
Obtener la configuración de vista del paywall diseñado con Paywall Builder
Asegúrate de activar el toggle Show on device en el Paywall Builder. Si esta opción no está activada, la configuración de vista no estará disponible para recuperar.
Después de obtener el paywall, comprueba si incluye una ViewConfiguration, lo que indica que fue creado con Paywall Builder. Esto te orientará sobre cómo mostrar el paywall. Si la ViewConfiguration está presente, trátalo como un paywall de Paywall Builder; si no, manéjalo como un paywall de Remote Config.
En el SDK de React Native, llama directamente al método createPaywallView sin necesidad de obtener la configuración de vista manualmente primero.
El resultado del método createPaywallView solo puede usarse una vez. Si necesitas usarlo de nuevo, llama al método createPaywallView nuevamente. Llamarlo dos veces sin recrearlo puede provocar el error AdaptyUIError.viewAlreadyPresented.
// for the Adapty SDK < 3.14 – import {createPaywallView} from 'react-native-adapty/dist/ui';
if (paywall.hasViewConfiguration) {
try {
const view = await createPaywallView(paywall);
} catch (error) {
// handle the error
}
} else {
//use your custom logic
}
Parámetros:
| Parámetro | Presencia | Descripción |
|---|---|---|
| paywall | obligatorio | Un objeto AdaptyPaywall para obtener un controlador del paywall deseado. |
| customTags | opcional | Define un diccionario de etiquetas personalizadas y sus valores resueltos. Las etiquetas personalizadas funcionan como marcadores de posición en el contenido del paywall, reemplazados dinámicamente con cadenas específicas para contenido personalizado. Consulta el tema Etiquetas personalizadas en el Paywall Builder para más detalles. |
| prefetchProducts | opcional | Actívalo para optimizar el tiempo de visualización de los productos en pantalla. Cuando es true, AdaptyUI obtendrá automáticamente los productos necesarios. Por defecto: false. |
Si usas varios idiomas, aprende cómo añadir una localización de Paywall Builder y cómo usar los códigos de idioma correctamente aquí.
Una vez que tengas la vista, presenta el paywall.
Obtener un paywall para la audiencia predeterminada para cargarlo más rápido
Por lo general, los paywalls se obtienen casi de inmediato, por lo que no necesitas preocuparte por acelerar este proceso. Sin embargo, en casos en los que tienes numerosas audiencias y paywalls y tus usuarios tienen una conexión a internet débil, obtener un paywall puede tardar más de lo deseable. En esas situaciones, puede que quieras mostrar un paywall predeterminado para garantizar una experiencia de usuario fluida en lugar de no mostrar ninguno.
Para abordar esto, puedes usar el método getPaywallForDefaultAudience, que obtiene el paywall del placement especificado para la audiencia All Users. Sin embargo, es fundamental entender que el enfoque recomendado es obtener el paywall con el método getPaywall, como se detalla en la sección Obtener el paywall anterior.
Por qué recomendamos usar getPaywall
El método getPaywallForDefaultAudience tiene algunos inconvenientes importantes:
- Posibles problemas de compatibilidad con versiones anteriores: si necesitas mostrar diferentes paywalls para distintas versiones de la app (actual y futuras), puedes encontrarte con dificultades. Tendrás que diseñar paywalls compatibles con la versión actual (legacy) o aceptar que los usuarios con esa versión puedan encontrar problemas con paywalls que no se renderizan.
- Pérdida de segmentación: todos los usuarios verán el mismo paywall diseñado para la audiencia All Users, lo que significa que pierdes la segmentación personalizada (incluida la basada en países, atribución de marketing o tus propios atributos personalizados).
Si estás dispuesto a aceptar estos inconvenientes para beneficiarte de una carga más rápida de paywalls, usa el método getPaywallForDefaultAudience de la siguiente manera. De lo contrario, usa getPaywall descrito arriba.
try {
const id = 'YOUR_PLACEMENT_ID';
const locale = 'en';
const paywall = await adapty.getPaywallForDefaultAudience(id, locale);
// the requested paywall
} catch (error) {
// handle the error
}
El método getPaywallForDefaultAudience está disponible a partir de la versión 2.11.2 del SDK de React Native.
| Parámetro | Presencia | Descripción |
|---|---|---|
| placementId | obligatorio | El identificador del Placement. Es el valor que especificaste al crear un placement en tu Adapty Dashboard. |
| locale | opcional por defecto: | El identificador de la localización del paywall. Se espera que este parámetro sea un código de idioma compuesto por una o más subetiquetas separadas por el carácter menos (-). La primera subetiqueta es para el idioma y la segunda para la región. Ejemplo: Consulta Localizaciones y códigos de idioma para más información sobre los códigos de idioma y cómo recomendamos usarlos. |
| fetchPolicy | por defecto: .reloadRevalidatingCacheData | Por defecto, el SDK intentará cargar datos desde el servidor y devolverá datos en caché en caso de fallo. Recomendamos esta opción porque garantiza que tus usuarios siempre reciban los datos más actualizados. Sin embargo, si crees que tus usuarios tienen conexión a internet inestable, considera usar Ten en cuenta que la caché permanece intacta al reiniciar la app y solo se borra al desinstalarla o mediante una limpieza manual. |
Personalizar recursos
Para personalizar imágenes y vídeos en tu paywall, implementa los recursos personalizados.
Las imágenes y vídeos destacados tienen IDs predefinidos: hero_image y hero_video. En un bundle de recursos personalizados, apuntas a estos elementos por sus IDs y personalizas su comportamiento.
Para otras imágenes y vídeos, debes establecer un ID personalizado en el dashboard de Adapty.
Por ejemplo, puedes:
- Mostrar una imagen o vídeo diferente a algunos usuarios.
- Mostrar una imagen de vista previa local mientras se carga la imagen principal remota.
- Mostrar una imagen de vista previa antes de reproducir un vídeo.
Para usar esta función, actualiza el SDK de React Native de Adapty a la versión 3.8.0 o superior.
Aquí tienes un ejemplo de cómo puedes proporcionar recursos personalizados mediante un diccionario sencillo:
const customAssets: Record<string, AdaptyCustomAsset> = {
'custom_image': { type: 'image', relativeAssetPath: 'custom_image.png' },
'hero_video': {
type: 'video',
fileLocation: {
ios: { fileName: 'custom_video.mp4' },
android: { relativeAssetPath: 'videos/custom_video.mp4' }
}
}
};
view = await createPaywallView(paywall, { customAssets })
Si no se encuentra un recurso, el paywall volverá a su apariencia predeterminada.