Après l'installation, exécutez la skill dans votre projet :
/adapty-sdk-integration
Pour décider si les utilisateurs peuvent accéder au contenu payant ou voir un paywall, vous devez vérifier leur niveau d’accès dans le profil.
Cet article vous montre comment accéder à l’état du profil pour décider ce que les utilisateurs doivent voir — afficher un paywall ou leur donner accès aux fonctionnalités payantes.
Obtenir le statut d’abonnement
Lorsque vous décidez d’afficher un paywall ou du contenu payant à un utilisateur, vous vérifiez son niveau d’accès dans son profil. Deux options s’offrent à vous :
Appelez getProfile si vous avez besoin des dernières données de profil immédiatement (par exemple au lancement de l’application) ou pour forcer une mise à jour.
Configurez les mises à jour automatiques du profil pour conserver une copie locale qui se rafraîchit automatiquement dès que le statut d’abonnement change.
Obtenir le profil
La façon la plus simple d’obtenir le statut d’abonnement est d’utiliser la méthode getProfile pour accéder au profil :
Adapty.getProfile { result -> when (result) { is AdaptyResult.Success -> { val profile = result.value // check the access } is AdaptyResult.Error -> { val error = result.error // handle the error } }}
Adapty.getProfile(result -> { if (result instanceof AdaptyResult.Success) { AdaptyProfile profile = ((AdaptyResult.Success<AdaptyProfile>) result).getValue(); // check the access } else if (result instanceof AdaptyResult.Error) { AdaptyError error = ((AdaptyResult.Error) result).getError(); // handle the error }});
Écouter les mises à jour d’abonnement
Pour recevoir automatiquement les mises à jour du profil dans votre application :
Utilisez Adapty.setOnProfileUpdatedListener() pour écouter les changements de profil — Adapty appellera automatiquement cette méthode dès que le statut d’abonnement de l’utilisateur change.
Stockez les données de profil mises à jour lorsque cette méthode est appelée, afin de pouvoir les utiliser partout dans votre application sans effectuer de requêtes réseau supplémentaires.
class SubscriptionManager { private var currentProfile: AdaptyProfile? = null init { // Listen for profile updates Adapty.setOnProfileUpdatedListener { profile -> currentProfile = profile // Update UI, unlock content, etc. } } // Use stored profile instead of calling getProfile() fun hasAccess(): Boolean { return currentProfile?.accessLevels["YOUR_ACCESS_LEVEL"]?.isActive == true }}
public class SubscriptionManager { private AdaptyProfile currentProfile; public SubscriptionManager() { // Listen for profile updates Adapty.setOnProfileUpdatedListener(profile -> { this.currentProfile = profile; // Update UI, unlock content, etc. }); } // Use stored profile instead of calling getProfile() public boolean hasAccess() { if (currentProfile == null) { return false; } AdaptyAccessLevel premiumAccess = currentProfile.getAccessLevels().get("YOUR_ACCESS_LEVEL"); return premiumAccess != null && premiumAccess.isActive(); }}
Adapty appelle automatiquement l’écouteur de mise à jour du profil au démarrage de votre application, en fournissant les données d’abonnement mises en cache même si l’appareil est hors ligne.
Connecter le profil à la logique des paywalls
Lorsque vous devez prendre des décisions immédiates concernant l’affichage des paywalls ou l’accès aux fonctionnalités payantes, vous pouvez vérifier directement le profil de l’utilisateur. Cette approche est utile dans des scénarios comme le lancement de l’application, l’entrée dans des sections premium, ou avant l’affichage de contenu spécifique.
private fun initializePaywall() { loadPaywall { paywallView -> checkAccessLevel { result -> when (result) { is AdaptyResult.Success -> { if (!result.value && paywallView != null) { setContentView(paywallView) // Show paywall if no access } } is AdaptyResult.Error -> { if (paywallView != null) { setContentView(paywallView) // Show paywall if access check fails } } } } }}private fun checkAccessLevel(callback: ResultCallback<Boolean>) { Adapty.getProfile { result -> when (result) { is AdaptyResult.Success -> { val hasAccess = result.value.accessLevels["YOUR_ACCESS_LEVEL"]?.isActive == true callback.onResult(AdaptyResult.Success(hasAccess)) } is AdaptyResult.Error -> { callback.onResult(AdaptyResult.Error(result.error)) } } }}
private void initializePaywall() { loadPaywall(paywallView -> { checkAccessLevel(result -> { if (result instanceof AdaptyResult.Success) { boolean hasAccess = ((AdaptyResult.Success<Boolean>) result).getValue(); if (!hasAccess && paywallView != null) { setContentView(paywallView); // Show paywall if no access } } else if (result instanceof AdaptyResult.Error) { if (paywallView != null) { setContentView(paywallView); // Show paywall if access check fails } } }); });}private void checkAccessLevel(ResultCallback<Boolean> callback) { Adapty.getProfile(result -> { if (result instanceof AdaptyResult.Success) { AdaptyProfile profile = ((AdaptyResult.Success<AdaptyProfile>) result).getValue(); AdaptyAccessLevel premiumAccess = profile.getAccessLevels().get("YOUR_ACCESS_LEVEL"); boolean hasAccess = premiumAccess != null && premiumAccess.isActive(); callback.onResult(AdaptyResult.success(hasAccess)); } else if (result instanceof AdaptyResult.Error) { callback.onResult(AdaptyResult.error(((AdaptyResult.Error) result).getError())); } });}
Étapes suivantes
Maintenant que vous savez comment suivre le statut d’abonnement, apprenez à travailler avec les profils utilisateurs pour vous assurer qu’ils peuvent accéder à ce pour quoi ils ont payé.