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

:::important
Bu kılavuz, kendi kimlik doğrulama sisteminiz varsa sizin için hazırlanmıştır. Burada, Adapty'deki kullanıcı profilleriyle mevcut kimlik doğrulama sisteminizi nasıl uyumlu hale getireceğinizi öğreneceksiniz.
:::

Kullanıcı satın almalarını nasıl yöneteceğiniz, uygulamanızın kimlik doğrulama modeline göre değişir:
- Uygulamanız backend kimlik doğrulaması kullanmıyorsa 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.

**Temel kavramlar**:
- **Profiller**, SDK'nın çalışması için gereken varlıklardır. Adapty bunları otomatik olarak oluşturur.
- Anonim **(customer user ID olmadan)** veya tanımlanmış **(customer user ID ile)** olabilirler.
- Adapty'deki profilleri kendi iç kimlik doğrulama sisteminizle eşleştirmek için **customer user ID** sağlarsınız.

Anonim ve tanımlanmış kullanıcılar arasındaki farklar şunlardır:

|                         | Anonim kullanıcılar                                   | Tanımlanmış kullanıcılar                                                        |
|-------------------------|-------------------------------------------------------|---------------------------------------------------------------------------------|
| **Satın alma yönetimi** | Mağaza düzeyinde satın alma geri yükleme              | Customer user ID 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 sürekliliği**    | Anonim kullanıcı verileri uygulama kurulumuna bağlıdır | Tanımlanmış kullanıcı verileri uygulama kurulumları arasında devam eder         |

## Anonim kullanıcılar \{#anonymous-users\}

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ı uygulamada bir şey satın aldığında, bu satın alma **Adapty profiliyle ve mağaza hesabıyla ilişkilendirilir**.
3. Kullanıcı uygulamayı **yeniden yüklediğinde** veya **yeni bir cihaza** yüklediğinde, Adapty **etkinleştirme sırasında yeni bir anonim profil oluşturur**.
4. Kullanıcı uygulamanızda daha önce satın alma yapmışsa, varsayılan olarak satın almaları SDK etkinleştirmesinde App Store'dan otomatik olarak senkronize edilir.

Yani anonim kullanıcılarda her kurulumda yeni profil oluşturulur; ancak bu bir sorun değildir çünkü Adapty analizinde [yeni kurulum olarak neyin sayılacağını yapılandırabilirsiniz](general#4-installs-definition-for-analytics).

Anonim kullanıcılar için kurulumları **cihaz kimliklerine** göre saymanız gerekir. Bu durumda, yeniden kurulumlar dahil olmak üzere bir cihazdaki her uygulama kurulumu bir kurulum olarak sayılır.

## Tanımlanmış kullanıcılar \{#identified-users\}

Uygulamada kullanıcıları tanımlamak için iki seçeneğiniz vardır:

- [**Giriş/kayıt sırasında:**](#during-loginsignup) Kullanıcılar uygulamanız başladıktan sonra oturum açıyorsa, kimlik doğruladıklarında `identify()` metodunu customer user ID ile çağırın.

- [**SDK etkinleştirmesi sırasında:**](#during-the-sdk-activation) Uygulama başladığında zaten bir customer user ID'niz varsa, `activate()` çağrısında gönderin.

:::important
Varsayılan olarak, Adapty halihazırda başka bir Customer User ID ile ilişkilendirilmiş bir Customer User ID'den satın alma aldığında, access level paylaşılır; böylece her iki profil de ücretli erişime sahip olur. Bu ayarı, ücretli erişimi bir profilden diğerine aktaracak veya paylaşımı tamamen devre dışı bırakacak şekilde yapılandırabilirsiniz. Daha fazla ayrıntı 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şladıktan sonra tanımlıyorsanız (örneğin uygulamanıza giriş yaptıktan veya kayıt olduktan sonra), customer user ID'yi ayarlamak için `identify` metodunu kullanın.

- Bu customer user ID'yi **daha önce kullanmadıysanız**, Adapty bunu otomatik olarak mevcut profile bağlar.
- Bu customer user ID'yi **daha önce kullanıcıyı tanımlamak için kullandıysanız**, Adapty bu customer user ID ile ilişkili profille çalışmaya geçer.

:::important
Customer user ID'ler her kullanıcı için benzersiz olmalıdır. Parametre değerini sabit kodlarsanız, tüm kullanıcılar tek bir kullanıcı olarak kabul edilir.
:::

<Tabs groupId="current-os" queryString>
<TabItem value="kotlin" label="Kotlin" default>

```kotlin showLineNumbers
Adapty.identify("YOUR_USER_ID") { error -> // Unique for each user
    if (error == null) {
        // successful identify
    }
}
```

</TabItem>
<TabItem value="java" label="Java" default>
```java showLineNumbers
// User IDs must be unique for each user
Adapty.identify("YOUR_USER_ID", error -> {
    if (error == null) {
        // successful identify
    }
});
```
</TabItem>
</Tabs>

### SDK etkinleştirmesi sırasında \{#during-the-sdk-activation\}

SDK'yı etkinleştirdiğinizde zaten bir customer user ID biliyorsanız, `identify` metodunu ayrıca çağırmak yerine `activate` metodunda gönderebilirsiniz.

Customer user ID'yi bilmenize rağmen yalnızca etkinleştirmeden sonra ayarlarsanız, etkinleştirme sırasında Adapty yeni bir anonim profil oluşturacak ve `identify` metodunu çağırdıktan sonra mevcut profile geçecektir.

Mevcut bir customer user ID (daha önce kullandığınız) veya yeni bir tane iletebilirsiniz. Yeni bir tane iletirseniz, etkinleştirme sırasında oluşturulan yeni profil otomatik olarak customer user ID'ye bağlanır.

:::note
Varsayılan olarak, anonim profil oluşturma analiz panolarını etkilemez çünkü kurulumlar cihaz kimliklerine göre sayılır.

Bir cihaz kimliği, cihazdaki mağazadan yapılan tek bir uygulama kurulumunu temsil eder ve yalnızca uygulama yeniden yüklendikten sonra yeniden oluşturulur.
Bu, bunun ilk mi yoksa tekrarlanan bir kurulum mu olduğuna veya mevcut bir customer user ID kullanılıp kullanılmadığına bağlı değildir.

Profil oluşturmak (SDK etkinleştirmesinde veya çıkış yapıldığında), oturum açmak veya uygulamayı yeniden yüklemeden yükseltmek ek kurulum olayları oluşturmaz.

Kurulumları cihazlar yerine benzersiz kullanıcılara göre saymak istiyorsanız, **App settings** bölümüne gidin ve [**Installs definition for analytics**](general#4-installs-definition-for-analytics) seçeneğini yapılandırın.
:::

<Tabs>
<TabItem value="kotlin" label="Kotlin" default>

```kotlin showLineNumbers
AdaptyConfig.Builder("PUBLIC_SDK_KEY")
    .withCustomerUserId("user123") // Customer user IDs must be unique for each user. If you hardcode the parameter value, all users will be considered as one.
    .build()
```
</TabItem>
<TabItem value="java" label="Java" default>

```java showLineNumbers
new AdaptyConfig.Builder("PUBLIC_SDK_KEY")
    .withCustomerUserId("user123") // Customer user IDs must be unique for each user. If you hardcode the parameter value, all users will be considered as one.
    .build();
```
</TabItem>
</Tabs>

### Kullanıcı oturumunu kapatma \{#log-users-out\}

Kullanıcıların oturumunu kapatmak için bir düğmeniz varsa, `logout` metodunu kullanın.

:::important
Kullanıcı oturumunun kapatılması, kullanıcı için yeni bir anonim profil oluşturur.
:::

<Tabs groupId="current-os" queryString>
<TabItem value="kotlin" label="Kotlin" default>

```kotlin showLineNumbers
Adapty.logout { error ->
    if (error == null) {
        // successful logout
    }
}
```

</TabItem>
<TabItem value="java" label="Java" default>
```java showLineNumbers
Adapty.logout(error -> {
    if (error == null) {
        // successful logout
    }
});
```
</TabItem>
</Tabs>

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

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

Kullanıcılarınız uygulamanıza giriş yapmadan önce ve sonra satın alma yapabiliyorsa, giriş yaptıktan sonra erişimlerini koruduklarından emin olmanız gerekir:

1. Oturumu kapalı bir kullanıcı satın alma yaptığında, Adapty bunu anonim profil kimliğine bağlar.
2. Kullanıcı hesabına giriş yaptığında, Adapty tanımlanmış profiliyle çalışmaya geçer.
    - Yeni bir customer user ID ise (örneğin satın alma kayıt öncesinde yapılmışsa), Adapty customer user ID'yi mevcut profile atar; böylece tüm satın alma geçmişi korunur.
    - Mevcut bir customer user ID ise (customer user ID zaten bir profile bağlıysa), profil geçişinden sonra gerçek access level'ı almanız gerekir. Tanımlamadan hemen sonra [`getProfile`](android-check-subscription-status) metodunu çağırabilir veya verilerin otomatik olarak senkronize olması için [profil güncellemelerini dinleyebilirsiniz](android-check-subscription-status).

## Sonraki adımlar \{#next-steps\}

Tebrikler! Uygulamanızda uygulama içi ödeme mantığını hayata geçirdiniz! Uygulamanızın monetizasyonunda başarılar dileriz!

Adapty'den daha fazla yararlanmak için şu konuları inceleyebilirsiniz:
- [**Test**](troubleshooting-test-purchases): Her şeyin beklendiği gibi çalıştığından emin olun
- [**Onboarding'ler**](android-onboardings): Onboarding'lerle kullanıcıları etkileyin ve elde tutmayı artırın
- [**Entegrasyonlar**](configuration): Tek satır kodla pazarlama attribution ve analiz hizmetleriyle entegre olun
- [**Özel profil özellikleri belirleme**](android-setting-user-attributes): Kullanıcı profillerine özel özellikler ekleyin ve segment'ler oluşturun; böylece A/B testleri başlatabilir veya farklı kullanıcılara farklı paywall'lar gösterebilirsiniz