---
title: "React Native SDK'da çağrı sırası"
description: "Premium erişim kayıplarını, eksik attribution verilerini ve aralıklı #2002 hatalarını önlemek için Adapty SDK metodlarını doğru sırayla çağırın."
---

`adapty.activate()` tamamlanmadan başka hiçbir Adapty SDK metodunu çağıramazsınız. Bu metod çözüme kavuşana kadar SDK'nın herhangi bir durumu yoktur. `activate()` tamamlanmadan veya bununla paralel olarak yapılan her çağrı [`#2002 notActivated`](react-native-handle-errors#custom-network-codes) 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, o noktada `adapty.identify()` çağrısı yapın. `identify` tamamlanana kadar kullanıcı eylemine bağlı metodları çağırmayın. Bu çağrıyla yarışan işlemler ya [`#3006 profileWasChanged`](react-native-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 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 geri çağrımlarını bekleyin. Aksi takdirde MMP kimliği kısa ömürlü anonim bir profile bağlanır ve tanımlanmış profile her zaman aktarılamaz. AppsFlyer'a özgü ayrıntılar için bkz. [AppsFlyer](appsflyer).
## Doğru sıra \{#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. 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 başlatmadan sonra topluyorsa gereklidir.
Uygulama başlangıcında müşteri kullanıcı kimliğine sahipseniz, onu 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'e gerek yoktur.
| Adım | Çağrı | Ne Zaman | Notlar |
|------|---------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------|
| 1    | MMP veya analytics SDK'nızı başlatın (AppsFlyer, Adjust, PostHog, Branch)                                     | Uygulama açılışı, ilk adım                                                             | MMP'nin UID callback'ini bekleyin, örneğin `getAppsFlyerUID`.                                  |
| 2a   | `adapty.activate('YOUR_PUBLIC_SDK_KEY', { customerUserId: 'YOUR_USER_ID' })`                                  | Uygulama açılışı, adım 1'den sonra, müşteri kullanıcı kimliğiniz varsa                 | Önerilir. Anonim profil hiçbir zaman oluşturulmaz.                                             |
| 2b   | `adapty.activate('YOUR_PUBLIC_SDK_KEY')` ile `customerUserId` olmadan                                         | Uygulama açılışı, adım 1'den sonra, müşteri kullanıcı kimliğiniz yoksa (veya hiç toplamıyorsanız) | Adapty anonim bir profil oluşturur.                                                            |
| 3    | Her MMP için `adapty.updateAttribution(data, source, networkUserId)`                                          | Adım 2'den sonra, herhangi bir kullanıcı işlemi çağrısından önce                       | MMP kimliklerinin doğru profile düşmesi için gereklidir.                                       |
| 4    | `await adapty.identify('YOUR_USER_ID')`                                                                       | Adım 3'ten sonra (veya MMP yoksa adım 2'den sonra), adım 5'ten önce — yalnızca kimlik doğrulamayla 2b yolunda | Her zaman `await` kullanın. `identify` sırasındaki eşzamanlı çağrılar `#3006 profileWasChanged` hatasını üretir. |
| 5    | `getPaywall`, `getPaywallProducts`, `restorePurchases`, `makePurchase`, `updateAttribution`, `updateProfile`  | `identify` çağırıyorsanız adım 4'ten sonra; aksi takdirde adım 3'ten sonra (veya MMP yoksa adım 2'den sonra) | Bu çağrılar kararlı bir profil gerektirir.                                                     |
:::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 (Stripe, Paddle) üzerinden satın alım yapıp daha sonra uygulamayı yüklerse, cihazda ilk `activate()` çağrısı yeni ve anonim bir profil oluşturur. Bu profil, web profiliyle ilişkilendirilmez. Auth akışından veya install referrer'dan müşteri kullanıcı kimliğini uygulama açılmadan önce çözebiliyorsanız, doğrudan `activate()` içine aktarın. Aksi takdirde web satın alımı, `identify('YOUR_USER_ID')` ve ardından `restorePurchases` çağırana kadar cihazda görünmez kalır.

Her web checkout ile birlikte gönderilecek metadata için şuraya bakın:

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