iOS SDK'da flow ekran görüntülemelerini takip etme

Bir kullanıcı flow 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 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

İ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

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.

ParametreAçıklama
instanceIdKullanıcının açtığı ekranın ID’si.
screen_orderEkranın flow içindeki sırası.
is_last_screenEkranı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 bölümüne bakın.

Her ekran görüntülemesini analitiğinize iletin

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.

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

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.

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.