---
title: "Android SDK'da çağrı sırası"
description: "Adapty SDK metodlarını doğru sırayla çağırarak kayıp premium erişim, eksik attribution ve aralıklı ADAPTY_NOT_INITIALIZED hatalarından kaçının."
---

`Adapty.activate()` tamamlanmadan başka hiçbir Adapty SDK metodunu çağırmamalısınız. Bu tamamlanana kadar SDK'nın hiçbir durumu yoktur. `activate()` öncesinde veya bununla eş zamanlı yapılan her çağrı [`ADAPTY_NOT_INITIALIZED`](android-sdk-error-handling) hatasıyla başarısız olur.
Uygulamanız kullanıcıların kimliğini doğruluyorsa ve başlatma sonrasında bir customer user ID topluyorsanız, bu noktada `Adapty.identify()` çağrısı yapın. `identify` tamamlanma callback'i tetiklenene kadar kullanıcı eylemi yöntemlerini çağırmayın. Bununla yarışan çağrılar ya callback'lerinde hata döndürür ya da aktivasyon sırasında oluşturulan anonim profile düşer. Bu olduğunda attribution, `appsflyer_id` gibi MMP ID'leri ve kurulum sahipliği tanımlanan profile her zaman aktarılmaz. Uygulamanız kullanıcıların kimliğini 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. Bunları önce başlatın ve `Adapty.activate` çağrısı yapmadan önce UID geri çağrılarını bekleyin. Aksi takdirde MMP ID'si kısa süreli anonim bir profile düşer ve her zaman tanımlanmış profile aktarılmaz. AppsFlyer'a özgü ayrıntılar için [AppsFlyer](appsflyer) sayfasına bakın.
## Doğru sıralama \{#the-correct-order\}

İzleyeceğiniz yol 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 yöntemlerini ç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şlatma sonrasında topluyorsa gereklidir.
Uygulama başlangıcında müşteri kullanıcı kimliğine sahipseniz, `activate()` çağrısından önce bunu `AdaptyConfig.Builder`'a aktarın (2a. adım). Bu yol hiçbir zaman anonim profil oluşturmaz, dolayısıyla 4. adım 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ında, ilk olarak                                                      | MMP'nin UID geri çağrısını bekleyin, örneğin `getAppsFlyerUID`.                                |
| 2a   | `Adapty.activate(context, AdaptyConfig.Builder("KEY").withCustomerUserId(...).build())`                       | Uygulama başlangıcında, adım 1'den sonra, müşteri kullanıcı kimliğiniz varsa             | Önerilir. Anonim profil hiçbir zaman oluşturulmaz.                                             |
| 2b   | `Adapty.activate(context, AdaptyConfig.Builder("KEY").build())` `customerUserId` olmadan                      | Uygulama başlangıcında, adım 1'den sonra, müşteri kullanıcı kimliğiniz yoksa (veya hiç toplanmıyorsa) | Adapty anonim bir profil oluşturur.                                                           |
| 3    | Her MMP için `Adapty.setIntegrationIdentifier("appsflyer_id", uid)`                                           | Adım 2'den sonra, herhangi bir kullanıcı işlemi çağrısından önce                              | MMP kimliklerinin doğru profile atanması için gereklidir.                                               |
| 4    | `Adapty.identify("YOUR_USER_ID") { error -> ... }`                                                            | 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 geri çağrısını kullanın. `identify` sırasında eş zamanlı çağrılar anonim profile düşebilir. |
| 5    | `getPaywall`, `getPaywallProducts`, `restorePurchases`, `makePurchase`, `updateAttribution`, `updateProfile`  | `identify` çağırıyorsanız adım 4'ten sonra; aksi hâlde 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ış kitleye karşı döndürülen paywallara yol açar.
:::
## Web2app ve web-funnel kurulumları \{#web2app-and-web-funnel-installs\}

Kullanıcılar web ödeme sayfasında (Stripe, Paddle) satın alım yapıp ardından uygulamayı yüklerse, cihazdaki ilk `activate()` çağrısı yeni bir anonim profil oluşturur. Bu profil, web profiliyle ilişkilendirilmez. Kimlik doğrulama akışınızdan veya install referrer'dan uygulama başlamadan önce kullanıcı ID'sini çözümleyebiliyorsanız, doğrudan `AdaptyConfig.Builder` içinde belirtin. 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 ödeme sayfasıyla göndereceğiniz metadata için şu sayfalara bakın:

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