Migración desde Superwall
La mayoría de las migraciones desde Superwall a Adapty llevan unas dos horas. Cambias el SDK, apuntas las notificaciones del servidor de la store a Adapty y publicas una nueva versión de la app. Tus suscriptores de pago conservan su acceso — Adapty lo restaura desde los recibos de App Store y Google Play en el primer arranque.
Tus suscriptores migrarán automáticamente
Todos los usuarios que alguna vez hayan activado una suscripción pasan a Adapty en cuanto abran una nueva versión de tu app con el SDK de Adapty. La validación del estado de la suscripción y el acceso premium se restauran automáticamente.
Cómo está organizada esta guía
La migración tiene seis pasos:
- Mapea los conceptos de Superwall a Adapty
- Instala el SDK de Adapty
- Reemplaza las llamadas al SDK
- Cambia las notificaciones del servidor de App Store y Google Play
- Prueba y publica
- (Opcional) Importa datos históricos
Mapea los conceptos de Superwall a Adapty
La mayoría de los conceptos de Superwall tienen un equivalente directo en Adapty:
| Superwall | Adapty | Qué cambia |
|---|---|---|
| Campaign | Placement + Audience | La lógica de la campaña se divide en un placement (la ubicación) y una audiencia (la regla). |
| Placement | Placement | Mismo concepto, mismo nombre. |
| Audience filter | Audience | Los conjuntos de reglas viven dentro de un placement. |
| Entitlement | Nivel de acceso | Identificador con nombre (por ejemplo, premium). |
| WebView paywall | Paywall de Paywall Builder | Renderizado por el SDK de Adapty de forma nativa en lugar de un WKWebView. |
PurchaseController | Integrado | No hay protocolo que implementar — Adapty gestiona las compras. |
| Feature gating | Comprobación de nivel de acceso | Comprueba profile.accessLevels["premium"]?.isActive. |
Hay dos cambios conceptuales que vale la pena tener en cuenta antes de tocar el código:
- Obtener y presentar son pasos separados: El método
registerde Superwall obtiene el paywall, evalúa la campaña y presenta la interfaz en una sola llamada. Adapty divide estos pasos — obtienes el paywall, su configuración de vista y luego lo presentas. Esto añade unas pocas líneas, pero te permite precargar configuraciones, mostrar un estado de carga personalizado o cancelar la presentación según tu propia lógica. - El estado de la suscripción es por nivel de acceso: Superwall expone una sola propiedad publicada
subscriptionStatus. Adapty devuelve unAdaptyProfilecon niveles de acceso con nombre, de modo que un usuario puede tener los niveles de accesosportsysciencede forma independiente. Para lecturas síncronas, guarda en caché el perfil delAdaptyDelegateen lugar de llamar agetProfile()en cada carga de vista.
Instala el SDK de Adapty
Instala el SDK de Adapty para tu plataforma — iOS, Android, React Native, Flutter, Kotlin Multiplatform, Unity o Capacitor — y elimina SuperwallKit de tu proyecto al mismo tiempo.
Reemplaza las llamadas al SDK
Revisa cada área de tu integración y sustituye la llamada de Superwall por su equivalente en Adapty. Los enlaces al final de cada subsección cubren los siete SDKs de plataforma — sigue el que corresponda a tu app.
Inicializa el SDK
Reemplaza Superwall.configure con Adapty.activate.
Consulta la guía de instalación para tu plataforma — iOS, Android, React Native, Flutter, Kotlin Multiplatform, Unity o Capacitor.
Identifica y desconecta usuarios
Reemplaza Superwall.shared.identify con Adapty.identify y Superwall.shared.reset con Adapty.logout. Ambos SDKs generan un perfil anónimo en el primer arranque, por lo que estas llamadas solo son necesarias cuando un usuario inicia o cierra sesión. Vuelve a obtener los paywalls después de identificar — el nuevo usuario puede resolverse a una audiencia diferente.
Consulta la guía de identificación para tu plataforma — iOS, Android, React Native, Flutter, Kotlin Multiplatform, Unity o Capacitor.
Obtén y presenta un paywall
Reemplaza Superwall.shared.register con un flujo de dos pasos: obtén el paywall con Adapty.getPaywall, carga su configuración de vista con AdaptyUI.getPaywallConfiguration y luego preséntalo.
Dos diferencias a destacar:
- El feature gating reemplaza el closure
feature:: Después de que se cierre el paywall, comprueba el nivel de acceso activo en el perfil devuelto (o enAdapty.getProfile) y ramifica desde ahí. - Los paywalls son renderizados por el SDK: Superwall renderiza los paywalls dentro de un
WKWebView. Adapty renderiza los paywalls del Paywall Builder de forma nativa — las fuentes, la información del producto y los botones los dibuja el SDK.
Consulta la guía de inicio rápido de paywalls para tu plataforma — iOS, Android, React Native, Flutter, Kotlin Multiplatform, Unity o Capacitor.
Comprueba el estado de la suscripción
Reemplaza Superwall.shared.subscriptionStatus con una comprobación del nivel de acceso con nombre en el perfil: profile.accessLevels["premium"]?.isActive. Observa los cambios mediante AdaptyDelegate.didLoadLatestProfile(_:) en lugar del patrón de propiedad @Published, y guarda el perfil en caché en tu lado para lecturas síncronas.
Consulta la guía de estado de suscripción para tu plataforma — iOS, Android, React Native, Flutter, Kotlin Multiplatform, Unity o Capacitor.
Gestiona compras y restauraciones
Con el Paywall Builder, ambos SDKs procesan las compras automáticamente dentro de la interfaz del paywall — puedes saltarte este paso.
Para paywalls personalizados, Superwall requiere una implementación de PurchaseController. Adapty no: reemplaza PurchaseController.purchase con Adapty.makePurchase y PurchaseController.restorePurchases con Adapty.restorePurchases. El SDK gestiona la validación por su cuenta.
Consulta la guía de inicio rápido de paywall personalizado para tu plataforma — iOS, Android, React Native, Flutter, Kotlin Multiplatform, Unity o Capacitor.
Configura atributos de usuario
Reemplaza Superwall.shared.setUserAttributes con Adapty.updateProfile.
Consulta la guía de atributos de usuario para tu plataforma — iOS, Android, React Native, Flutter, Kotlin Multiplatform, Unity o Capacitor.
Cambia las notificaciones del servidor de App Store y Google Play
Apunta las notificaciones del servidor de la store a Adapty. Adapty funciona sin ellas, pero las analíticas, las integraciones de terceros y las métricas de pruebas A/B dependen de ellas:
- App Store: Sigue Habilitar notificaciones del servidor de App Store.
- Google Play: Sigue Habilitar notificaciones en tiempo real para desarrolladores.
Si quieres ejecutar Superwall y Adapty en paralelo durante el lanzamiento, usa el reenvío de eventos sin procesar — Adapty reenvía los eventos de la store a Superwall mientras verificas la nueva integración.
Prueba y publica
Antes de publicar, comprueba cada elemento:
- Configurado el Adapty Dashboard (productos, paywalls, placements, niveles de acceso)
- Instalado el SDK de Adapty
- Reemplazadas las llamadas al SDK de Superwall por sus equivalentes en Adapty
- Apuntadas las notificaciones del servidor de App Store y Google Play a Adapty
- Realizada una compra en sandbox
- Enviada una nueva versión de la app
Revisa el checklist de lanzamiento para una validación final.
(Opcional) Importa datos históricos
Superwall no es dueño de tu estado de suscripción — lo son App Store y Google Play. Adapty valida los recibos en el primer arranque, por lo que los usuarios de pago conservan su acceso sin necesidad de ninguna importación.
Si quieres que las transacciones históricas queden registradas en las analíticas de Adapty, sigue Importar datos históricos a Adapty. Espera al menos una semana después del lanzamiento del SDK para que tenga tiempo de recopilar precios de compra actualizados.
Preguntas frecuentes
¿Qué pasa con los suscriptores que no actualizan la app?
La mayoría de los usuarios actualizan sus apps automáticamente durante la noche, por lo que la proporción de usuarios en la versión anterior disminuye rápidamente. Los suscriptores en la versión antigua conservan su acceso directamente a través de App Store o Google Play — no es necesario forzar una actualización.
¿Las audiencias de mis campañas de Superwall se migran?
No. Los filtros de audiencia de Superwall y las audiencias de Adapty se configuran en dashboards diferentes y usan identificadores distintos. Recrea tu segmentación como audiencias dentro de los placements de Adapty. La mayoría de las apps tienen uno o dos placements (onboarding y un trigger general dentro de la app), por lo que la reconstrucción suele ser rápida.
¿Tiene Adapty un equivalente a getPresentationResult?
No como una sola llamada. Para comprobar si un placement mostraría un paywall, llama a Adapty.getPaywall(placementId:) y ramifica según el resultado. Si la llamada tiene éxito, hay un paywall asignado para la audiencia de ese usuario. Si falla porque no hay ningún paywall configurado, omite la presentación y ejecuta tu lógica de respaldo.