Migration depuis Superwall

La plupart des migrations de Superwall vers Adapty prennent environ deux heures. Vous remplacez le SDK, pointez vos notifications serveur du store vers Adapty, et publiez une nouvelle version de l’app. Vos abonnés payants conservent leur accès — Adapty le restaure à partir des reçus App Store et Google Play au premier lancement.

Vos abonnés migreront automatiquement

Tous les utilisateurs ayant activé un abonnement migrent vers Adapty dès qu’ils ouvrent une nouvelle version de votre app avec le SDK Adapty. La validation du statut d’abonnement et l’accès premium sont restaurés automatiquement.

Organisation de ce guide

La migration comporte six étapes :

  1. Mapper vos concepts Superwall vers Adapty
  2. Installer le SDK Adapty
  3. Remplacer les appels SDK
  4. Basculer les notifications serveur App Store et Google Play
  5. Tester et publier
  6. (Optionnel) Importer les données historiques

Mapper vos concepts Superwall vers Adapty

La plupart des concepts Superwall ont un équivalent direct dans Adapty :

SuperwallAdaptyCe qui change
CampaignPlacement + AudienceLa logique de campagne se divise en un placement (l’emplacement) et une audience (la règle).
PlacementPlacementMême concept, même nom.
Audience filterAudienceLes ensembles de règles vivent à l’intérieur d’un placement.
EntitlementNiveau d’accèsIdentifiant nommé (par exemple, premium).
WebView paywallPaywall Paywall BuilderRendu nativement par le SDK Adapty à la place d’une WKWebView.
PurchaseControllerIntégréAucun protocole à implémenter — Adapty gère les achats.
Feature gatingVérification du niveau d’accèsVérifiez profile.accessLevels["premium"]?.isActive.

Deux changements de logique méritent d’être notés avant de toucher au code :

  • Récupération et présentation sont deux étapes distinctes : le register de Superwall récupère le paywall, évalue la campagne et affiche l’interface en un seul appel. Adapty sépare ces étapes — vous récupérez le paywall, obtenez sa configuration, puis le présentez. Ce découpage ajoute quelques lignes, mais vous permet de précharger les configurations, d’afficher un état de chargement personnalisé ou d’annuler la présentation selon votre propre logique.
  • Le statut d’abonnement est par niveau d’accès : Superwall expose une propriété publiée subscriptionStatus unique. Adapty retourne un AdaptyProfile avec des niveaux d’accès nommés, de sorte qu’un utilisateur peut détenir les niveaux d’accès sports et science indépendamment. Pour les lectures synchrones, mettez en cache le profil depuis l’AdaptyDelegate plutôt que d’appeler getProfile() à chaque chargement de vue.

Installer le SDK Adapty

Installez le SDK Adapty pour votre plateforme — iOS, Android, React Native, Flutter, Kotlin Multiplatform, Unity ou Capacitor — et supprimez SuperwallKit de votre projet en même temps.

Remplacer les appels SDK

Parcourez chaque partie de votre intégration et remplacez l’appel Superwall par son équivalent Adapty. Les liens en fin de chaque sous-section couvrent les sept SDK de plateforme — suivez celui qui correspond à votre app.

Initialiser le SDK

Remplacez Superwall.configure par Adapty.activate.

Consultez le guide d’installation pour votre plateforme — iOS, Android, React Native, Flutter, Kotlin Multiplatform, Unity ou Capacitor.

Identifier et déconnecter les utilisateurs

Remplacez Superwall.shared.identify par Adapty.identify et Superwall.shared.reset par Adapty.logout. Les deux SDK génèrent un profil anonyme au premier lancement, donc ces appels ne sont nécessaires que lorsqu’un utilisateur se connecte ou se déconnecte. Récupérez à nouveau les paywalls après identification — le nouvel utilisateur peut correspondre à une audience différente.

Consultez le guide d’identification pour votre plateforme — iOS, Android, React Native, Flutter, Kotlin Multiplatform, Unity ou Capacitor.

Récupérer et présenter un paywall

Remplacez Superwall.shared.register par un flux en deux étapes : récupérez le paywall avec Adapty.getPaywall, chargez sa configuration de vue avec AdaptyUI.getPaywallConfiguration, puis présentez-le.

Deux différences à noter :

  • Le feature gating remplace la closure feature: : une fois le paywall fermé, vérifiez le niveau d’accès actif sur le profil retourné (ou via Adapty.getProfile) et agissez en conséquence.
  • Les paywalls sont rendus par le SDK : Superwall rend les paywalls dans une WKWebView. Adapty rend les paywalls Paywall Builder nativement — les polices, les informations produit et les boutons sont dessinés par le SDK.

Consultez le guide de démarrage rapide des paywalls pour votre plateforme — iOS, Android, React Native, Flutter, Kotlin Multiplatform, Unity ou Capacitor.

Vérifier le statut d’abonnement

Remplacez Superwall.shared.subscriptionStatus par une vérification sur le niveau d’accès nommé du profil : profile.accessLevels["premium"]?.isActive. Observez les changements via AdaptyDelegate.didLoadLatestProfile(_:) plutôt que le pattern @Published, et mettez en cache le profil de votre côté pour les lectures synchrones.

Consultez le guide du statut d’abonnement pour votre plateforme — iOS, Android, React Native, Flutter, Kotlin Multiplatform, Unity ou Capacitor.

Gérer les achats et les restaurations

Avec le Paywall Builder, les deux SDK traitent les achats automatiquement dans l’interface du paywall — vous pouvez ignorer cette étape.

Pour les paywalls personnalisés, Superwall requiert une implémentation de PurchaseController. Adapty non : remplacez PurchaseController.purchase par Adapty.makePurchase et PurchaseController.restorePurchases par Adapty.restorePurchases. Le SDK gère la validation lui-même.

Consultez le guide de démarrage rapide des paywalls personnalisés pour votre plateforme — iOS, Android, React Native, Flutter, Kotlin Multiplatform, Unity ou Capacitor.

Définir les attributs utilisateur

Remplacez Superwall.shared.setUserAttributes par Adapty.updateProfile.

Consultez le guide des attributs utilisateur pour votre plateforme — iOS, Android, React Native, Flutter, Kotlin Multiplatform, Unity ou Capacitor.

Basculer les notifications serveur App Store et Google Play

Pointez vos notifications serveur du store vers Adapty. Adapty fonctionne sans elles, mais les analyses, les intégrations tierces et les métriques des tests A/B en dépendent :

Si vous souhaitez faire tourner Superwall et Adapty en parallèle pendant le déploiement, utilisez le transfert d’événements bruts — Adapty relaie les événements du store vers Superwall pendant que vous vérifiez la nouvelle intégration.

Tester et publier

Avant de publier, vérifiez chaque point :

  • Configuré l’Adapty Dashboard (produits, paywalls, placements, niveaux d’accès)
  • Installé le SDK Adapty
  • Remplacé les appels SDK Superwall par leurs équivalents Adapty
  • Pointé les notifications serveur App Store et Google Play vers Adapty
  • Effectué un achat en sandbox
  • Soumis une nouvelle version de l’app

Parcourez la liste de contrôle avant publication pour une validation finale.

(Optionnel) Importer les données historiques

Superwall ne possède pas votre état d’abonnement — l’App Store et Google Play le font. Adapty valide les reçus au premier lancement, donc les utilisateurs payants conservent leur accès sans aucune importation.

Si vous souhaitez que les transactions historiques soient importées dans les analyses Adapty, suivez Importer les données historiques dans Adapty. Attendez au moins une semaine après la publication du SDK pour que celui-ci ait le temps de collecter les prix d’achat récents.

FAQ

Que se passe-t-il pour les abonnés qui ne mettent pas à jour l’app ?

La plupart des utilisateurs mettent à jour leurs apps automatiquement pendant la nuit, donc la proportion d’utilisateurs sur l’ancienne version diminue rapidement. Les abonnés sur l’ancienne version conservent leur accès directement via l’App Store ou Google Play — vous n’avez pas besoin de forcer une mise à jour.

Les audiences de mes campagnes Superwall sont-elles transférées ?

Non. Les filtres d’audience Superwall et les audiences Adapty sont configurés dans des tableaux de bord différents et utilisent des identifiants différents. Recréez votre ciblage sous forme d’audiences dans les placements Adapty. La plupart des apps utilisent un ou deux placements (onboarding et déclencheur général dans l’app), donc la reconstruction est généralement rapide.

Adapty a-t-il un équivalent à getPresentationResult ?

Pas sous la forme d’un seul appel. Pour vérifier si un placement afficherait un paywall, appelez Adapty.getPaywall(placementId:) et agissez selon le résultat. Si l’appel réussit, un paywall est attribué à l’audience de cet utilisateur. S’il échoue parce qu’aucun paywall n’est configuré, ignorez la présentation et exécutez votre logique de secours.