---
title: "Установка атрибутов пользователя в Kotlin Multiplatform SDK"
description: "Узнайте, как устанавливать атрибуты пользователя в Adapty для улучшенной сегментации аудитории."
---

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

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

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

```kotlin showLineNumbers

val builder = AdaptyProfileParameters.Builder()
    .withEmail("email@email.com")
    .withPhoneNumber("+18888888888")
    .withFirstName("John")
    .withLastName("Appleseed")
    .withGender(AdaptyProfile.Gender.FEMALE)
    .withBirthday(AdaptyProfile.Date(1970, 1, 3))
  
Adapty.updateProfile(builder.build())
    .onSuccess {
        // profile updated successfully
    }
    .onError { error ->
        // 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, допустимые значения: `AdaptyProfile.Gender.FEMALE`, `AdaptyProfile.Gender.MALE`, `AdaptyProfile.Gender.OTHER` |
| birthday | Date |

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

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

```kotlin showLineNumbers

val builder = AdaptyProfileParameters.Builder()
builder.withCustomAttribute("key1", "value1")
```

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

```kotlin showLineNumbers

val builder = AdaptyProfileParameters.Builder()
builder.withRemovedCustomAttribute("key2")
```

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

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

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

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