---
title: "Suivre les affichages d'écrans de flow dans le SDK iOS"
description: "Recevez un événement chaque fois qu'un utilisateur ouvre un écran de flow dans votre app iOS, et transmettez-le à vos outils d'analytics produit."
---

> **AI agents**: to search Adapty docs faster and with fewer tokens, install the Adapty skill. Claude Code (self-updating via plugin): `claude plugin marketplace add adaptyteam/adapty-skills && claude plugin install adapty-skills@adapty` — other tools: `npx skills add adaptyteam/adapty-skills --all`

Chaque fois qu'un utilisateur ouvre un écran dans un [flow](adapty-flow-builder), le SDK envoie un événement `flow_screen_showed` à votre app. Transmettez-le à Amplitude, Mixpanel ou tout autre outil d'analytics produit que vous utilisez, afin d'analyser les écrans de flow avec le reste des événements de votre app.

:::tip
Pour voir jusqu'où les utilisateurs progressent dans un flow, vous n'avez besoin d'aucun code — les [métriques de flow](flow-metrics) affichent déjà les vues, les complétions et les abandons par écran dans l'Adapty Dashboard. Utilisez ce guide lorsque vous avez besoin des mêmes données dans votre propre outil d'analytics, associées à des événements qu'Adapty ne connaît pas.
:::

## Avant de commencer \{#before-you-start\}

Vous avez besoin de :

- **Adapty iOS SDK v4 ou version ultérieure** : le callback d'analyse de flow n'existe pas dans les versions antérieures.
- **Une version de flow publiée après le déploiement de cette fonctionnalité** : Adapty génère les événements d'écran lors de la publication d'un flow, donc un flow publié avant cette date ne remonte aucun événement. Si aucun événement ne parvient à votre application, publiez une nouvelle version du flow et réessayez.

## Ce que vous recevez \{#what-you-receive\}

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ètre        | Description                                                                                                                  |
|:-----------------|:---------------------------------------------------------------------------------------------------------------------------------|
| `instanceId`     | L'ID de l'écran que l'utilisateur a ouvert.                                                                                  |
| `screen_order`   | La position de l'écran dans le flow.                                                                                         |
| `is_last_screen` | `true` 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.

Les vues d'écran parviennent au même callback d'analyse que tous les autres événements de flow. Voir [Gérer les événements de flow et de paywall](ios-handling-events) pour savoir où l'enregistrer.

## Transmettre chaque affichage d'écran à vos outils d'analyse \{#forward-every-screen-view-to-your-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.

```swift showLineNumbers title="Swift"
func flowController(
    _ controller: AdaptyFlowController,
    didReceiveAnalyticEvent name: String,
    params: [String: any Sendable]
) {
    guard name == "flow_screen_showed" else { return }

    let screenId = params["instanceId"] as? String
    let screenOrder = params["screen_order"] as? Int

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

## Exécuter du code quand un utilisateur atteint la fin \{#run-code-when-a-user-reaches-the-end\}

`is_last_screen` vaut `true` sur un écran au-delà duquel le flow ne peut pas avancer. Utilisez-le pour débloquer 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.

```swift showLineNumbers title="Swift"
func flowController(
    _ controller: AdaptyFlowController,
    didReceiveAnalyticEvent name: String,
    params: [String: any Sendable]
) {
    guard name == "flow_screen_showed",
          params["is_last_screen"] as? Bool == true
    else { 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 y donner suite, et un flow avec des branches peut se terminer sur plusieurs écrans différents. Pour savoir que le flow lui-même a disparu, utilisez `flowControllerDidDisappear` dans UIKit, ou la closure `didDisappear` dans SwiftUI à la place.