---
title: "Установка атрибутов пользователя в Unity SDK"
description: "Узнайте, как обновлять атрибуты пользователя и данные профиля в приложении Unity с помощью Adapty SDK."
---

Вы можете задавать пользователям приложения дополнительные атрибуты: email, номер телефона и т. д. Атрибуты можно использовать для создания пользовательских [сегментов](segments) или просто просматривать их в CRM.

### Установка атрибутов пользователя \{#setting-user-attributes\}

Чтобы задать атрибуты пользователя, вызовите метод `.updateProfile()`:

```csharp showLineNumbers
var builder = new Adapty.ProfileParameters.Builder()
        .SetFirstName("John")
        .SetLastName("Appleseed")
        .SetBirthday(new DateTime(1970, 1, 3))
        .SetGender(ProfileGender.Female)
        .SetEmail("example@adapty.io");

Adapty.UpdateProfile(builder.Build(), (error) => {
    if(error != nil) {
        // handle the error                        
    }
});
```

Обратите внимание: атрибуты, ранее установленные с помощью метода `updateProfile`, не сбрасываются.

:::tip

Хотите увидеть реальный пример интеграции Adapty SDK в мобильное приложение? Посмотрите наши [примеры приложений](sample-apps) — они демонстрируют полную настройку: отображение пейволов, совершение покупок и другие базовые функции.

:::

### Список допустимых ключей \{#the-allowed-keys-list\}

Допустимые ключи `<Key>` для `AdaptyProfileParameters.Builder` и соответствующие значения `<Value>` перечислены ниже:

| Ключ | Значение |
|---|-----|
| <p>email</p><p>phoneNumber</p><p>firstName</p><p>lastName</p> | String |
| gender | Enum, допустимые значения: `female`, `male`, `other` |
| birthday | Date |

### Пользовательские атрибуты \{#custom-user-attributes\}

Вы можете задавать собственные атрибуты, связанные с использованием приложения. Например, для фитнес-приложений это может быть количество тренировок в неделю, для приложений по изучению языков — уровень знаний пользователя и т. д. Атрибуты можно применять в сегментах для создания персонализированных пейволов и предложений, а также в аналитике — чтобы понять, какие продуктовые метрики сильнее всего влияют на выручку.

```csharp showLineNumbers
try {
    builder = builder.SetCustomStringAttribute("string_key", "string_value");
    builder = builder.SetCustomDoubleAttribute("double_key", 123.0f);
} catch (Exception e) {
    // handle the exception
}
```

Чтобы удалить существующий ключ, используйте метод `.withRemoved(customAttributeForKey:)`:

```csharp showLineNumbers
try {
    builder = builder.RemoveCustomAttribute("key_to_remove");
} catch (Exception e) {
    // handle the exception
}
```

Иногда нужно узнать, какие пользовательские атрибуты уже установлены. Для этого используйте поле `customAttributes` объекта `AdaptyProfile`.

:::warning
Имейте в виду, что значение `customAttributes` может быть устаревшим: атрибуты пользователя могут отправляться с разных устройств в любое время, поэтому данные на сервере могут измениться после последней синхронизации.
:::

### Ограничения \{#limits\}

- До 30 пользовательских атрибутов на одного пользователя.
- Длина имени ключа — до 30 символов. Допустимые символы: буквы, цифры, а также `_`, `-`, `.`.
- Значение может быть строкой или числом с плавающей точкой длиной не более 50 символов.