---
title: "iOS SDK'da flow ekran görüntülemelerini takip etme"
description: "iOS uygulamanızda bir kullanıcı flow ekranını her açtığında bir etkinlik alın ve bunu ürün analitiğinize iletin."
---

> **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`

Bir kullanıcı [flow](adapty-flow-builder) içinde her ekran açtığında, SDK uygulamanıza bir `flow_screen_showed` olayı bildirir. Bunu Amplitude, Mixpanel veya kullandığınız herhangi bir ürün analitiği aracına ileterek flow ekranlarını uygulamanızın diğer olaylarıyla birlikte analiz edebilirsiniz.

:::tip
Kullanıcıların bir flow'da ne kadar ilerlediğini görmek için herhangi bir koda ihtiyacınız yok — [flow metrikleri](flow-metrics) zaten Adapty Kontrol Paneli'nde görüntülemeleri, tamamlanmaları ve ekran başına çıkış oranlarını gösteriyor. Bu kılavuzu, aynı verilere kendi analitiğinizde ihtiyaç duyduğunuzda veya Adapty'nin bilmediği olaylarla birleştirmek istediğinizde kullanın.
:::

## Başlamadan önce \{#before-you-start\}

İhtiyacınız olanlar:

- **Adapty iOS SDK v4 veya üzeri**: Flow analytics callback'i önceki sürümlerde mevcut değildir.
- **Bu özellik yayınlandıktan sonra yayımlanan bir flow sürümü**: Adapty, ekran olaylarını bir flow yayımlandığında oluşturur; bu nedenle daha önce yayımladığınız bir flow hiçbir şey raporlamaz. Uygulamanıza hiç olay ulaşmıyorsa flow'un yeni bir sürümünü yayımlayıp tekrar deneyin.

## Ne Alırsınız \{#what-you-receive\}

Bir flow, kullanıcı ekranlarından birini her açtığında `flow_screen_showed` olayını raporlar. Adapty bu olayları kendi flow analitiğinde sayar ve uygulamanıza da iletir; böylece aynı dönüşüm hunisini kendi analitiğinizde oluşturabilirsiniz.

| Parametre        | Açıklama                                                                                                                  |
|:-----------------|:---------------------------------------------------------------------------------------------------------------------------------|
| `instanceId`     | Kullanıcının açtığı ekranın ID'si.                                                                                        |
| `screen_order`   | Ekranın flow içindeki sırası.                                                                                           |
| `is_last_screen` | Ekranın gidebileceği başka bir yer kalmadığında `true` olur. Dallanan bir flow birden fazla farklı ekranda sona erebilir ve her biri `true` raporlar. |

Bu olayda hem `isBackendEvent` hem de `isCustomerEvent` `true` değerini alır: Adapty saymaya devam eder ve uygulamanız da olayı alır.

Ekran görüntülemeleri, diğer tüm flow olaylarıyla aynı analytics callback'ine ulaşır. Bunu nereye kaydedeceğinizi öğrenmek için [Flow ve paywall olaylarını yönetme](ios-handling-events) bölümüne bakın.

## Her ekran görüntülemesini analitiğinize iletin \{#forward-every-screen-view-to-your-analytics\}

Aynı callback, bir flow'dan başka event'ler de raporladığı için başka herhangi bir şeyi okumadan önce event adıyla eşleşme yapın.

```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.
}
```

## Kullanıcı sona ulaştığında kod çalıştırma \{#run-code-when-a-user-reaches-the-end\}

`is_last_screen`, flow'un ilerisine geçilemeyen bir ekranda `true` değerini alır. Bunu içeriğin kilidini açmak, onboarding'i tamamlandı olarak işaretlemek veya builder'da bir buton aksiyonu eklemeden kendi tamamlanma event'inizi göndermek için kullanabilirsiniz.

```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.
}
```

Flow'un son ekranına ulaşmak, flow'un kapatılmasıyla aynı şey değildir. Kullanıcı son ekranı görebilir ve herhangi bir işlem yapmadan flow'u kapatabilir; ayrıca dallanan bir flow birden fazla farklı ekranda sona erebilir. Flow'un kendisinin kapandığını anlamak için UIKit'te `flowControllerDidDisappear`, SwiftUI'da ise `didDisappear` closure'ını kullanın.