Optimiser la récupération des flows et paywalls avec le SDK Flutter
Une récupération fiable d’un flow ou d’un paywall avec Flutter repose sur trois points : un rendu rapide, le retour de la variante ciblée par audience, et un repli gracieux lorsque le réseau est lent. Les règles ci-dessous couvrent le timing, la mise en cache et les patterns de secours pour y parvenir.
Ces règles supposent que Adapty().activate() et Adapty().identify() ont déjà été résolus. Consultez Ordre des appels dans le SDK Flutter.
Règles et pièges
| Faites ceci | Évitez cela | Pourquoi |
|---|---|---|
| Récupérez le placement que vous êtes sur le point d’afficher. | Prérécupérer tous les placements simultanément au lancement. | La prérécupération en masse bloque le thread principal et provoque un écran noir pendant le pic. |
Récupérez getFlow après que l’attribution a eu le temps de se résoudre — par exemple, 1 à 2 secondes après activate ou après le déclenchement de didUpdateProfileStream. | Appelez getFlow dans main() avant runApp. | L’attribution n’est pas encore arrivée. Le flow se résout sur l’audience par défaut et contourne silencieusement les segments et la personnalisation ASA. |
Définissez un loadTimeout et configurez un paywall de secours pour chaque placement. | Attendre getFlow indéfiniment. | Sans délai d’expiration, les utilisateurs avec une mauvaise connexion voient un écran vide jusqu’à ce que le réseau réponde — ou ferment l’application. |
Consultez Récupérer les paywalls et les produits pour la référence des paramètres fetchPolicy et loadTimeout, et Placements pour choisir le bon placement.
Afficher les médias du premier écran depuis le bundle de l’application
Un flow télécharge ses images et vidéos depuis Adapty. Pour afficher instantanément les médias du premier écran, servez-les depuis le bundle de l’application. C’est un bon moyen de réutiliser des médias que vous embarquez déjà, comme les visuels d’un onboarding natif existant.
- Dans le Flow & Paywall Builder, définissez un identifiant multimédia personnalisé sur l’image ou la vidéo. Le fichier que vous y téléchargez reste en tant que fallback.
- Ajoutez le fichier à vos assets Flutter et listez-le sous
assetsdanspubspec.yaml. - Lorsque vous créez la vue du flow, transmettez le fichier groupé pour cet identifiant dans
customAssets:
// "welcome_video" is the custom media ID set in the Flow & Paywall Builder
final bundledAssets = {
'welcome_video': AdaptyCustomAsset.localVideoAsset(
assetId: 'assets/videos/welcome.mp4',
),
};
try {
final view = await AdaptyUI().createFlowView(
flow: flow,
customAssets: bundledAssets,
);
} on AdaptyError catch (e) {
// handle the error
}
Les fichiers intégrés augmentent la taille de téléchargement de votre application, ne bundlez donc que les médias que les utilisateurs voient en premier.
Les médias non inclus dans le bundle s’affichent quand même immédiatement : le layout du flow contient une petite copie basse résolution de chaque image, y compris une image fixe pour les vidéos, et l’affiche jusqu’au chargement complet du fichier.
Pour la référence complète de customAssets, consultez Personnaliser les assets.
Optimiser pour une connectivité médiocre
Pour les marchés où la connectivité est durablement mauvaise (zones rurales, transports, régions touchées par des problèmes de routage) :
- Définissez
fetchPolicy: AdaptyFlowFetchPolicy.returnCacheDataElseLoadsur chaque appel sauf le tout premier. - Configurez un paywall de secours pour chaque placement dans l’Adapty Dashboard.
- Réglez
loadTimeoutà 3–5 secondes et acceptez le paywall de secours quand le délai expire. - N’attendez pas
getProfile()pour afficher le flow. AppelezgetFlowindépendamment afin qu’un profil lent ne bloque pas l’interface.