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şlatma, ilk önce | MMP’nin UID callback’ini bekleyin, örneğin getAppsFlyerId. | | 2a | SetCustomerUserId ayarlanmış builder ile Adapty.Activate(builder.Build(), ...) | Adım 1’den sonra, uygulama başlatma sırasında, müşteri kullanıcı kimliğine sahipseniz | Önerilir. Anonim profil hiçbir zaman oluşturulmaz. | | 2b | SetCustomerUserId olmadan Adapty.Activate(builder.Build(), ...) | Adım 1’den sonra, uygulama başlatma sırasında, müşteri kullanıcı kimliğiniz 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ı eylemi çağrısından önce | MMP kimliklerinin doğru profile düşmesi 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ğrulama ile 2b yolunda | Tamamlama callback’ini bekleyin. Identify sırasında yapılan eş zamanlı çağrılar #3006 profileWasChanged hatası üretir. | | 5 | GetPaywall, GetPaywallProducts, RestorePurchases, MakePurchase, UpdateAttribution, UpdateProfile | Identify çağırıyorsanız adım 4’ten sonra; değilse adım 3’ten sonra (veya MMP yoksa adım 2’den sonra) | Bu çağrılar kararlı bir profile ihtiyaç duyar. |

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: