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

Uygulamanızın kullanıcılarına e-posta, telefon numarası gibi isteğe bağlı özellikler ekleyebilirsiniz. Bu özellikleri kullanıcı [segmentleri](segments) oluşturmak veya CRM'de görüntülemek için kullanabilirsiniz.

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

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

<Tabs groupId="current-os" queryString>
<TabItem value="swift" label="Swift" default>

```swift showLineNumbers
let builder = AdaptyProfileParameters.Builder()
    .with(email: "email@email.com")
    .with(phoneNumber: "+18888888888")
    .with(firstName: "John")
    .with(lastName: "Appleseed")
    .with(gender: .other)
    .with(birthday: Date())
    
do {
    try await Adapty.updateProfile(params: builder.build())
} catch {
    // handle the error
}
```
</TabItem>
<TabItem value="swift-callback" label="Swift-Callback" default>

```swift showLineNumbers
let builder = AdaptyProfileParameters.Builder()
    .with(email: "email@email.com")
    .with(phoneNumber: "+18888888888")
    .with(firstName: "John")
    .with(lastName: "Appleseed")
    .with(gender: .other)
    .with(birthday: Date())
    
Adapty.updateProfile(params: builder.build()) { error in
    if error != nil {
        // handle the error                        
    }
}
```
</TabItem>

</Tabs>

`updateProfile` metoduyla daha önce ayarladığınız özellikler sıfırlanmaz.

:::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 anahtar listesi \{#the-allowed-keys-list\}

`AdaptyProfileParameters.Builder` için izin verilen anahtarlar `<Key>` ve değerler `<Value>` 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ı özellikleri \{#custom-user-attributes\}

Kendi özel özelliklerinizi 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. Bu özellikleri, hedefli paywall'lar ve teklifler oluşturmak için segmentlerde; hangi ürün metriklerinin geliri en çok etkilediğini anlamak için de analitikte kullanabilirsiniz.

```swift showLineNumbers
do {
     builder = try builder.with(customAttribute: "value1", forKey: "key1")
} catch {
     // handle key/value validation error
}
```

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

```swift showLineNumbers
do {
     builder = try builder.withRemoved(customAttributeForKey: "key2")
} catch {
     // handle error
}
```

Bazen daha önce hangi özel özelliklerin 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ı özellikleri farklı cihazlardan herhangi bir zamanda gönderilebileceğinden, sunucudaki özellikler son senkronizasyondan bu yana değişmiş olabilir.
:::

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

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