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

`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`](capacitor-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, `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`](capacitor-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 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](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 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ğin `getAppsFlyerUID`.                                |
| 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: '...' })` — `customerUserId` olmadan                                                 | 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çin `adapty.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 zaman `await` kullanın. `identify` sırasında eşzamanlı çağrılar `#3006 profileWasChanged` hatası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.                                                             |
:::important
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 \{#web2app-and-web-funnel-installs\}

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.:
- [Stripe](stripe)
- [Paddle](paddle)