Instalar y configurar el SDK de Android
El SDK de Adapty incluye dos módulos principales para una integración fluida en tu aplicación móvil:
- Core Adapty: Este SDK esencial es necesario para que Adapty funcione correctamente en tu app.
- AdaptyUI: Este módulo es necesario si usas el Adapty Paywall Builder, una herramienta visual sin código para crear paywalls multiplataforma fácilmente. AdaptyUI se activa automáticamente junto con el módulo principal.
¿Quieres ver un ejemplo real de cómo se integra el SDK de Adapty en una app móvil? Echa un vistazo a nuestra app de ejemplo, que muestra la configuración completa, incluyendo la visualización de paywalls, la realización de compras y otras funcionalidades básicas.
Requisitos
Requisito mínimo del SDK: minSdkVersion 21
Adapty es compatible con Google Play Billing Library hasta la versión 8.x. Por defecto, Adapty trabaja con Google Play Billing Library v.7.0.0, pero si quieres forzar una versión posterior, puedes añadir la dependencia manualmente aquí.
Instalar el SDK es el paso 5 de la configuración de Adapty. Para que las compras funcionen en tu app, también necesitas conectar tu app a los stores, y luego crear productos, un paywall y un placement en el Adapty Dashboard. La guía de inicio rápido explica todos los pasos necesarios.
Instala el SDK de Adapty
Elige el método de configuración de dependencias:
- Gradle estándar: añade las dependencias a tu
build.gradlea nivel de módulo - Si tu proyecto usa archivos
.gradle.kts, añade las dependencias a tubuild.gradle.ktsa nivel de módulo - Si usas catálogos de versiones, añade las dependencias a tu archivo
libs.versions.tomly luego referencialas enbuild.gradle.kts
Si la dependencia no se resuelve, asegúrate de tener mavenCentral() en tus scripts de Gradle.
Instrucciones para añadirlo
Si tu proyecto no tiene dependencyResolutionManagement en tu settings.gradle, añade lo siguiente a tu build.gradle de nivel superior al final de los repositorios:
allprojects {
repositories {
...
mavenCentral()
}
}De lo contrario, añade lo siguiente a tu settings.gradle en repositories de la sección dependencyResolutionManagement:
dependencyResolutionManagement {
...
repositories {
...
mavenCentral()
}
}Adapty Android SDK 4.0 es una versión preliminar. Gradle no selecciona versiones preliminares mediante rangos de versión dinámicos (como + o latest.release), por lo que debes fijar la versión exacta. Establece la versión de adapty-bom en la versión preliminar 4.0 — por ejemplo io.adapty:adapty-bom:4.0.0-beta.1, o adaptyBom = "4.0.0-beta.1" en libs.versions.toml. El BOM resuelve automáticamente las versiones correspondientes de android-sdk y android-ui. Consulta Migrar el SDK de Adapty para Android a v4.
Activar el módulo de Adapty del SDK
Configuración básica
Activa el SDK de Adapty en el código de tu app.
El SDK de Adapty solo necesita activarse una vez en tu app.
Para obtener tu Public SDK Key:
- Ve al Adapty Dashboard y navega a App settings → General.
- En la sección Api keys, copia la Public SDK Key (NO la Secret Key).
- Reemplaza
"YOUR_PUBLIC_SDK_KEY"en el código.
O bien, obtenla de forma programática usando el Adapty CLI:
npm install -g adapty
adapty auth login
adapty apps list
O directamente:
npx adapty auth login
adapty apps list
- Asegúrate de usar la Public SDK key para inicializar Adapty; la Secret key solo debe usarse para la API del lado del servidor.
- Las SDK keys son únicas para cada app, así que si tienes varias apps asegúrate de elegir la correcta.
Espera a que Adapty.activate se complete antes de llamar a cualquier otro método del SDK de Adapty. Consulta Orden de llamadas en el SDK de Android para ver la secuencia completa.
Ahora configura los paywalls en tu app:
- Si usas Adapty Paywall Builder, sigue la guía de inicio rápido del Paywall Builder.
- Si construyes tu propia UI de paywall, consulta la guía de inicio rápido para paywalls personalizados.
Activar el módulo AdaptyUI del SDK de Adapty
Si tienes pensado usar Paywall Builder, necesitas el módulo AdaptyUI. Se activa automáticamente al activar el módulo principal; no tienes que hacer nada más.
Configurar Proguard
Antes de lanzar tu app en producción, añade -keep class com.adapty.** { *; } a tu configuración de Proguard.
Configuración opcional
Logging
Configura el sistema de logging
Adapty registra errores y otra información importante para ayudarte a entender qué está ocurriendo. Los niveles disponibles son los siguientes:
| Nivel | Descripción |
|---|---|
AdaptyLogLevel.NONE | No se registrará nada. Valor predeterminado |
AdaptyLogLevel.ERROR | Solo se registrarán los errores |
AdaptyLogLevel.WARN | Se registrarán los errores y los mensajes del SDK que no causan errores críticos, pero que conviene tener en cuenta. |
AdaptyLogLevel.INFO | Se registrarán los errores, las advertencias y varios mensajes informativos. |
AdaptyLogLevel.VERBOSE | Se registrará cualquier información adicional que pueda resultar útil durante la depuración, como llamadas a funciones, consultas a la API, etc. |
| Puedes establecer el nivel de log en tu app antes de configurar Adapty. |
Redirigir los mensajes del sistema de logging
Si por algún motivo necesitas enviar los mensajes de Adapty a tu sistema o guardarlos en un archivo, puedes sobreescribir el comportamiento predeterminado:
Políticas de datos
Adapty no almacena datos personales de tus usuarios a menos que los envíes explícitamente, pero puedes implementar políticas de seguridad de datos adicionales para cumplir con las directrices del store o del país.
Desactivar la recopilación y el uso compartido de la dirección IP
Al activar el módulo de Adapty, establece ipAddressCollectionDisabled en true para desactivar la recopilación y el uso compartido de la dirección IP del usuario. El valor predeterminado es false.
Usa este parámetro para mejorar la privacidad de los usuarios, cumplir con las normativas regionales de protección de datos (como el RGPD o la CCPA), o reducir la recopilación de datos innecesaria cuando las funciones basadas en IP no son necesarias para tu app.
Desactivar la recopilación y el uso compartido del ID de publicidad (Ad ID)
Al activar el módulo de Adapty, establece adIdCollectionDisabled en true para desactivar la recopilación del ID de publicidad del usuario. El valor predeterminado es false.
Usa este parámetro para cumplir con las políticas de Play Store, evitar que aparezca el aviso de permiso para el ID publicitario, o si tu app no necesita atribución publicitaria ni análisis basados en el Ad ID.
Configurar la caché de medios para AdaptyUI
Por defecto, AdaptyUI almacena en caché los medios (como imágenes y vídeos) para mejorar el rendimiento y reducir el uso de red. Puedes personalizar la configuración de la caché proporcionando una configuración personalizada.
Usa AdaptyUI.configureMediaCache para cambiar el tamaño de caché y el período de validez predeterminados. Es opcional: si no llamas a este método, se usarán los valores por defecto (100 MB de disco, 7 días de validez).
Parámetros:
| Parámetro | Presencia | Descripción |
|---|---|---|
| diskStorageSizeLimit | opcional | Tamaño total de la caché en disco en bytes. El valor predeterminado es 100 MB. |
| diskCacheValidityTime | opcional | Durante cuánto tiempo se consideran válidos los archivos en caché. El valor predeterminado es 7 días. |
Puedes limpiar la caché de medios en tiempo de ejecución usando AdaptyUI.clearMediaCache(strategy), donde strategy puede ser CLEAR_ALL o CLEAR_EXPIRED_ONLY.
Establecer IDs de cuenta ofuscados
Google Play requiere IDs de cuenta ofuscados en determinados casos de uso para mejorar la privacidad y la seguridad de los usuarios. Estos IDs ayudan a Google Play a identificar las compras manteniendo el anonimato de la información del usuario, lo que resulta especialmente importante para la prevención del fraude y el análisis de datos.
Es posible que necesites establecer estos IDs si tu aplicación maneja datos sensibles de los usuarios o si debes cumplir con normativas de privacidad específicas. Los IDs ofuscados permiten a Google Play rastrear las compras sin exponer los identificadores reales de los usuarios.
Ejecutar Adapty en un proceso personalizado
Por defecto, Adapty solo puede ejecutarse en el proceso principal de tu app. Si tu app usa múltiples procesos, inicializa Adapty una sola vez; de lo contrario, pueden producirse comportamientos inesperados.
Si necesitas ejecutar Adapty en un proceso diferente, especifícalo en tu configuración:
Si intentas activar Adapty en otro proceso sin establecer este valor, el SDK registrará una advertencia y omitirá la activación.
Habilitar niveles de acceso locales
Por defecto, los niveles de acceso locales están desactivados en Android. Para habilitarlos, establece withLocalAccessLevelAllowed en true:
Solución de problemas
Reglas de copia de seguridad de Android (configuración de Auto Backup)
Algunos SDKs (incluido Adapty) incluyen su propia configuración de Android Auto Backup. Si usas varios SDKs que definen reglas de copia de seguridad, el fusionador de manifiestos de Android puede fallar con un error relacionado con android:fullBackupContent, android:dataExtractionRules o android:allowBackup.
Síntomas típicos del error: Manifest merger failed: Attribute application@dataExtractionRules value=(@xml/sample_data_extraction_rules) is also present at [com.other.sdk:library:1.0.0] value=(@xml/other_sdk_data_extraction_rules)
Para resolver esto, necesitas:
-
Indicarle al fusionador de manifiestos que use los valores de tu aplicación para los atributos relacionados con las copias de seguridad.
-
Combinar las reglas de copia de seguridad de Adapty y otros SDKs en un único archivo XML (o un par de archivos para Android 12+).
1. Añade el espacio de nombres tools a tu manifiesto
Si aún no está presente, añade el espacio de nombres tools a la etiqueta raíz <manifest>:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
package="com.example.app">
...
</manifest>
2. Sobreescribe los atributos de copia de seguridad en <application>
En el archivo AndroidManifest.xml de tu app, actualiza la etiqueta <application> para que tu app proporcione los valores finales e indique al fusionador de manifiestos que reemplace los valores de la biblioteca:
<application
android:name=".App"
android:allowBackup="true"
android:fullBackupContent="@xml/sample_backup_rules"
android:dataExtractionRules="@xml/sample_data_extraction_rules"
tools:replace="android:fullBackupContent,android:dataExtractionRules">
...
</application>
Si algún SDK también establece android:allowBackup, inclúyelo en tools:replace también:
tools:replace="android:allowBackup,android:fullBackupContent,android:dataExtractionRules"
3. Crear archivos de reglas de copia de seguridad combinadas
Crea archivos XML en app/src/main/res/xml/ que combinen las reglas de Adapty con las de otros SDKs. Android usa diferentes formatos de reglas de copia de seguridad según la versión del sistema operativo, por lo que crear ambos archivos garantiza la compatibilidad con todas las versiones de Android que admite tu app.
Los ejemplos a continuación muestran AppsFlyer como SDK de terceros de muestra. Reemplaza o añade reglas para cualquier otro SDK que estés usando en tu app.
Para Android 12 y versiones superiores (usa el nuevo formato de reglas de extracción de datos):
<?xml version="1.0" encoding="utf-8"?>
<data-extraction-rules>
<cloud-backup>
<exclude domain="sharedpref" path="appsflyer-data"/>
<exclude domain="sharedpref" path="appsflyer-purchase-data"/>
<exclude domain="database" path="afpurchases.db"/>
<exclude domain="sharedpref" path="AdaptySDKPrefs.xml"/>
</cloud-backup>
<device-transfer>
<exclude domain="sharedpref" path="appsflyer-data"/>
<exclude domain="sharedpref" path="appsflyer-purchase-data"/>
<exclude domain="database" path="afpurchases.db"/>
<exclude domain="sharedpref" path="AdaptySDKPrefs.xml"/>
</device-transfer>
</data-extraction-rules>
Para Android 11 e inferior (usa el formato heredado de copia de seguridad completa):
<?xml version="1.0" encoding="utf-8"?>
<full-backup-content>
<exclude domain="sharedpref" path="appsflyer-data"/>
<exclude domain="sharedpref" path="AdaptySDKPrefs.xml"/>
</full-backup-content>
Con esta configuración:
-
Las exclusiones de copia de seguridad de Adapty (
AdaptySDKPrefs.xml) se conservan. -
Las exclusiones de otros SDKs (por ejemplo,
appsflyer-data) también se aplican. -
El fusionador de manifiestos usa la configuración de tu app y ya no falla por atributos de copia de seguridad en conflicto.
Las compras fallan al volver de otra app
Si la Activity que inicia el flujo de compra usa un launchMode no predeterminado, Android puede recrearla o reutilizarla de forma incorrecta cuando el usuario vuelve desde Google Play, una app bancaria o un navegador. Esto puede provocar que el resultado de la compra se pierda o se trate como cancelado.
Para que las compras funcionen correctamente, usa solo los modos de lanzamiento standard o singleTop para la Activity que inicia el flujo de compra, y evita cualquier otro modo.
En tu AndroidManifest.xml, asegúrate de que la Activity que inicia el flow de compra tenga el modo de lanzamiento standard o singleTop:
<activity
android:name=".MainActivity"
android:launchMode="standard" />