Objet Attributs d’utilisateur
Une demande d’API comportant un champ quelconque dans l’objet attributs crée ou met à jour un attribut de ce nom avec la valeur donnée sur le profil utilisateur spécifié.
Utilisez les noms de champs de profil utilisateur Braze (énumérés comme suit ou tout autre répertorié dans la section pour Braze user profile fields) 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
{
// 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" ]},
}
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.
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 demande. Si cette valeur est omise, Braze crée un nouveau profil utilisateur si le site external_id n’existe pas encore.
Si vous créez un profil utilisateur alias uniquement via l’endpoint /users/track, vous devez définir _update_existing_only sur false. Si vous omettez cette valeur, Braze ne crée pas le profil d’alias uniquement.
Importation de jetons de notification push
Avant d’importer des jetons de notification push à Braze, vérifiez si cela est nécessaire. Lorsque les SDK de Braze sont mis en place, ils gèrent automatiquement les jetons de poussée 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.
Lors de l’importation de jetons de notification push provenant d’autres systèmes, un external_id n’est pas toujours disponible. Pour maintenir la communication avec ces utilisateurs pendant votre transition vers Braze, vous pouvez importer les jetons existants pour les utilisateurs anonymes sans fournir external_id, en spécifiant push_token_import comme true.
Lorsque vous indiquez push_token_import comme true :
external_idetbraze_idne doivent pas être spécifiés- L’objet d’attribut doit contenir un jeton de poussée.
- Si le jeton existe déjà dans Braze, la demande est ignorée ; dans le cas contraire, Braze crée un profil utilisateur anonyme temporaire 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 déplace automatiquement son jeton push importé vers son profil utilisateur Braze et nettoie le profil temporaire.
Braze vérifie une fois par mois s’il existe un profil anonyme avec le drapeau push_token_import qui n’a pas de jeton de poussée. Si le profil anonyme n’a plus de jeton de poussée, Braze supprime le profil. Cependant, si le profil anonyme dispose toujours d’un jeton de poussée, ce qui suggère que l’utilisateur réel doit encore s’identifier sur l’appareil avec ledit jeton de poussée, Braze ne fait rien.
Pour plus d’informations, consultez Migration des jetons 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. L’ajout d’un élément à un tableau d’attribut personnalisé ajoute l’élément à la fin du tableau, à moins qu’il ne soit déjà présent, auquel cas il passe de sa position actuelle à la fin du tableau. Par exemple, si le tableau ['hotdog','hotdog','hotdog','pizza'] est importé, il apparaît dans l’attribut du tableau sous la forme ['hotdog', 'pizza'], car seules les valeurs uniques sont prises en charge.En plus de définir les valeurs d’un tableau en disant quelque chose comme "my_array_custom_attribute":[ "Value1", "Value2" ], vous pouvez ajouter des valeurs à des tableaux existants en faisant quelque chose comme "my_array_custom_attribute" : { "add" : ["Value3"] }, ou supprimer des valeurs d’un tableau en faisant quelque chose comme "my_array_custom_attribute" : { "remove" : [ "Value1" ]}Le nombre maximum d’éléments dans les tableaux d’attributs personnalisés est par défaut de 25, mais peut être augmenté jusqu’à 100 pour un tableau donné. Pour plus d’informations, reportez-vous à la section Tableaux. |
| Tableau d’objets | Le tableau d’objets vous permet de définir une liste d’objets où chaque objet contient un ensemble d’attributs. Cela peut s’avérer utile si vous avez besoin de stocker plusieurs ensembles de données liées pour un utilisateur, comme les séjours à l’hôtel, l’historique des achats ou les préférences. Par exemple, vous pouvez définir un attribut personnalisé sur un profil utilisateur nommé hotel_stays. Cet attribut personnalisé peut être défini comme un tableau d’objets représentant chacun un séjour distinct, avec des attributs tels que hotel_name, check_in_date, nights_stayed. Pour plus de détails, consultez cet exemple. |
| Booléens | true ou false |
| Dates | Doit être stocké dans le 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 horaires sans fuseau horaire prennent par défaut la valeur Minuit UTC (et sont formatés dans le tableau de bord comme l’équivalent de Minuit UTC dans le fuseau horaire de l’entreprise). Les événements dont l’horodatage se situe dans le futur prennent par défaut l’heure actuelle. Pour les attributs personnalisés réguliers, si l’année est inférieure à 0 ou supérieure à 3 000, Braze stocke ces valeurs sous forme de chaînes de caractères sur l’utilisateur. |
| Floats | Les attributs personnalisés flottants sont des nombres positifs ou négatifs avec une virgule. Par exemple, vous pouvez utiliser des flottants pour stocker des soldes de comptes ou des évaluations de produits ou de services par les utilisateurs. |
| Entiers | Les attributs personnalisés entiers peuvent être incrémentés par des nombres entiers positifs ou négatifs en leur attribuant un objet avec le champ “inc” et la valeur par laquelle vous souhaitez les incrémenter. 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 définissez un ensemble d’attributs supplémentaires pour cet objet. Pour plus d’informations, reportez-vous à 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. |
Pour savoir quand vous devez utiliser un événement personnalisé plutôt qu’un attribut personnalisé, consultez nos documentations respectives sur les événements et attributs personnalisés.
Exemple de tableau d’objets
Ce tableau d’objets vous permet de créer des segments basés sur des critères spécifiques au sein des séjours, et de personnaliser vos messages en utilisant les données de chaque séjour avec les 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 }
]
Champs Braze User Profile (Profil d’utilisateur Braze)
Les champs de profil utilisateur suivants sont sensibles à la casse, veillez donc à référencer ces champs en minuscule.
| Champ profil utilisateur | Spécification des types 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 une adresse braze_id. Le braze_id est automatiquement attribué par Braze, ne peut pas être modifié et est spécifique à l’appareil de l’utilisateur. |
| pays | (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, « Australie » peut correspondre à « AU ». Toutefois, si l’entrée ne correspond pas à une norme ISO-3166-1 alpha-2 donnée, la valeur du pays est fixée à NULL. La définition de country sur un utilisateur par importation CSV ou API empêche Braze de capturer automatiquement ces informations via le SDK. |
| current_location | (objet) De la forme {“longitude” : -73.991443, “latitude” : 40.753824} |
| date_of_first_session | (date à laquelle l’utilisateur s’est servi de 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 s’est servi de 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 |
| ddn | (date de naissance) Chaîne au format “AAAA-MM-JJ”, par exemple, 1980-12-21. |
| (string) | |
| email_subscribe | (chaîne de caractères) Les valeurs disponibles sont “opted_in” (explicitement inscrit pour recevoir des messages e-mail), “unsubscribed” (explicitement désinscrit des messages e-mail) et “subscribed” (ni inscrit ni désinscrit). |
| email_open_tracking_disabled | (booléen) true ou false accepté. Définissez ce paramètre 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 ce champ sur true pour désactiver le suivi des clics pour tous les liens contenus dans un prochain e-mail envoyé à cet utilisateur. Disponible uniquement pour SparkPost et SendGrid. |
| external_id | (string) Un identifiant unique pour un profil utilisateur. Après l’attribution d’un external_id, Braze identifie le profil utilisateur sur l’ensemble des appareils d’un utilisateur. Lors de la première instance d’attribution d’une adresse external_id à un profil utilisateur inconnu, Braze migre toutes les données existantes du profil utilisateur vers le nouveau profil utilisateur. |
hachage contenant l’un des id (string), likes (array of strings), num_friends (integer). |
|
| first_name | (string) |
| genre | (string) « H », « F », « A » (autre), « S/O » (sans objet), « P » (préfère ne pas dire) ou nul (inconnu). |
| home_city | (string) |
| langue | (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 ces informations 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 |
| téléphone | (chaîne de caractères) Nous recommandons de fournir les numéros de téléphone au format E.164 format. Pour plus d’informations, reportez-vous à la section Numéros de téléphone des utilisateurs. |
| push_subscribe | (chaîne caractères) Les valeurs disponibles sont “opted_in” (explicitement enregistré pour recevoir des messages push), “unsubscribed” (explicitement opted out of push messages), et “subscribed” (ni opted in ni out). |
| 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 aucune adresse device_id n’est fournie, une adresse est générée 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 » (abonné) et unsubscribed » (désabonné). |
| 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 fuseaux horaires valides sont définies. |
Hachage contenant l’un des éléments suivants : id (nombre entier), screen_name (chaîne de caractères, identifiant X (anciennement Twitter)), followers_count (nombre entier), friends_count (nombre entier), statuses_count (nombre entier). |
Les valeurs linguistiques définies explicitement par l’intermédiaire de cette API sont prioritaires sur les informations relatives aux paramètres linguistiques que Braze reçoit automatiquement de l’appareil.
Demande d’exemple d’attribut utilisateur
Cet exemple contient quatre objets d’attributs d’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 Push
Si vous envoyiez des notifications push avant d’intégrer Braze, soit par vous-même, soit par un autre fournisseur, la migration des jetons push vous permet de continuer à envoyer des notifications push à vos utilisateurs avec des jetons push enregistrés.
Migration automatique grâce au SDK
Après avoir intégré le SDK de Braze, les jetons de push de vos utilisateurs abonnés sont automatiquement migrés la prochaine fois qu’ils ouvrent votre appli. En attendant, vous ne pouvez pas envoyer à ces utilisateurs des notifications push via Braze.
Vous pouvez également migrer vos jetons push manuellement, ce qui vous permettra de réengager vos utilisateurs plus rapidement.
Considérations relatives aux jetons Web
En raison de la nature des jetons de push pour le web, veillez à prendre en compte les é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, sauf si une autre option est spécifiée, telle que manageServiceWorkerExternally ou serviceWorkerLocation. Si votre service de traitement n’est pas configuré correctement, vos utilisateurs risquent de voir leurs jetons push expirer. |
| Jetons expirés | Si un utilisateur n’a pas démarré de session web dans les 60 jours, son jeton push expire. Braze ne pouvant pas migrer les jetons push expirés, vous devez envoyer une amorce de push pour les réengager. |
Migration manuelle via l’API
La migration manuelle des jetons push est le processus d’importation de ces clés précédemment créées dans votre plateforme Braze via l’API.
Migrez par programme les jetons iOS (APNs) et Android (FCM) vers votre plateforme en utilisant le users/track point de terminaison. 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 votre app_id lors de la migration du jeton de notification pour associer le jeton de notification approprié à l’application appropriée. Chaque application (iOS, Android, etc.) a son propre app_id, qui peut être trouvé dans la section Identification de la page Clés API. Assurez-vous d’utiliser les bonnes app_id pour chaque plateforme.
Il n’est pas possible de faire migrer les jetons push Web via l’API. En effet, les jetons push Web n’utilisent pas le même schéma que les autres plateformes.
Si vous tentez de migrer des jetons de notification push Web par programmation, une erreur semblable à celle-ci peut s’afficher :Received '400: Invalid subscription auth' sending to 'https://fcm.googleapis.com/fcm/send
En guise d’alternative à la migration via API, nous vous recommandons d’intégrer le SDK et de permettre à votre base de jetons de se remplir naturellement de nouveau.
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 anonyme temporaire pour chaque jeton afin de vous permettre de continuer à envoyer des messages à ces personnes. Si le jeton existe déjà dans Braze, la demande sera 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 app compatible avec Braze, Braze déplace automatiquement son jeton push importé vers son profil utilisateur Braze et nettoie le profil temporaire.
Braze vérifie une fois par mois s’il existe un profil anonyme avec le drapeau push_token_import qui n’a pas de jeton de poussée. Si le profil anonyme n’a plus de jeton de poussée, Braze supprime le profil. Cependant, si le profil anonyme dispose toujours d’un jeton de poussée, ce qui suggère que l’utilisateur réel ne s’est pas encore connecté à l’appareil avec ledit jeton de poussée, Braze ne fait rien.
Importation de jetons push Android
Les applications iOS n’ont pas besoin de ces étapes car cette plateforme n’a qu’un seul cadre pour afficher le push, et les notifications push sont rendues immédiatement tant que Braze dispose des jetons et certificats push nécessaires.
Si vous devez envoyer une notification push Android à vos utilisateurs avant d’avoir terminé l’intégration du SDK Braze, utilisez des paires clé-valeur pour valider les notifications push.
Vous devez disposer d’un récepteur pour manipuler et afficher les charges utiles de push. Pour notifier le récepteur de la charge utile de push, ajoutez les paires valeur-clé nécessaires à la campagne push. Les valeurs de ces paires dépendent du partenaire push spécifique que vous utilisiez avant Braze.
Pour certains fournisseurs de notifications push, Braze doit aplatir les paires clé-valeur afin qu’elles puissent être correctement interprétées. Pour aplatir les paires clé-valeur pour une application Android spécifique, contactez votre gestionnaire de satisfaction client.
Modifier cette page sur GitHub