Activer les achats avec Flow & Paywall Builder dans le SDK Kotlin Multiplatform
Ce guide utilise les APIs du SDK Adapty Kotlin Multiplatform v4 (beta). 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 – séquences d’écrans qui présentent des produits aux utilisateurs, créées dans le Flow & Paywall 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 la mise en place 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. Sélectionnez celle qui correspond à vos besoins :
| Implémentation | Complexité | Quand l’utiliser |
|---|---|---|
| Adapty Flow & Paywall Builder | ✅ Facile | Vous créez un flow complet et prêt à l’achat dans le builder no-code. Adapty le rend automatiquement et gère dans les coulisses tout le flux d’achat, la validation des reçus et la gestion des abonnements. |
| Paywalls créés manuellement | 🟡 Moyen | Vous implémentez l’interface de votre paywall dans le code de votre application, mais récupérez tout de même l’objet flow depuis Adapty pour conserver une flexibilité dans les offres de produits. Consultez 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. Consultez l’article. |
Les étapes ci-dessous montrent comment intégrer un flow créé dans l’Adapty Flow & Paywall Builder.
Si vous préférez construire l’interface de votre paywall vous-même, consultez Implémenter les paywalls manuellement.
Pour afficher un flow créé dans l’Adapty Flow & Paywall Builder, dans le code de votre application, vous devez simplement :
- Obtenez le flow : Récupérez-le depuis Adapty.
- Affichez-le et Adapty gère les achats pour vous : Montrez la vue dans votre app.
- Gérez les actions des boutons : Associez les interactions des utilisateurs aux réponses de votre app. Par exemple, ouvrez des liens ou fermez le flow lorsque les utilisateurs cliquent sur des boutons.
Avant de commencer
Avant de commencer, effectuez les étapes suivantes :
- 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.
Le moyen le plus rapide d’effectuer ces étapes est de suivre le guide de démarrage rapide ou de créer des flows et des placements via 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’afficher différents flows pour différentes audiences ou de lancer des tests A/B.
Pour récupérer un flow créé dans le Adapty Flow & Paywall Builder, vous devez :
-
Récupérer l’objet
flowpar l’ID de 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 à l’affichage du flow. Si aucune vue n’est configurée pour le flow,createFlowViewrenvoie une erreur — gérez-la dansonError.
Pour obtenir la vue, publiez le flow. Un flow avec des modifications non publiées a le statut Dirty, et son placement continue de servir la dernière version publiée.
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
Maintenant que vous avez le flow, il suffit d’ajouter quelques lignes pour l’afficher.
Pour afficher le flow visuel sur 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 l’afficher à 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 fois de plus.
Pour plus de détails sur la façon d’afficher 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 identifiants personnalisés ou prédéfinis et nécessitent une gestion des actions dans votre code. Ou bien, vous pouvez vouloir 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é, fermez 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() }
}
}
})
Étapes suivantes
Votre flow est prêt à être affiché dans l’application. Testez vos achats dans le sandbox App Store ou dans le Google Play Store pour vous assurer de pouvoir effectuer un achat test depuis le flow.
Ensuite, vous devez vérifier le niveau d’accès des utilisateurs pour vous assurer d’afficher un flow ou de donner accès aux fonctionnalités payantes aux bons utilisateurs.
Exemple complet
Voici comment intégrer toutes ces étapes 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
}