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

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

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

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

```typescript showLineNumbers

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

try {
  await adapty.updateProfile(params);
  console.log('Profile updated successfully');
} catch (error) {
  console.error('Failed to update profile:', error);
}
```

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

:::tip

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

:::

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

Допустимые ключи `AdaptyProfileParameters` и их значения перечислены ниже:

| Ключ | Значение |
|---|-----|
| **email** | String |
| **phoneNumber** | String |
| **firstName** | String |
| **lastName** | String |
| **gender** | Enum, допустимые значения: `'female'`, `'male'`, `'other'` |
| **birthday** | Строка с датой в формате ISO |

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

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

```typescript showLineNumbers

try {
  await adapty.updateProfile({
    codableCustomAttributes: {
      key_1: 'value_1',
      key_2: 2,
    },
  });
  console.log('Custom attributes updated successfully');
} catch (error) {
  console.error('Failed to update custom attributes:', error);
}
```

Чтобы удалить существующие ключи, передайте `null` в качестве их значений:

```typescript showLineNumbers

try {
  // to remove keys, pass null as their values
  await adapty.updateProfile({
    codableCustomAttributes: {
      key_1: null,
      key_2: null,
    },
  });
  console.log('Custom attributes removed successfully');
} catch (error) {
  console.error('Failed to remove custom attributes:', error);
}
```

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

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

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

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