---
title: "Définir les attributs utilisateur dans le SDK Android"
description: "Apprenez à définir les attributs utilisateur dans Adapty pour améliorer la segmentation des audiences."
---

Vous pouvez définir des attributs facultatifs tels que l'e-mail, le numéro de téléphone, etc., pour les utilisateurs de votre application. Vous pouvez ensuite utiliser ces attributs pour créer des [segments](segments) d'utilisateurs ou simplement les consulter dans le CRM.

### Définir les attributs utilisateur \{#setting-user-attributes\}

Pour définir les attributs utilisateur, appelez la méthode `.updateProfile()` :

<Tabs groupId="current-os" queryString>
<TabItem value="kotlin" label="Kotlin" default>

```kotlin showLineNumbers
val builder = AdaptyProfileParameters.Builder()
    .withEmail("email@email.com")
    .withPhoneNumber("+18888888888")
    .withFirstName("John")
    .withLastName("Appleseed")
    .withGender(AdaptyProfile.Gender.OTHER)
    .withBirthday(AdaptyProfile.Date(1970, 1, 3))
  
Adapty.updateProfile(builder.build()) { error ->
    if (error != null) {
        // handle the error
    }
}
```

</TabItem>
<TabItem value="java" label="Java" default>

```java showLineNumbers
AdaptyProfileParameters.Builder builder = new AdaptyProfileParameters.Builder()
    .withEmail("email@email.com")
    .withPhoneNumber("+18888888888")
    .withFirstName("John")
    .withLastName("Appleseed")
    .withGender(AdaptyProfile.Gender.OTHER)
    .withBirthday(new AdaptyProfile.Date(1970, 1, 3));

Adapty.updateProfile(builder.build(), error -> {
    if (error != null) {
        // handle the error
    }
});
```
</TabItem>
</Tabs>

Notez que les attributs que vous avez précédemment définis avec la méthode `updateProfile` ne seront pas réinitialisés.

:::tip

Vous souhaitez voir un exemple concret d'intégration du SDK Adapty dans une application mobile ? Consultez nos [exemples d'applications](sample-apps), qui illustrent la configuration complète, notamment l'affichage des paywalls, les achats et d'autres fonctionnalités de base.

:::

### Liste des clés autorisées \{#the-allowed-keys-list\}

Les clés `<Key>` autorisées pour `AdaptyProfileParameters.Builder` et les valeurs `<Value>` correspondantes sont listées ci-dessous :

| Clé | Valeur |
|---|-----|
| <p>email</p><p>phoneNumber</p><p>firstName</p><p>lastName</p> | String |
| gender | Enum, les valeurs autorisées sont : `female`, `male`, `other` |
| birthday | Date |

### Attributs utilisateur personnalisés \{#custom-user-attributes\}

Vous pouvez définir vos propres attributs personnalisés, généralement liés à l'utilisation de votre application. Par exemple, pour une application de fitness, il peut s'agir du nombre d'exercices par semaine ; pour une application d'apprentissage des langues, du niveau de connaissance de l'utilisateur, etc. Vous pouvez les utiliser dans des segments pour créer des paywalls et des offres ciblées, ainsi que dans les analyses pour déterminer quelles métriques produit ont le plus d'impact sur les revenus.

<Tabs groupId="current-os" queryString>
<TabItem value="kotlin" label="Kotlin" default>
```kotlin showLineNumbers
builder.withCustomAttribute("key1", "value1")
```
</TabItem>
<TabItem value="java" label="Java" default>
```java showLineNumbers
builder.withCustomAttribute("key1", "value1");
```
</TabItem>
</Tabs>

Pour supprimer une clé existante, utilisez la méthode `.withRemoved(customAttributeForKey:)` :

<Tabs groupId="current-os" queryString>
<TabItem value="kotlin" label="Kotlin" default>
```kotlin showLineNumbers
builder.withRemovedCustomAttribute("key2")
```
</TabItem>
<TabItem value="java" label="Java" default>
```java showLineNumbers
builder.withRemovedCustomAttribute("key2");
```
</TabItem>

</Tabs>

Il peut arriver que vous ayez besoin de connaître les attributs personnalisés déjà définis. Pour cela, utilisez le champ `customAttributes` de l'objet `AdaptyProfile`.

:::warning
Gardez à l'esprit que la valeur de `customAttributes` peut être obsolète, car les attributs utilisateur peuvent être envoyés depuis différents appareils à tout moment. Les attributs sur le serveur ont donc pu être modifiés depuis la dernière synchronisation.
:::

### Limites \{#limits\}

- Jusqu'à 30 attributs personnalisés par utilisateur
- Les noms de clés peuvent comporter jusqu'à 30 caractères. Ils peuvent contenir des caractères alphanumériques ainsi que les caractères suivants : `_`  `-` `.`
- La valeur peut être une chaîne de caractères ou un nombre flottant, avec 50 caractères maximum.