Kotlin Multiplatform SDK'da çağrı sırası
Adapty.activate() tamamlanmadan başka hiçbir Adapty SDK metodunu çağıramazsınız. Tamamlanana kadar SDK’nın herhangi bir durumu yoktur. activate() ile eş zamanlı ya da öncesinde yapılan her çağrı aktivasyon hatasıyla sonuçlanır. Bkz. Kotlin Multiplatform SDK’da hataları yönetme.
Uygulamanız kullanıcıları doğruluyorsa ve başlatma sonrasında bir customer user ID topluyorsanız, o noktada Adapty.identify() çağırın. identify tamamlanana kadar kullanıcı eylemi gerektiren metotları çağırmayın. Bu metotlarla yarışan çağrılar ya hata döndürür ya da aktivasyon sırasında oluşturulan anonim profile düşer. Bu durumda attribution, appsflyer_id gibi MMP ID’leri ve kurulum sahipliği her zaman tanımlanan profile aktarılmaz. Uygulamanız kullanıcıları doğrulamıyorsa identify çağrısını atlayın ve anonim profille çalışmaya devam edin.
MMP ve analitik SDK’lar (AppsFlyer, Adjust, Branch, PostHog) aynı kurala tabidir. Adapty.activate çağrısından önce bunları başlatın ve UID callback’lerini bekleyin. Aksi takdirde MMP ID’si kısa ömürlü anonim bir profile düşer ve tanımlanmış profile her zaman aktarılamaz. AppsFlyer’a özgü detaylar için AppsFlyer sayfasına bakın.
Doğru sıra
Takip edeceğiniz yol iki şeye bağlıdır: müşteri kullanıcı kimliğini ne zaman öğrendiğiniz ve bir MMP ya da analytics SDK kullanıp kullanmadığınız.
- 2. ve 5. adımlar: Her uygulama için zorunludur. Önce SDK’yı etkinleştirin, ardından SDK metodlarını çağırın.
- 1. ve 3. adımlar: Yalnızca bir MMP veya analytics SDK entegre ediyorsanız gereklidir (AppsFlyer, Adjust, Branch, PostHog).
- 4. adım: Yalnızca uygulamanız kullanıcıların kimliğini doğruluyorsa ve müşteri kullanıcı kimliğini başlatma sonrasında topluyorsa gereklidir.
Uygulama açılışında müşteri kullanıcı kimliğiniz varsa,
activate()çağrısından önceAdaptyConfig.Builder’a aktarın (adım 2a). Bu yol hiçbir zaman anonim bir profil oluşturmaz, dolayısıyla adım 4 gereksizdir. | Adım | Çağrı | Ne Zaman | Notlar | |------|---------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------| | 1 | MMP veya analitik SDK’nızı başlatın (AppsFlyer, Adjust, PostHog, Branch) | Uygulama açılışı, ilk sırada | MMP’nin UID callback’ini bekleyin, örneğingetAppsFlyerUID. | | 2a |Adapty.activate(configuration = AdaptyConfig.Builder("KEY").withCustomerUserId(...).build())| Uygulama açılışı, 1. adımdan sonra, customer user ID’ye sahipseniz | Önerilir. Anonim profil hiçbir zaman oluşturulmaz. | | 2b |Adapty.activate(configuration = AdaptyConfig.Builder("KEY").build())withCustomerUserIdolmadan | Uygulama açılışı, 1. adımdan sonra, customer user ID’niz yoksa (veya hiç toplamıyorsanız) | Adapty anonim bir profil oluşturur. | | 3 | Her MMP içinAdapty.setIntegrationIdentifier("appsflyer_id", uid)| 2. adımdan sonra, kullanıcı işlemi çağrısından önce | MMP ID’lerinin doğru profile düşmesi için gereklidir. | | 4 |Adapty.identify("YOUR_USER_ID").onSuccess { ... }.onError { ... }| 3. adımdan sonra (MMP yoksa 2. adımdan sonra), 5. adımdan önce — yalnızca kimlik doğrulama ile 2b yolunda | Kullanıcı işlemi çağrısından önceonSuccessbekleyin.identifysırasında yapılan eş zamanlı çağrılar anonim profile düşebilir. | | 5 |getPaywall,getPaywallProducts,restorePurchases,makePurchase,updateAttribution,updateProfile|identifyçağırıyorsanız 4. adımdan sonra; aksi hâlde 3. adımdan (MMP yoksa 2. adımdan) sonra | Bu çağrılar kararlı bir profile ihtiyaç duyar. |
Bu adımların atlanması, geri dönen kullanıcıların premium erişimini kaybetmesine, profillerde eksik appsflyer_id bilgisine ve yanlış kitle için döndürülen paywallara yol açar.
Web2app ve web-funnel kurulumları
Kullanıcılar bir web checkout’u (Stripe, Paddle) üzerinden satın alım yapıp daha sonra native uygulamayı yüklerse, cihazdaki ilk activate() çağrısı yeni bir anonim profil oluşturur. Bu profil, web profiliyle ilişkilendirilmez. Customer user ID’yi uygulama başlatılmadan önce (auth akışından veya install referrer’dan) çözümleyebiliyorsanız, doğrudan AdaptyConfig.Builder’a aktarın. Aksi takdirde, identify("YOUR_USER_ID") ve ardından restorePurchases çağrısını yapana kadar web satın alımı cihazda görünmez.
Her web checkout’uyla birlikte gönderilecek metadata için bakınız: