Capacitor SDK'da çağrı sırası
adapty.activate() tamamlanmadan başka hiçbir Adapty SDK metodunu çağıramazsınız. Bu metot sonuçlanmadan SDK’nın herhangi bir durumu yoktur. activate() bitmeden veya onunla paralel olarak yapılan her çağrı #2002 notActivated hatasıyla başarısız olur.
Uygulamanız kullanıcıları doğruluyorsa ve başlatma sonrasında bir müşteri kullanıcı kimliği topluyorsanız, adapty.identify() metodunu o noktada çağırın. identify tamamlanana kadar kullanıcı eylemine bağlı metodları çağırmayın. Bununla yarışan çağrılar ya #3006 profileWasChanged hatasıyla başarısız olur ya da aktivasyon sırasında oluşturulan anonim profile düşer. Bu olduğunda attribution, appsflyer_id gibi MMP kimlikleri ve kurulum sahipliği her zaman tanımlanan profile aktarılmaz. Uygulamanız kullanıcıları doğrulamıyorsa identify metodunu atlayın ve anonim profille çalışmaya devam edin.
MMP ve analitik SDK’ları (AppsFlyer, Adjust, Branch, PostHog) aynı kuralı izler. adapty.activate çağırmadan önce bunları başlatın ve UID geri çağrılarını bekleyin. Aksi takdirde MMP kimliği kısa ömürlü anonim bir profile düşer ve tanımlı profile her zaman aktarılmaz. AppsFlyer’a özgü ayrıntılar için AppsFlyer sayfasına bakın.
Doğru sıralama
Hangi adımları izleyeceğiniz iki şeye bağlıdır: müşteri kullanıcı kimliğini ne zaman öğrendiğiniz ve MMP ya da analitik 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 analitik 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 uygulama açıldıktan sonra topluyorsa gereklidir.
Uygulama başlatılırken customer user ID’niz varsa, bunu doğrudan
activate()içine aktarın (adım 2a). Bu yol hiçbir zaman anonim bir profil oluşturmaz, dolayısıyla 4. adım gereksizdir. | Adım | Çağrı | Ne Zaman | Notlar | |------|---------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------| | 1 | MMP veya analytics SDK’nızı başlatın (AppsFlyer, Adjust, PostHog, Branch) | Uygulama başlatılırken, ilk sırada | MMP’nin UID geri çağrısını bekleyin, örneğingetAppsFlyerUID. | | 2a |adapty.activate({ apiKey: '...', params: { customerUserId: '...' } })| Uygulama başlatılırken, 1. adımdan sonra, customer user ID’ye sahipseniz | Önerilir. Anonim profil hiç oluşturulmaz. | | 2b |adapty.activate({ apiKey: '...' })—customerUserIdolmadan | Uygulama başlatılırken, 1. adımdan sonra, customer user ID’ye sahip değilseniz (ya da hiç toplamıyorsanız) | Adapty anonim bir profil oluşturur. | | 3 | Her MMP içinadapty.setIntegrationIdentifier({ key: '...', value: '...' })| 2. adımdan sonra, herhangi bir kullanıcı eylemi çağrısından önce | MMP ID’lerinin doğru profile aktarılması için gereklidir. | | 4 |await adapty.identify({ customerUserId: 'YOUR_USER_ID' })| 3. adımdan sonra (ya da MMP yoksa 2. adımdan sonra), 5. adımdan önce — yalnızca kimlik doğrulamalı 2b yolunda | Her zamanawaitkullanın.identifysırasında eşzamanlı çağrılar#3006 profileWasChangedhatasına yol açar. | | 5 |getPaywall,getPaywallProducts,restorePurchases,makePurchase,updateAttribution,updateProfile|identifyçağrısı yapıyorsanız 4. adımdan sonra; aksi takdirde 3. adımdan sonra (ya da MMP yoksa 2. adımdan sonra) | Bu çağrılar kararlı bir profil gerektirir. |
Bu adımların atlanması; geri dönen kullanıcıların premium erişimini kaybetmesine, profillerde appsflyer_id eksikliğine ve yanlış kitle için paywall döndürülmesine yol açar.
Web2app ve web-funnel yüklemeleri
Kullanıcılar web üzerinden ödeme yapıp (Stripe, Paddle) sonradan uygulamayı yüklediğinde, cihazda ilk çalışan activate() yeni bir anonim profil oluşturur. Bu profil, web profiliyle ilişkilendirilmez. Müşteri kullanıcı kimliğini uygulama açılmadan önce çözümleyebiliyorsanız (kimlik doğrulama akışından veya install referrer’dan), doğrudan activate() içine aktarın. Aksi takdirde, identify({ customerUserId: 'YOUR_USER_ID' }) ve ardından restorePurchases çağrısı yapana kadar web satın alımı cihazda görünmez.
Her web ödemesiyle gönderilecek metadata için bkz.: