Skip to content

Objet Attributs d’utilisateur

Une requête API contenant des champs dans l’objet attributes crée ou met à jour un attribut de ce nom avec la valeur indiquée dans le profil utilisateur spécifié.

Utilisez les noms de champs de profil utilisateur Braze (énumérés ci-après ou tout autre répertorié dans la section Champs de profil utilisateur Braze) pour mettre à jour ces valeurs spéciales sur le profil utilisateur dans le tableau de bord, ou ajoutez vos propres données d’attributs personnalisés à l’utilisateur.

Corps de l’objet

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
{
  // One of "external_id" or "user_alias" or "braze_id" or "email" or "phone" is required
  "external_id" : (optional, string) see external user ID,
  "user_alias" : (optional, User alias object),
  "braze_id" : (optional, string) Braze user identifier,
  "email": (optional, string) User email address,
  "phone": (optional, string) User phone number,
  // Setting this flag to true puts the API in "Update Only" mode.
  // When using a "user_alias", "Update Only" defaults to true.
  "_update_existing_only" : (optional, boolean),
  // See note regarding anonymous push token imports
  "push_token_import" : (optional, boolean),
  // Braze User Profile Fields
  "first_name" : "Jon",
  "email" : "[email protected]",
  // Custom Attributes
  "my_custom_attribute" : value,
  "my_custom_attribute_2" : {"inc" : int_value},
  "my_array_custom_attribute":[ "Value1", "Value2" ],
  // Adding a new value to an array custom attribute
  "my_array_custom_attribute" : { "add" : ["Value3"] },
  // Removing a value from an array custom attribute
  "my_array_custom_attribute" : { "remove" : [ "Value1" ]},
  // Array of objects custom attribute
  "my_array_of_objects_attribute": [{"key": "value"}, {"key": "value"}],
  // Adding to an array of objects (REST API syntax)
  "my_array_of_objects_attribute": { "add": [{"key": "value"}] },
  // Removing from an array of objects (REST API syntax)
  "my_array_of_objects_attribute": { "remove": [{"$identifier_key": "key", "$identifier_value": "value"}] },
}

Pour supprimer un attribut de profil, définissez-le sur null. Certains champs, tels que external_id et user_alias, ne peuvent pas être supprimés après avoir été ajoutés à un profil utilisateur.

Résolution des identifiants

À moins que vous n’effectuiez une importation anonyme de jetons de notification push, chaque objet d’attributs utilisateur doit inclure au moins un identifiant : external_id, user_alias, braze_id, email ou phone. Dans la mesure du possible, incluez un seul identifiant par objet afin d’éviter toute ambiguïté quant au profil utilisateur mis à jour ou créé.

Gardez les points suivants à l’esprit lors de l’utilisation d’identifiants :

  • external_id et user_alias sont mutuellement exclusifs. L’inclusion des deux dans le même objet d’attributs utilisateur renvoie une erreur. Pour ajouter un alias à un utilisateur qui possède déjà un external_id, utilisez l’endpoint /users/alias/new.
  • email a priorité sur phone. Si email et phone sont tous deux inclus dans le même objet, Braze utilise email comme identifiant. Cela signifie que les attributs sont appliqués au profil utilisateur associé à cette adresse e-mail, même si le numéro de téléphone appartient à un profil différent.

Mettre à jour les profils existants uniquement

Si vous souhaitez mettre à jour uniquement les profils utilisateur existants dans Braze, vous devez passer la clé _update_existing_only avec la valeur true dans le corps de votre requête. Si cette valeur est omise, Braze crée un nouveau profil utilisateur si l’external_id n’existe pas encore.

Importation de jetons de notification push

Avant d’importer des jetons de notification push dans Braze, vérifiez si cela est nécessaire. Lorsque les SDK de Braze sont mis en place, ils gèrent automatiquement les jetons de notification push sans qu’il soit nécessaire de les télécharger via l’API.

Si vous devez les télécharger via l’API, vous pouvez le faire pour des utilisateurs identifiés ou anonymes. Cela signifie que soit un external_id doit être présent, soit les utilisateurs anonymes doivent avoir l’indicateur push_token_import défini sur true.

Lorsque vous indiquez push_token_import comme true :

  • external_id et braze_id ne doivent pas être spécifiés
  • L’objet d’attribut doit contenir un jeton de notification push
  • Si le jeton existe déjà dans Braze, la requête est ignorée ; dans le cas contraire, Braze crée un profil utilisateur temporaire et anonyme pour chaque jeton afin de vous permettre de continuer à envoyer des messages à ces personnes.

Après l’importation, lorsque chaque utilisateur lance la version de votre application compatible avec Braze, Braze transfère automatiquement son jeton de notification push importé vers son profil utilisateur Braze et supprime le profil temporaire.

Braze effectue une vérification mensuelle afin d’identifier tout profil anonyme marqué de l’indicateur push_token_import et ne disposant pas de jeton de notification push. Si le profil anonyme ne dispose plus d’un jeton de notification push, Braze supprime le profil. Toutefois, si le profil anonyme dispose toujours d’un jeton de notification push, ce qui indique que l’utilisateur réel ne s’est pas encore connecté à l’appareil avec ledit jeton, Braze ne prend aucune mesure.

Pour plus d’informations, consultez Migration des jetons de notification push.

Types de données des attributs personnalisés

Les types de données suivants peuvent être stockés en tant qu’attribut personnalisé :

Type de données Remarques
Tableaux Les tableaux d’attributs personnalisés sont pris en charge. Lorsque vous ajoutez un élément, il est ajouté à la fin du tableau. Si l’élément existe déjà, il est déplacé de sa position actuelle vers la fin.

Seules les valeurs uniques sont enregistrées. Par exemple, l’importation de ['hotdog','hotdog','hotdog','pizza'] donne ['hotdog', 'pizza'].

Vous pouvez définir un tableau directement (par exemple, "my_array_custom_attribute":[ "Value1", "Value2" ]), ajouter des éléments à un tableau existant avec "my_array_custom_attribute" : { "add" : ["Value3"] }, ou supprimer des valeurs avec "my_array_custom_attribute" : { "remove" : [ "Value1" ]}.

Le nombre maximum d’éléments par défaut est de 500 par tableau. Vous pouvez modifier le nombre maximum de tableaux dans le tableau de bord de Braze, sous Paramètres des données > Attributs personnalisés. Pour plus d’informations, consultez la section Tableaux.
Tableau d’objets Utilisez un tableau d’objets pour définir une liste d’objets où chaque objet contient un ensemble d’attributs. Utilisez ce type pour stocker plusieurs ensembles de données associées à un utilisateur, telles que les séjours à l’hôtel, l’historique d’achats ou les préférences.

Par exemple, définissez un attribut personnalisé nommé hotel_stays sur un profil utilisateur sous forme de tableau où chaque objet représente un séjour distinct, avec des attributs tels que hotel_name, check_in_date et nights_stayed.

Les tableaux d’objets n’ont pas de limite quant au nombre d’éléments, mais ont une taille maximale de 100 Ko. Si une mise à jour entraîne le dépassement de cette limite, Braze rejette la mise à jour et l’attribut reste inchangé.

Pour les requêtes REST API, ajoutez des éléments avec add, supprimez des éléments avec remove et mettez à jour des éléments avec update. Pour les méthodes SDK, utilisez $add, $remove et $update dans le payload transmis au SDK. Pour plus de détails, consultez l’exemple d’API de tableau d’objets, l’exemple SDK de tableau d’objets et l’exemple de tableau d’objets.
Booléens true ou false
Dates Doivent être enregistrées au format ISO 8601 ou dans l’un des formats suivants :
- yyyy-MM-ddTHH:mm:ss:SSSZ
- yyyy-MM-ddTHH:mm:ss
- yyyy-MM-dd HH:mm:ss
- yyyy-MM-dd
- MM/dd/yyyy
- ddd MM dd HH:mm:ss.TZD YYYY

Notez que le « T » est un indicateur de temps, et non une marque substitutive. Il ne doit pas être modifié ou supprimé.

Les attributs temporels sans fuseau horaire sont définis par défaut à minuit UTC (et sont formatés sur le tableau de bord comme l’équivalent de minuit UTC dans le fuseau horaire de l’entreprise). Pour spécifier un fuseau horaire, ajoutez un décalage UTC à l’horodatage (par exemple, 2024-11-10T18:00:00-05:00 pour EST). Si le décalage de fuseau horaire est manquant ou mal formaté, la valeur est définie par défaut sur UTC.

Les heures sont affichées sur le tableau de bord dans le fuseau horaire de votre entreprise. Par exemple, 2024-11-10T18:00:00-05:00 (18 h 00 EST) s’afficherait à l’heure équivalente dans le fuseau horaire configuré de votre entreprise.

Les événements dont l’horodatage est défini dans le futur sont automatiquement réglés sur l’heure actuelle.

Pour les attributs personnalisés standard, si l’année est inférieure à 0 ou supérieure à 3000, Braze enregistre la valeur sous forme de chaîne de caractères dans le profil utilisateur.
Floats Les attributs personnalisés de type float sont des nombres positifs ou négatifs avec une virgule. Par exemple, vous pouvez utiliser des floats pour stocker des soldes de comptes ou des évaluations de produits ou de services par les utilisateurs.
Entiers Vous pouvez incrémenter des attributs personnalisés de type entier en assignant un objet avec le champ « inc » et la valeur à ajouter.

Exemple : "my_custom_attribute_2" : {"inc" : int_value},
Attributs personnalisés imbriqués Les attributs personnalisés imbriqués définissent un ensemble d’attributs en tant que propriété d’un autre attribut. Lorsque vous définissez un objet d’attribut personnalisé, vous ajoutez un ensemble d’attributs à cet objet. Pour plus d’informations, consultez la section Attributs personnalisés imbriqués.
Chaînes de caractères Les attributs personnalisés de type chaîne sont des séquences de caractères utilisées pour stocker des données textuelles. Par exemple, vous pouvez utiliser des chaînes de caractères pour stocker les noms et prénoms, les adresses e-mail ou les préférences.
Exemple de tableau d’objets

Ce tableau d’objets vous permet de créer des segments en fonction de critères spécifiques au sein des séjours et de personnaliser vos messages à l’aide des données de chaque séjour grâce aux modèles Liquid.

1
2
3
4
{"hotel_stays": [
  { "hotel_name": "Ocean View Resort", "check_in_date": "2023-06-15", "nights_stayed": 5 },
  { "hotel_name": "Mountain Lodge", "check_in_date": "2023-09-10", "nights_stayed": 3 }
]}

Pour des exemples d’API utilisant add, remove et update, consultez l’exemple d’API de tableau d’objets. Pour des exemples SDK utilisant $add, $remove et $update, consultez l’exemple SDK de tableau d’objets.

Champs de profil utilisateur Braze

Champ de profil utilisateur Spécification du type de données
alias_name (string)
alias_label (string)
braze_id (chaîne de caractères, facultatif) Lorsqu’un profil utilisateur est reconnu par le SDK, un profil utilisateur anonyme est créé avec un braze_id associé. Le braze_id est automatiquement attribué par Braze, ne peut pas être modifié et est spécifique à l’appareil.
country (chaîne de caractères) Nous exigeons que les codes de pays soient transmis à Braze selon la norme ISO-3166-1 alpha-2. Notre API s’efforce de mapper les pays reçus dans différents formats. Par exemple, « Australia » peut correspondre à « AU ». Toutefois, si la saisie ne correspond pas à une norme ISO-3166-1 alpha-2 donnée, la valeur du pays est définie sur NULL.

La définition de country sur un utilisateur par importation CSV ou API empêche Braze de capturer automatiquement cette information via le SDK.
current_location (objet) De la forme {“longitude”: -73.991443, “latitude”: 40.753824}
date_of_first_session (date à laquelle l’utilisateur a utilisé l’application pour la première fois) Chaîne de caractères au format ISO 8601 ou dans l’un des formats suivants :
- yyyy-MM-ddTHH:mm:ss:SSSZ
- yyyy-MM-ddTHH:mm:ss
- yyyy-MM-dd HH:mm:ss
- yyyy-MM-dd
- MM/dd/yyyy
- ddd MM dd HH:mm:ss.TZD YYYY
date_of_last_session (date à laquelle l’utilisateur a utilisé l’application pour la dernière fois) Chaîne de caractères au format ISO 8601 ou dans l’un des formats suivants :
- yyyy-MM-ddTHH:mm:ss:SSSZ
- yyyy-MM-ddTHH:mm:ss
- yyyy-MM-dd HH:mm:ss
- yyyy-MM-dd
- MM/dd/yyyy
- ddd MM dd HH:mm:ss.TZD YYYY
dob (date de naissance) Chaîne au format « AAAA-MM-JJ », par exemple, 1980-12-21.
email (string)
email_subscribe (chaîne de caractères) Les valeurs disponibles sont « opted_in » (explicitement inscrit pour recevoir des e-mails), « unsubscribed » (explicitement désabonné des e-mails) et « subscribed » (ni inscrit ni désabonné).
email_open_tracking_disabled (booléen) true ou false accepté. Définissez sur true pour désactiver l’ajout du pixel de suivi des ouvertures dans tous les futurs e-mails envoyés à cet utilisateur. Disponible uniquement pour SparkPost et SendGrid.
email_click_tracking_disabled (booléen) true ou false accepté. Définissez sur true pour désactiver le suivi des clics pour tous les liens contenus dans les futurs e-mails envoyés à cet utilisateur. Disponible uniquement pour SparkPost et SendGrid.
external_id (chaîne de caractères) Identifiant unique pour un profil utilisateur. Une fois un external_id attribué, Braze identifie le profil utilisateur sur l’ensemble des appareils de l’utilisateur. Lors de la première attribution d’un external_id à un profil utilisateur inconnu, Braze migre toutes les données existantes du profil utilisateur vers le nouveau profil.
facebook hachage contenant l’un des éléments suivants : id (string), likes (tableau de chaînes de caractères), num_friends (integer).
first_name (string)
gender (chaîne de caractères) « M », « F », « O » (autre), « N » (sans objet), « P » (préfère ne pas dire) ou nil (inconnu).
home_city (string)
language (chaîne de caractères) Nous exigeons que la langue soit transmise à Braze selon la norme ISO-639-1. Pour connaître les langues prises en charge, consultez notre liste des langues acceptées.

La définition de language sur un utilisateur par importation CSV ou API empêche Braze de capturer automatiquement cette information via le SDK.
last_name (string)
marked_email_as_spam_at (chaîne de caractères) Date à laquelle l’e-mail de l’utilisateur a été marqué comme courrier indésirable. Apparaît au format ISO 8601 ou dans l’un des formats suivants :
- yyyy-MM-ddTHH:mm:ss:SSSZ
- yyyy-MM-ddTHH:mm:ss
- yyyy-MM-dd HH:mm:ss
- yyyy-MM-dd
- MM/dd/yyyy
- ddd MM dd HH:mm:ss.TZD YYYY
phone (chaîne de caractères) Nous recommandons de fournir les numéros de téléphone au format E.164. Pour plus de détails, consultez la section Numéros de téléphone des utilisateurs.
push_subscribe (chaîne de caractères) Les valeurs disponibles sont « opted_in » (explicitement inscrit pour recevoir des notifications push), « unsubscribed » (explicitement désabonné des notifications push) et « subscribed » (ni inscrit ni désabonné).
push_tokens Tableau d’objets avec app_id et la chaîne de caractères token. Vous pouvez éventuellement fournir un device_id pour l’appareil auquel ce jeton est associé, par exemple, [{"app_id": App Identifier, "token": "abcd", "device_id": "optional_field_value"}]. Si aucun device_id n’est fourni, un identifiant est généré de manière aléatoire.
subscription_groups Tableau d’objets avec les chaînes de caractères subscription_group_id et subscription_state, par exemple, [{"subscription_group_id" : "subscription_group_identifier", "subscription_state" : "subscribed"}]. Les valeurs disponibles pour subscription_state sont « subscribed » et « unsubscribed ».
time_zone (chaîne de caractères) Nom du fuseau horaire provenant de la base de données des fuseaux horaires de l’IANA (par exemple, « America/New_York » ou « Eastern Time (US & Canada) »). Seules les valeurs de fuseau horaire valides sont définies.
twitter Hachage contenant l’un des éléments suivants : id (integer), screen_name (chaîne de caractères, identifiant X (anciennement Twitter)), followers_count (integer), friends_count (integer), statuses_count (integer).

Les paramètres linguistiques explicitement définis via cette API ont priorité sur les informations régionales que Braze reçoit automatiquement de l’appareil.

Exemple de requête d’attributs utilisateur

Cet exemple contient quatre objets d’attributs utilisateur, sur un total de 75 objets d’attributs autorisés par appel API.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
POST https://YOUR_REST_API_URL/users/track
Content-Type: application/json
Authorization: Bearer YOUR-REST-API-KEY
{
  "attributes" : [
    {
      "external_id" : "user1",
      "first_name" : "Jon",
      "has_profile_picture" : true,
      "dob": "1988-02-14",
      "music_videos_favorited" : { "add" : [ "calvinharris-summer" ], "remove" : ["nickiminaj-anaconda"] }
    },
    {
      "external_id" : "user2",
      "first_name" : "Jill",
      "has_profile_picture" : false,
      "push_tokens": [{"app_id": "Your App Identifier", "token": "abcd", "device_id": "optional_field_value"}]

    },
    {
      "user_alias" : { "alias_name" : "device123", "alias_label" : "my_device_identifier"},
      "first_name" : "Alice",
      "has_profile_picture" : false
    },
    {
      "external_id": "user3",
      "subscription_groups" : [{"subscription_group_id" : "subscription_group_identifier", "subscription_state" : "subscribed"}]
    }
  ]
}

Migration des jetons de notification push

Si vous envoyiez des notifications push avant d’intégrer Braze, que ce soit par vous-même ou via un autre fournisseur, la migration des jetons de notification push vous permet de continuer à envoyer des notifications push à vos utilisateurs disposant de jetons enregistrés.

Migration automatique via le SDK

Une fois le SDK Braze intégré, les jetons de notification push de vos utilisateurs abonnés sont automatiquement migrés lors de leur prochaine ouverture de l’application. Jusqu’à ce moment-là, il n’est pas possible d’envoyer des notifications push à ces utilisateurs via Braze.

Vous pouvez également migrer vos jetons de notification push manuellement, ce qui vous permet de réengager vos utilisateurs plus rapidement.

Considérations relatives aux jetons Web

En raison de la nature des jetons de notification push pour le Web, tenez compte des éléments suivants lors de la mise en œuvre du push pour le Web :

Considération Détails
Service de traitement Par défaut, le SDK Web recherche un service de traitement à l’adresse ./service-worker, à moins qu’une autre option ne soit spécifiée, telle que manageServiceWorkerExternally ou serviceWorkerLocation. Si votre service de traitement n’est pas configuré correctement, les jetons de notification push de vos utilisateurs risquent d’expirer.
Jetons expirés Si un utilisateur n’a pas démarré de session Web dans les 60 jours, son jeton de notification push expire. Étant donné que Braze ne peut pas migrer les jetons expirés, vous devez envoyer un message push d’amorce pour les réengager.

Migration manuelle via l’API

La migration manuelle des jetons de notification push consiste à importer ces clés précédemment créées dans votre plateforme Braze via l’API.

Migrez par programmation les jetons iOS (APNs) et Android (FCM) vers votre plateforme en utilisant l’endpoint users/track. Vous pouvez migrer à la fois les utilisateurs identifiés (utilisateurs avec un ID externe associé) et les utilisateurs anonymes (utilisateurs sans ID externe).

Spécifiez l’app_id de votre application lors de la migration des jetons de notification push pour associer le jeton approprié à l’application correspondante. Chaque application (iOS, Android, etc.) possède son propre app_id, disponible dans la section Identification de la page Clés API. Assurez-vous d’utiliser le bon app_id pour chaque plateforme.

Pour les utilisateurs identifiés, définissez l’indicateur push_token_import sur false (ou omettez le paramètre) et spécifiez les valeurs external_id, app_id et token dans l’objet attributes utilisateur.

Par exemple :

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
curl --location --request POST 'https://rest.iad-01.braze.com/users/track' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer YOUR-API-KEY-HERE' \
--data-raw '{
  "attributes" : [
    {
      "push_token_import" : false,
      "external_id": "example_external_id",
      "country": "US",
      "language": "en",
      "YOUR_CUSTOM_ATTRIBUTE": "YOUR_VALUE",
      "push_tokens": [
        {"app_id": "APP_ID_OF_OS", "token": "PUSH_TOKEN_STRING"}
      ]
    }
  ]
}'

Lors de l’importation de jetons de notification push provenant d’autres systèmes, un external_id n’est pas toujours disponible. Dans ce cas, définissez votre indicateur push_token_import sur true et spécifiez les valeurs app_id et token. Braze crée un profil utilisateur temporaire et anonyme pour chaque jeton afin de vous permettre de continuer à envoyer des messages à ces personnes. Si le jeton existe déjà dans Braze, la requête est ignorée.

Par exemple :

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
curl --location --request POST 'https://rest.iad-01.braze.com/users/track' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer YOUR-API-KEY-HERE' \
--data-raw '{
  "attributes": [
    {
      "push_token_import" : true,
      "email": "[email protected]",
      "country": "US",
      "language": "en",
      "YOUR_CUSTOM_ATTRIBUTE": "YOUR_VALUE",
      "push_tokens": [
        {"app_id": "APP_ID_OF_OS", "token": "PUSH_TOKEN_STRING", "device_id": "DEVICE_ID"}
      ]
    },

    {
      "push_token_import" : true,
      "email": "[email protected]",
      "country": "US",
      "language": "en",
      "YOUR_CUSTOM_ATTRIBUTE_1": "YOUR_VALUE",
      "YOUR_CUSTOM_ATTRIBUTE_2": "YOUR_VALUE",
      "push_tokens": [
        {"app_id": "APP_ID_OF_OS", "token": "PUSH_TOKEN_STRING", "device_id": "DEVICE_ID"}
      ]
    }
  ]
}'

Après l’importation, lorsque l’utilisateur anonyme lance la version de votre application compatible avec Braze, Braze transfère automatiquement son jeton de notification push importé vers son profil utilisateur Braze et supprime le profil temporaire.

Braze effectue une vérification mensuelle afin d’identifier tout profil anonyme marqué de l’indicateur push_token_import et ne disposant pas de jeton de notification push. Si le profil anonyme ne dispose plus d’un jeton de notification push, Braze supprime le profil. Toutefois, si le profil anonyme dispose toujours d’un jeton de notification push, ce qui indique que l’utilisateur réel ne s’est pas encore connecté à l’appareil avec ledit jeton, Braze ne prend aucune mesure.

Importation de jetons de notification push Android

Si vous devez envoyer des notifications push Android à vos utilisateurs avant que l’intégration du SDK Braze ne soit terminée, utilisez des paires clé-valeur pour valider les notifications push.

Vous devez disposer d’un récepteur pour gérer et afficher les payloads de notification push. Pour notifier le récepteur du payload, ajoutez les paires clé-valeur nécessaires à la campagne push. Les valeurs de ces paires dépendent du partenaire push spécifique que vous utilisiez avant Braze.

New Stuff!