---
title: "Capacitor SDK'da kullanıcıları tanımlama"
description: "Capacitor'da uygulama içi abonelik yönetimi için Adapty kurulum hızlı başlangıç kılavuzu."
---

Kullanıcıların satın almalarını nasıl yönettiğiniz, uygulamanızın kimlik doğrulama modeline bağlıdır:
- Uygulamanız backend kimlik doğrulaması kullanmıyor ve kullanıcı verilerini depolamıyorsa, [anonim kullanıcılarla ilgili bölüme](#anonymous-users) bakın.
- Uygulamanızda backend kimlik doğrulaması varsa (veya olacaksa), [tanımlanmış kullanıcılarla ilgili bölüme](#identified-users) bakın.
:::tip
**Temel kavramlar**:
- **Profiller**, SDK'nın çalışması için gereken varlıklardır. Adapty bunları otomatik olarak oluşturur. Anonim (customer user ID'siz) veya tanımlı (customer user ID'li) olabilirler.
- **Customer user ID'ler**, kullanıcılarınızı Adapty profillerine bağlamak için **sizin oluşturduğunuz** isteğe bağlı tanımlayıcılardır.
:::

Anonim ve tanımlı kullanıcılar arasındaki farklar şunlardır:
|                         | Anonim kullanıcılar                                           | Tanımlı kullanıcılar                                                                  |
|-------------------------|---------------------------------------------------------------|---------------------------------------------------------------------------------------|
| **Satın alma yönetimi** | Mağaza düzeyinde satın alma geri yükleme                      | Müşteri kullanıcı kimliği aracılığıyla cihazlar arası satın alma geçmişini koruma     |
| **Profil yönetimi**     | Her yeniden yüklemede yeni profil                             | Oturumlar ve cihazlar genelinde aynı profil                                           |
| **Veri kalıcılığı**     | Anonim kullanıcıların verileri cihaza/kuruluma bağlıdır       | Tanımlı kullanıcıların verileri cihazlar ve oturumlar genelinde kalıcıdır             |
## Anonim kullanıcılar \{#anonymous-users\}

Bir backend kimlik doğrulamanız yoksa, **uygulama kodunda kimlik doğrulamayı yönetmenize gerek yoktur**:
1. SDK uygulamanın ilk açılışında etkinleştirildiğinde, Adapty **kullanıcı için yeni bir profil oluşturur**.
2. Kullanıcı uygulama içinde herhangi bir şey satın aldığında, bu satın alma **kullanıcının Adapty profili ve mağaza hesabıyla ilişkilendirilir**.
3. Kullanıcı uygulamayı **yeniden yüklediğinde** veya **yeni bir cihaza** kurduğunda, Adapty **etkinleştirme sırasında yeni ve boş bir profil oluşturur**.
4. Kullanıcı daha önce uygulamanızdan satın alma yapmışsa, bu satın almalar varsayılan olarak SDK etkinleştirildiğinde App Store'dan otomatik olarak senkronize edilir.
:::note
Yedekten geri yükleme işlemleri, yeniden kurulumdan farklı davranır. Varsayılan olarak, bir kullanıcı yedekten geri yükleme yaptığında SDK önbelleğe alınmış verileri korur ve yeni bir profil oluşturmaz. Bu davranışı `clearDataOnBackup` ayarını kullanarak yapılandırabilirsiniz. [Daha fazla bilgi](sdk-installation-capacitor#clear-data-on-backup-restore).
:::
## Tanımlanan kullanıcılar \{#identified-users\}

- Bir profilin henüz customer user ID'si yoksa (yani **kullanıcı oturum açmamışsa**), bir customer user ID gönderdiğinizde bu ID söz konusu profille ilişkilendirilir.
- Bu bir **yeniden kurulum, oturum açma veya yeni bir cihazdan kurulumsa** ve daha önce o kullanıcının customer user ID'sini gönderdiyseniz, yeni bir profil oluşturulmaz. Bunun yerine, customer user ID ile ilişkilendirilmiş mevcut profile geçiş yapılır.

Uygulamada kullanıcıları tanımlamak için iki seçeneğiniz var:
- [**Giriş/kayıt sırasında:**](#during-loginsignup) Kullanıcılar uygulama başladıktan sonra giriş yapıyorsa, kimlik doğrulama sırasında bir müşteri kullanıcı kimliğiyle `identify()` işlevini çağırın.

- [**SDK etkinleştirme sırasında:**](#during-the-sdk-activation) Uygulama başlarken halihazırda bir müşteri kullanıcı kimliğiniz varsa, `activate()` çağrısı yaparken bunu gönderin.
:::important
Varsayılan olarak, Adapty bir satın alma işlemini başka bir Customer User ID ile ilişkilendirilmiş bir Customer User ID'den aldığında, access level paylaşılır; yani her iki profil de ücretli erişime sahip olur. Bu ayarı, ücretli erişimi bir profilden diğerine aktaracak ya da paylaşımı tamamen devre dışı bırakacak şekilde yapılandırabilirsiniz. Daha fazla bilgi için [makaleye](general#6-sharing-paid-access-between-user-accounts) bakın.
:::

  <img src="/assets/shared/img/identify-diagram.webp"
  style={{
    border: '1px solid #727272', /* border width and color */
    width: '700px', /* image width */
    display: 'block', /* for alignment */
    margin: '0 auto' /* center alignment */
  }}
/>

### Giriş/kayıt sırasında \{#during-loginsignup\}

Kullanıcıları uygulama başlatıldıktan sonra tanımlıyorsanız (örneğin, uygulamanıza giriş yaptıktan veya kaydolduktan sonra), müşteri kullanıcı kimliğini ayarlamak için `identify` metodunu kullanın.

- Bu müşteri kullanıcı kimliğini **daha önce kullanmadıysanız**, Adapty bunu otomatik olarak mevcut profille ilişkilendirir.
- Bu müşteri kullanıcı kimliğini **daha önce kullanıcıyı tanımlamak için kullandıysanız**, Adapty bu müşteri kullanıcı kimliğiyle ilişkili profille çalışmaya geçer.
:::tip
Bir müşteri kullanıcı kimliği oluştururken, bunu kullanıcı verilerinizle birlikte kaydedin. Böylece yeni bir cihazdan giriş yaptıklarında veya uygulamayı yeniden yüklediklerinde aynı kimliği gönderebilirsiniz.
:::

Diğer SDK metodlarını çağırmadan önce her zaman `identify` metodunu `await` ile bekleyin. Eş zamanlı çağrılar `#3006 profileWasChanged` hatasına yol açar ya da anonim profile düşer. Daha fazla bilgi için bkz. [Capacitor SDK'da çağrı sırası](capacitor-sdk-call-order).

```typescript showLineNumbers
try {
  await adapty.identify({ customerUserId: "YOUR_USER_ID" });
  // successfully identified
} catch (error) {
  // handle the error
}
```
### SDK etkinleştirme sırasında \{#during-the-sdk-activation\}

SDK'yı etkinleştirdiğinizde müşteri kullanıcı kimliğini zaten biliyorsanız, `identify` metodunu ayrıca çağırmak yerine doğrudan `activate` metodunda gönderebilirsiniz.

Müşteri kullanıcı kimliğini bilmenize rağmen bunu etkinleştirmeden sonra ayarlıyorsanız, etkinleştirme anında Adapty yeni bir boş profil oluşturur ve `identify` metodunu çağırdıktan sonra mevcut profile geçer.
Mevcut bir müşteri kullanıcı kimliği (daha önce kullandığınız) ya da yeni bir tane girebilirsiniz. Yeni bir tane girerseniz, aktivasyon sırasında oluşturulan yeni profil otomatik olarak müşteri kullanıcı kimliğine bağlanır.

:::tip
Oluşturulan boş profilleri kontrol paneli analizlerinden dışlamak için **App settings** bölümüne gidin ve [**Installs definition for analytics**](general#4-installs-definition-for-analytics) ayarını yapılandırın.
:::

```typescript showLineNumbers
await adapty.activate({
  apiKey: "YOUR_PUBLIC_SDK_KEY",
  params: {
    customerUserId: "YOUR_USER_ID"
  }
});
```
### Kullanıcı oturumunu kapatma \{#log-users-out\}

Kullanıcıların oturumunu kapatmak için bir butonunuz varsa, `logout` metodunu kullanın. Bu işlem kullanıcı için yeni bir anonim profil kimliği oluşturur.

```typescript showLineNumbers
try {
  await adapty.logout();
  // successful logout
} catch (error) {
  // handle the error
}
```

:::info
Kullanıcıları uygulamaya tekrar giriş yaptırmak için `identify` metodunu kullanın.
:::

### Giriş yapmadan satın alma izni \{#allow-purchases-without-login\}

Kullanıcılarınız uygulamanıza giriş yapmadan önce de sonra da satın alma yapabiliyorsa, ek bir kurulum yapmanıza gerek yok:
İşte nasıl çalıştığı:
1. Oturumu kapalı bir kullanıcı satın alma yaptığında, Adapty bunu anonim profil ID'sine bağlar.
2. Kullanıcı hesabına giriş yaptığında, Adapty tanımlanmış profiliyle çalışmaya geçer.
    - Mevcut bir customer user ID ise (customer user ID zaten bir profile bağlıysa), Adapty işlemleri otomatik olarak senkronize eder.
    - Yeni bir customer user ID ise (örneğin, satın alma kayıt olmadan önce yapılmışsa), Adapty customer user ID'yi mevcut profile atar; böylece tüm satın alma geçmişi korunur.