Unity SDK'da çağrı sırası

Adapty.Activate() tamamlanmadan diğer hiçbir Adapty SDK metodunu çağırmamalısınız. Tamamlanma callback’i tetiklenmeden SDK’nın herhangi bir durumu olmaz. Activate() tamamlanmadan veya onunla paralel olarak yapılan her çağrı #2002 notActivated hatasıyla başarısız olur. Uygulamanız kullanıcıların kimliğini doğruluyorsa ve başlatma sonrasında bir müşteri kullanıcı kimliği topluyorsanız, o noktada Adapty.Identify() çağrısı yapın. Identify geri çağrısı tetiklenene kadar kullanıcı eylemine bağlı metodları çağırmayın. Bu metodlarla 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 durumda attribution, appsflyer_id gibi MMP kimlikleri ve kurulum sahipliği her zaman tanımlanan profile aktarılmaz. Uygulamanız kullanıcı kimlik doğrulaması yapmı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 kimliği, kısa süreli anonim bir profile atanır ve bu kimlik tanımlanmış profile her zaman aktarılamayabilir. 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 bir 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 (AppsFlyer, Adjust, Branch, PostHog) entegre ediyorsanız gereklidir.
  • 4. adım: Yalnızca uygulamanız kullanıcıları doğruluyorsa ve müşteri kullanıcı kimliğini başlatma sonrasında topluyorsa gereklidir. Uygulama başlangıcında müşteri kullanıcı kimliğiniz varsa, doğrudan Activate() içine aktarın (adım 2a). Bu yol hiçbir zaman anonim profil oluşturmaz, dolayısıyla adım 4 gerekli değildir. | Adım | Çağrı | Ne zaman | Notlar | |------|---------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------| | 1 | MMP veya analitik SDK’nızı başlatın (AppsFlyer, Adjust, PostHog, Branch) | Uygulama başlangıcı, ilk sırada | MMP’nin UID callback’ini bekleyin, örneğin getAppsFlyerId. | | 2a | Builder üzerinde SetCustomerUserId ayarlanmış hâlde Adapty.Activate(builder.Build(), ...) | Uygulama başlangıcı, adım 1’den sonra, müşteri kullanıcı ID’niz varsa | Önerilir. Anonim profil hiçbir zaman oluşturulmaz. | | 2b | SetCustomerUserId olmadan Adapty.Activate(builder.Build(), ...) | Uygulama başlangıcı, adım 1’den sonra, müşteri kullanıcı ID’niz yoksa (veya hiç toplamıyorsanız) | Adapty anonim bir profil oluşturur. | | 3 | Her MMP için Adapty.SetIntegrationIdentifier(key, value, callback) | Adım 2’den sonra, herhangi bir kullanıcı işlemi çağrısından önce | MMP ID’lerinin doğru profile ulaşması için gereklidir. | | 4 | Adapty.Identify("YOUR_USER_ID", callback) | Adım 3’ten sonra (veya MMP yoksa adım 2’den sonra), adım 5’ten önce — yalnızca kimlik doğrulamalı 2b yolunda | Tamamlama callback’ini bekleyin. Identify sırasında yapılan eş zamanlı çağrılar #3006 profileWasChanged hatası üretir. | | 5 | GetPaywall (SDK v4’te GetFlow), GetPaywallProducts, RestorePurchases, MakePurchase, UpdateAttribution, UpdateProfile | Identify çağırıyorsanız adım 4’ten sonra; çağırmıyorsanız adım 3’ten (veya MMP yoksa adım 2’den) sonra | Bu çağrılar kararlı bir profil gerektirir. |

Bu adımları atlamak; 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’unda (Stripe, Paddle) satın alma yapıp ardından native uygulamayı yüklerse, cihazın ilk Activate() çağrısı yeni bir anonim profil oluşturur. Bu profil, web profiliyle ilişkilendirilmez. Uygulama başlatılmadan önce customer user ID’yi çözümleyebiliyorsanız (auth akışınızdan veya install referrer’dan), bunu doğrudan Activate() içine aktarın. Aksi takdirde web satın alımı, Identify("YOUR_USER_ID") ve ardından RestorePurchases çağrısı yapılana kadar cihazda görünmez.

Her web checkout’uyla gönderilecek metadata için şu sayfalara bakın: