---
title: "React Native SDK'da kullanıcı nitelikleri ayarlama"
description: "Adapty SDK ile React Native uygulamanızda kullanıcı niteliklerini ve profil verilerini nasıl güncelleyeceğinizi öğrenin."
---

Uygulamanızın kullanıcılarına e-posta, telefon numarası gibi isteğe bağlı nitelikler ekleyebilirsiniz. Bu nitelikleri kullanarak kullanıcı [segmentleri](segments) oluşturabilir ya da bunları CRM'de görüntüleyebilirsiniz.

### Kullanıcı niteliklerini ayarlama \{#setting-user-attributes\}

Kullanıcı niteliklerini ayarlamak için `.updateProfile()` metodunu çağırın:

```typescript showLineNumbers
// Only for TypeScript validation

const params: AdaptyProfileParameters = {
    email: 'email@email.com',
    phoneNumber: '+18888888888',
    firstName: 'John',
    lastName: 'Appleseed',
    gender: 'other',
    birthday: new Date().toISOString(),
};

try {
    await adapty.updateProfile(params);
} catch (error) {
    // handle `AdaptyError`
}
```

Daha önce `updateProfile` metoduyla ayarladığınız niteliklerin sıfırlanmayacağını unutmayın.

:::tip

Adapty SDK'nın bir mobil uygulamaya nasıl entegre edildiğini gerçek bir örnekle görmek ister misiniz? Tam kurulumu, paywall'ların gösterimini, satın alma işlemlerini ve diğer temel işlevleri içeren [örnek uygulamalarımıza](sample-apps) göz atın.

:::

### İzin verilen anahtarlar listesi \{#the-allowed-keys-list\}

`AdaptyProfileParameters.Builder` için izin verilen `<Key>` anahtarları ve `<Value>` değerleri aşağıda listelenmiştir:

| Anahtar | Değer |
|---|-----|
| <p>email</p><p>phoneNumber</p><p>firstName</p><p>lastName</p> | String |
| gender | Enum, izin verilen değerler: `female`, `male`, `other` |
| birthday | Date |

### Özel kullanıcı nitelikleri \{#custom-user-attributes\}

Kendi özel niteliklerinizi tanımlayabilirsiniz. Bunlar genellikle uygulamanızın kullanımıyla ilgilidir. Örneğin fitness uygulamalarında haftalık egzersiz sayısı, dil öğrenme uygulamalarında kullanıcının bilgi düzeyi gibi değerler olabilir. Bu nitelikleri segmentlerde kullanarak hedefli paywall'lar ve teklifler oluşturabilir, ayrıca analitik amaçlarla hangi ürün metriklerinin geliri en çok etkilediğini anlamak için de kullanabilirsiniz.

```typescript showLineNumbers
try {
  await adapty.updateProfile({
    codableCustomAttributes: {
      key_1: 'value_1',
      key_2: 2,
    },
  });
} catch (error) {
    // handle `AdaptyError`
}
```

Mevcut bir anahtarı kaldırmak için `.withRemoved(customAttributeForKey:)` metodunu kullanın:

```typescript showLineNumbers
try {
  // to remove a key, pass null as its value
  await adapty.updateProfile({
    codableCustomAttributes: {
      key_1: null,
      key_2: null,
    },
  });
} catch (error) {
    // handle `AdaptyError`
}
```

Bazen daha önce hangi özel niteliklerin ayarlandığını öğrenmeniz gerekebilir. Bunun için `AdaptyProfile` nesnesinin `customAttributes` alanını kullanın.

:::warning
`customAttributes` değerinin güncel olmayabileceğini unutmayın; kullanıcı nitelikleri farklı cihazlardan herhangi bir zamanda gönderilebilir, bu nedenle sunucudaki nitelikler son senkronizasyondan bu yana değişmiş olabilir.
:::

### Sınırlar \{#limits\}

- Kullanıcı başına en fazla 30 özel nitelik
- Anahtar adları en fazla 30 karakter uzunluğunda olabilir. Anahtar adı alfanümerik karakterler ve şunlardan herhangi birini içerebilir: `_`  `-` `.`
- Değer, en fazla 50 karakterlik bir string veya float olabilir.