---
title: "Establecer atributos de usuario en el SDK de Kotlin Multiplatform"
description: "Aprende cómo establecer atributos de usuario en Adapty para mejorar la segmentación de audiencias."
---

Puedes establecer atributos opcionales como el correo electrónico, el número de teléfono, etc., en el usuario de tu aplicación. Luego puedes usar estos atributos para crear [segmentos](segments) de usuarios o simplemente verlos en el CRM.

### Establecer atributos de usuario \{#setting-user-attributes\}

Para establecer atributos de usuario, llama al método `.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
    }
```

Ten en cuenta que los atributos que hayas establecido previamente con el método `updateProfile` no se restablecerán.

:::tip

¿Quieres ver un ejemplo real de cómo se integra el SDK de Adapty en una app móvil? Echa un vistazo a nuestras [apps de ejemplo](sample-apps), que muestran la configuración completa, incluyendo la visualización de paywalls, la realización de compras y otras funcionalidades básicas.

:::

### Lista de claves permitidas \{#the-allowed-keys-list\}

Las claves permitidas `<Key>` de `AdaptyProfileParameters.Builder` y sus valores `<Value>` se muestran a continuación:

| Clave | Valor |
|---|-----|
| <p>email</p><p>phoneNumber</p><p>firstName</p><p>lastName</p> | String |
| gender | Enum, los valores permitidos son: `AdaptyProfile.Gender.FEMALE`, `AdaptyProfile.Gender.MALE`, `AdaptyProfile.Gender.OTHER` |
| birthday | Date |

### Atributos personalizados de usuario \{#custom-user-attributes\}

Puedes definir tus propios atributos personalizados. Estos suelen estar relacionados con el uso de tu aplicación. Por ejemplo, en aplicaciones de fitness podrían ser el número de ejercicios por semana; en aplicaciones de aprendizaje de idiomas, el nivel de conocimiento del usuario, etc. Puedes usarlos en segmentos para crear paywalls y ofertas dirigidas, y también en análisis para determinar qué métricas de producto influyen más en los ingresos.

```kotlin showLineNumbers

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

Para eliminar una clave existente, usa el método `.withRemovedCustomAttribute()`:

```kotlin showLineNumbers

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

En ocasiones necesitas saber qué atributos personalizados ya se han establecido anteriormente. Para ello, utiliza el campo `customAttributes` del objeto `AdaptyProfile`.

:::warning
Ten en cuenta que el valor de `customAttributes` puede estar desactualizado, ya que los atributos de usuario pueden enviarse desde distintos dispositivos en cualquier momento, por lo que los atributos en el servidor pueden haber cambiado desde la última sincronización.
:::

### Límites \{#limits\}

- Hasta 30 atributos personalizados por usuario
- Los nombres de clave tienen un máximo de 30 caracteres. El nombre de la clave puede incluir caracteres alfanuméricos y cualquiera de los siguientes: `_`  `-` `.`
- El valor puede ser una cadena de texto o un número flotante con un máximo de 50 caracteres.