Suivre les vues d'écran de flow dans le SDK Kotlin Multiplatform

Chaque fois qu’un utilisateur ouvre un écran dans un flow, le SDK envoie un événement flow_screen_showed à votre application. Transmettez-le à Amplitude, Mixpanel ou tout autre outil d’analyse produit que vous utilisez, afin d’analyser les écrans de flow avec le reste des événements de votre application.

Tip

Pour voir jusqu’où les utilisateurs progressent dans un flow, aucun code n’est nécessaire — les métriques de flow affichent déjà les vues, les complétions et le taux d’abandon par écran dans l’Adapty Dashboard. Utilisez ce guide lorsque vous avez besoin de ces mêmes données dans vos propres outils d’analyse, combinées avec des événements qu’Adapty ne connaît pas.

Avant de commencer

Vous avez besoin de :

  • Adapty Kotlin Multiplatform SDK v4 ou version ultérieure : le callback d’analyse des flows n’existe pas dans les versions antérieures.
  • Une version de flow publiée après la mise en production de cette fonctionnalité : Adapty génère les événements d’écran au moment de la publication d’un flow, donc un flow publié avant cette date ne remontera aucune donnée. Si aucun événement n’arrive dans votre application, publiez une nouvelle version du flow et réessayez.

Ce que vous recevez

Un flow envoie flow_screen_showed chaque fois qu’un utilisateur ouvre l’un de ses écrans. Adapty comptabilise ces événements dans ses propres analytics de flow et les transmet également à votre application, afin que vous puissiez reconstituer le même funnel dans vos propres analytics.

ParamètreDescription
instanceIdL’ID de l’écran que l’utilisateur a ouvert.
screen_orderLa position de l’écran dans le flow.
is_last_screentrue quand l’écran n’a nulle part où aller ensuite. Un flow avec des embranchements peut se terminer sur plusieurs écrans différents, et chacun d’eux renvoie true.

isBackendEvent et isCustomerEvent sont tous les deux true pour cet événement : Adapty continue de le comptabiliser, et votre application le reçoit également.

Kotlin Multiplatform fournit ces paramètres sous forme de chaîne JSON brute, donc décodez paramsJsonString avant de les lire.

Les vues d’écran arrivent dans le même callback d’analytics que tous les autres événements de flow. Consultez Gérer les événements de flow et de paywall pour savoir où l’enregistrer.

Transmettre chaque vue d’écran à vos analytics

Vérifiez d’abord le nom de l’événement avant de lire quoi que ce soit d’autre, car un flow remonte d’autres événements via le même callback.

override fun flowViewDidReceiveAnalyticEvent(
    view: AdaptyUIFlowView,
    name: String,
    paramsJsonString: String,
) {
    if (name != "flow_screen_showed") return

    val params = Json.parseToJsonElement(paramsJsonString).jsonObject
    val screenId = params["instanceId"]?.jsonPrimitive?.contentOrNull
    val screenOrder = params["screen_order"]?.jsonPrimitive?.intOrNull

    // Send screenId and screenOrder to your analytics provider here.
}

Exécuter du code lorsqu’un utilisateur atteint la fin

is_last_screen est true sur un écran au-delà duquel le flow ne peut pas avancer. Utilisez-le pour déverrouiller du contenu, marquer l’onboarding comme terminé ou envoyer un événement de complétion, sans avoir à ajouter une action de bouton dans le builder.

override fun flowViewDidReceiveAnalyticEvent(
    view: AdaptyUIFlowView,
    name: String,
    paramsJsonString: String,
) {
    if (name != "flow_screen_showed") return

    val params = Json.parseToJsonElement(paramsJsonString).jsonObject
    if (params["is_last_screen"]?.jsonPrimitive?.booleanOrNull != true) return

    // The user reached the end of the flow.
}

Atteindre le dernier écran n’est pas la même chose que fermer le flow. Un utilisateur peut voir l’écran final et fermer le flow sans agir dessus, et un flow avec des embranchements peut se terminer sur plusieurs écrans différents. Pour savoir que le flow lui-même a disparu, utilisez plutôt flowViewDidDisappear.