---
title: "Unity SDK'da çağrı sırası"
description: "Adapty SDK metodlarını doğru sırayla çağırarak premium erişim kaybını, eksik attribution'ı ve aralıklı #2002 hatalarını önleyin."
---

`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`](unity-handle-errors#custom-network-codes) 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`](unity-handle-errors#custom-network-codes) 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](appsflyer) sayfasına bakın.
## Doğru sıralama \{#the-correct-order\}

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.                                                             |
:::important
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ı \{#web2app-and-web-funnel-installs\}

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:

- [Stripe](stripe)
- [Paddle](paddle)