---
title: "Flutter SDK'da kullanıcı özniteliklerini ayarlama"
description: "Daha iyi kitle segmentasyonu sağlamak için Adapty'de kullanıcı özniteliklerini nasıl ayarlayacağınızı öğrenin."
---

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

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

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

```dart showLineNumbers
final builder = AdaptyProfileParametersBuilder()
  ..setEmail("email@email.com")
  ..setPhoneNumber("+18888888888")
  ..setFirstName('John')
  ..setLastName('Appleseed')
  ..setGender(AdaptyProfileGender.other)
  ..setBirthday(DateTime(1970, 1, 3));

try {
  await Adapty().updateProfile(builder.build());
} on AdaptyError catch (adaptyError) {
  // handle the error
} catch (e) {
}
```

`updateProfile` metoduyla daha önce ayarladığınız özniteliklerin 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ı öznitelikleri \{#custom-user-attributes\}

Kendi özel özniteliklerinizi 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 seviyesi gibi. Bu öznitelikleri segmentlerde hedefli paywall'lar ve teklifler oluşturmak için kullanabilirsiniz; ayrıca hangi ürün metriklerinin geliri en çok etkilediğini bulmak için analizlerde de işe yarar.

```javascript showLineNumbers
try {
  final builder = AdaptyProfileParametersBuilder()
      ..setCustomStringAttribute('value1', 'key1')
      ..setCustomDoubleAttribute(1.0, 'key2');

await Adapty().updateProfile(builder.build());
} on AdaptyError catch (adaptyError) {
// handle the error
} catch (e) {
}
```

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

```javascript showLineNumbers
try {
  final builder = AdaptyProfileParametersBuilder()
    ..removeCustomAttribute('key1')
    ..removeCustomAttribute('key2');

await Adapty().updateProfile(builder.build());
} on AdaptyError catch (adaptyError) {
// handle the error
} catch (e) {
}
```

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

:::warning
`customAttributes` değerinin güncel olmayabileceğini aklınızda bulundurun; kullanıcı öznitelikleri farklı cihazlardan herhangi bir anda gönderilebileceğinden, sunucudaki öznitelikler son senkronizasyondan bu yana değişmiş olabilir.
:::

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

- Kullanıcı başına en fazla 30 özel öznitelik
- 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 karakterden oluşan bir string veya float olabilir.