Activer les achats avec Flow Builder dans le SDK Kotlin Multiplatform
Ce guide utilise les API du SDK Adapty Kotlin Multiplatform v4 (bêta). Si vous utilisez la v3, consultez le guide de migration pour les noms de méthodes correspondants.
Pour activer les achats intégrés, vous devez comprendre trois concepts clés :
- Produits – tout ce que les utilisateurs peuvent acheter (abonnements, consommables, accès à vie)
- Flows – des séquences d’écrans qui présentent des produits aux utilisateurs, créées dans le Flow Builder sans code. Le SDK les récupère via
getFlow. Si vous préférez construire l’interface dans votre propre code, utilisez plutôt un paywall — voir Implémenter les paywalls manuellement. - Placements – où et quand vous affichez les flows dans votre application (par exemple
main,onboarding,settings). Vous associez des flows aux placements dans le tableau de bord, puis vous les demandez par ID de placement dans votre code. Cela facilite l’exécution de tests A/B et l’affichage de flows différents selon les utilisateurs.
Adapty vous propose trois façons d’activer les achats dans votre application. Choisissez celle qui correspond à vos besoins :
| Implémentation | Complexité | Quand l’utiliser |
|---|---|---|
| Adapty Flow Builder | ✅ Facile | Vous créez un flow complet et prêt à l’achat dans le builder sans code. Adapty le rend automatiquement et gère tout le flux d’achat, la validation des reçus et la gestion des abonnements en coulisses. |
| Paywalls créés manuellement | 🟡 Moyen | Vous implémentez l’interface de votre paywall dans le code de votre application, mais récupérez quand même l’objet flow depuis Adapty pour garder de la flexibilité sur les offres produits. Voir le guide. |
| Mode observateur | 🔴 Difficile | Vous disposez déjà de votre propre infrastructure de gestion des achats et souhaitez continuer à l’utiliser. Notez que le mode observateur présente des limitations dans Adapty. Voir l’article. |
Les étapes ci-dessous montrent comment implémenter un flow créé dans Adapty Flow Builder.
Si vous préférez construire l’interface du paywall vous-même, voir Implémenter les paywalls manuellement.
Pour afficher un flow créé dans Adapty Flow Builder, vous n’avez besoin que de :
- Récupérer le flow : Obtenez-le depuis Adapty.
- L’afficher et laisser Adapty gérer les achats : Affichez la vue dans votre application.
- Gérer les actions des boutons : Associez les interactions utilisateur aux réponses de votre application. Par exemple, ouvrir des liens ou fermer le flow lorsque les utilisateurs cliquent sur des boutons.
Avant de commencer
Avant de commencer, effectuez ces étapes :
- Connectez votre application à l’App Store et/ou à Google Play dans l’Adapty Dashboard.
- Créez vos produits dans Adapty.
- Créez un flow et ajoutez-y des produits.
- Créez un placement et ajoutez-y votre flow.
- Installez et activez le SDK Adapty dans le code de votre application.
La façon la plus rapide de réaliser ces étapes est de suivre le guide de démarrage rapide ou de créer des flows et des placements avec la Developer CLI.
1. Récupérer le flow
Vos flows sont associés à des placements configurés dans le tableau de bord. Les placements vous permettent d’exécuter différents flows pour différentes audiences ou de lancer des tests A/B.
Pour récupérer un flow créé dans Adapty Flow Builder, vous devez :
-
Obtenir l’objet
flowpar l’ID du placement en utilisant la méthodegetFlow. -
Créer la vue du flow avec la méthode
createFlowView. La vue contient les éléments d’interface et le style nécessaires pour afficher le flow. Si aucune vue n’est configurée pour le flow,createFlowViewretourne une erreur — gérez-la dansonError.
Pour obtenir la vue, vous devez activer le bouton Show on device dans le Flow Builder. Sinon, createFlowView retournera une erreur et le flow ne sera pas affiché.
Adapty.getFlow("YOUR_PLACEMENT_ID")
.onSuccess { flow ->
AdaptyUI.createFlowView(flow)
.onSuccess { view ->
view.present()
}
.onError { error ->
// the flow has no view configured, or view creation failed
}
}
.onError { error ->
// handle the error
}
2. Afficher le flow
Une fois que vous avez le flow, quelques lignes suffisent pour l’afficher.
Pour afficher le flow visuel à l’écran de l’appareil, vous devez d’abord créer la vue. Pour ce faire, appelez la méthode AdaptyUI.createFlowView() :
AdaptyUI.createFlowView(flow)
.onSuccess { view ->
view.present()
}
.onError { error ->
// handle the error
}
Une fois la vue créée avec succès, vous pouvez la présenter à l’écran de l’appareil. Chaque vue ne peut être utilisée qu’une seule fois : après avoir appelé dismiss(), appelez à nouveau createFlowView pour afficher le flow une nouvelle fois.
Pour plus de détails sur l’affichage d’un flow, consultez notre guide.
3. Gérer les actions des boutons
Lorsque les utilisateurs cliquent sur des boutons dans le flow, le SDK Kotlin Multiplatform gère automatiquement les achats, la restauration, la fermeture du flow et l’ouverture des liens.
Cependant, d’autres boutons ont des ID personnalisés ou prédéfinis et nécessitent une gestion des actions dans votre code. Ou vous souhaitez peut-être remplacer leur comportement par défaut.
Par exemple, voici le comportement par défaut du bouton de fermeture. Vous n’avez pas besoin de l’ajouter dans le code, mais vous pouvez voir ici comment procéder si nécessaire.
Notez que, par défaut, le flow reste ouvert après un achat réussi. Si vous souhaitez le fermer une fois l’achat terminé, ignorez la vue dans le callback flowViewDidFinishPurchase.
Consultez nos guides sur la gestion des actions et des événements des boutons.
AdaptyUI.setFlowsEventsObserver(object : AdaptyUIFlowsEventsObserver {
override fun flowViewDidPerformAction(view: AdaptyUIFlowView, action: AdaptyUIAction) {
when (action) {
is AdaptyUIAction.CloseAction -> mainUiScope.launch { view.dismiss() }
else -> Unit
}
}
override fun flowViewDidFinishPurchase(
view: AdaptyUIFlowView,
product: AdaptyPaywallProduct,
purchaseResult: AdaptyPurchaseResult
) {
if (purchaseResult !is AdaptyPurchaseResult.UserCanceled) {
mainUiScope.launch { view.dismiss() }
}
}
})
Prochaines étapes
Votre flow est prêt à être affiché dans l’application. Testez vos achats dans le sandbox App Store ou dans Google Play Store pour vous assurer de pouvoir effectuer un achat test depuis le flow.
Vous devez ensuite vérifier le niveau d’accès des utilisateurs pour vous assurer d’afficher un flow ou d’accorder l’accès aux fonctionnalités payantes aux bons utilisateurs.
Exemple complet
Voici comment toutes ces étapes peuvent être intégrées ensemble dans votre application.
// Set up the observer for handling flow events
AdaptyUI.setFlowsEventsObserver(object : AdaptyUIFlowsEventsObserver {
override fun flowViewDidPerformAction(view: AdaptyUIFlowView, action: AdaptyUIAction) {
when (action) {
is AdaptyUIAction.CloseAction -> mainUiScope.launch { view.dismiss() }
else -> Unit
}
}
override fun flowViewDidFinishPurchase(
view: AdaptyUIFlowView,
product: AdaptyPaywallProduct,
purchaseResult: AdaptyPurchaseResult
) {
if (purchaseResult !is AdaptyPurchaseResult.UserCanceled) {
mainUiScope.launch { view.dismiss() }
}
}
})
// Get and display the flow
Adapty.getFlow("YOUR_PLACEMENT_ID")
.onSuccess { flow ->
AdaptyUI.createFlowView(flow)
.onSuccess { view ->
view.present()
}
.onError { error ->
// the flow has no view configured — use custom logic
}
}
.onError { error ->
// handle the error
}