---
title: "Kotlin Multiplatform SDK'da flow ekran görüntülemelerini takip edin"
description: "Kotlin Multiplatform uygulamanızda kullanıcı her flow ekranı açtığında bir olay 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çindeki bir ekranı her açtığında, SDK uygulamanıza `flow_screen_showed` olayını bildirir. Bunu Amplitude, Mixpanel veya kullandığınız herhangi bir ürün analitiğine 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, tamamlamaları ve ekran bazında çıkış oranlarını gösteriyor. Bu kılavuzu, aynı verilere kendi analitiğinizde ihtiyaç duyduğunuzda ve bunları Adapty'nin bilmediği etkinliklerle birleştirmek istediğinizde kullanın.
:::

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

İhtiyacınız olanlar:

- **Adapty Kotlin Multiplatform SDK v4 veya üzeri**: Flow analitik 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ınlandığında oluşturur; bu nedenle daha önce yayımlanmış 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.

Kotlin Multiplatform bu parametreleri ham bir JSON dizesi olarak iletir; bu nedenle herhangi birini okumadan önce `paramsJsonString` değerini çözümleyin.

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

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

Geri aramayı okumadan önce event adıyla eşleştirme yapın; çünkü bir flow, diğer olayları da aynı geri arama üzerinden raporlar.

```kotlin showLineNumbers title="Kotlin"
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.
}
```

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

`is_last_screen`, flow'un ilerleyemediği bir ekranda `true` olur. İçerik kilidini açmak, onboarding'i tamamlandı olarak işaretlemek veya kendi tamamlanma etkinliğinizi göndermek için bunu kullanabilirsiniz; builder'da bunun için bir düğme eylemi eklemenize gerek yoktur.

```kotlin showLineNumbers title="Kotlin"
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.
}
```

Sonuncu ekrana ulaşmak, flow'u kapatmakla aynı şey değildir. Kullanıcı son ekranı görüp 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 bunun yerine `flowViewDidDisappear` kullanın.