---
title: "Définir les attributs utilisateur dans le SDK Flutter"
description: "Découvrez comment définir des attributs utilisateur dans Adapty pour une meilleure segmentation des audiences."
---

Vous pouvez définir des attributs optionnels 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 des attributs utilisateur, appelez la méthode `.updateProfile()` :

```dart showLineNumbers
final builder = AdaptyProfileParametersBuilder()
  ..setEmail("email@email.com")
  ..setPhoneNumber("+18888888888")
  ..setFirstName('John')
  ..setLastName('Appleseed')
  ..setGender(AdaptyProfileGender.other)
  ..setBirthday(DateTime(1970, 1, 3));

try {
  await Adapty().updateProfile(builder.build());
} on AdaptyError catch (adaptyError) {
  // handle the error
} catch (e) {
}
```

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 autorisées `<Key>` de `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, valeurs autorisées : `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, et dans vos analyses pour identifier quelles métriques produit influencent le plus les revenus.

```dart showLineNumbers
try {
  final builder = AdaptyProfileParametersBuilder()
      ..setCustomStringAttribute('value1', 'key1')
      ..setCustomDoubleAttribute(1.0, 'key2');

await Adapty().updateProfile(builder.build());
} on AdaptyError catch (adaptyError) {
// handle the error
} catch (e) {
}
```

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

```dart showLineNumbers
try {
  final builder = AdaptyProfileParametersBuilder()
    ..removeCustomAttribute('key1')
    ..removeCustomAttribute('key2');

await Adapty().updateProfile(builder.build());
} on AdaptyError catch (adaptyError) {
// handle the error
} catch (e) {
}
```

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 ne pas être à jour, car les attributs utilisateur peuvent être envoyés depuis différents appareils à tout moment. Les attributs sur le serveur peuvent donc avoir été modifiés depuis la dernière synchronisation.
:::

### Limites \{#limits\}

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