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" : "Alex",
"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 (nested custom attribute syntax)
"my_array_of_objects_attribute": { "$add": [{"key": "value"}] },
// Removing from an array of objects (nested custom attribute syntax)
"my_array_of_objects_attribute": { "$remove": [{"$identifier_key": "key", "$identifier_value": "value"}] },
}

Pour les attributs personnalisés de type tableau classique, utilisez add et remove (sans $).
Pour les tableaux d’objets (attributs personnalisés imbriqués), utilisez $add, $remove et $update dans les payloads de requête /users/track. Ces opérateurs appliquent des modifications au niveau de l’objet en faisant correspondre les identifiants ($identifier_key et $identifier_value) et prennent en charge les mises à jour sur place avec $new_object.
Utilisez ce format lorsque vous devez ajouter, supprimer ou mettre à jour des objets à l’intérieur d’un tableau existant tout en préservant le reste de l’état du tableau. Pour des exemples de requêtes complets, consultez Exemple d’API pour les tableaux d’objets et Exemple SDK pour les tableaux d’objets.
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 une fois ajoutés à un profil utilisateur.
Résolution des identifiants
Sauf si vous effectuez une importation anonyme de jetons 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, n’incluez qu’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 lorsque vous utilisez des identifiants :
external_idetuser_aliassont mutuellement exclusifs. Inclure les deux dans le même objet d’attributs utilisateur renvoie une erreur. Pour ajouter un alias à un utilisateur qui possède déjà unexternal_id, utilisez l’endpoint/users/alias/new.emaila la priorité surphone. Siemailetphonesont tous deux inclus dans le même objet, Braze utiliseemailcomme 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.

Pour éviter tout comportement inattendu, utilisez un seul identifiant par objet d’attributs utilisateur. Fournir plusieurs identifiants faisant référence à des profils utilisateur différents peut entraîner l’application des attributs au mauvais profil.
Mettre à jour uniquement les profils existants
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 déjà.

Si vous créez un profil utilisateur uniquement basé sur un alias 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 basé uniquement sur l’alias.
Importation de jetons push
Avant d’importer des jetons push dans Braze, vérifiez bien si vous en avez besoin. Lorsque les SDK Braze sont mis en place, ils gèrent automatiquement les jetons push sans qu’il soit nécessaire de les télécharger via l’API.
Si vous constatez que vous devez les télécharger via l’API, ils peuvent être téléchargés pour des utilisateurs identifiés ou des utilisateurs anonymes. Cela signifie qu’un external_id doit être présent, ou que les utilisateurs anonymes doivent avoir l’indicateur push_token_import défini sur true.

Lors de l’importation de jetons push depuis 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 hérités pour des utilisateurs anonymes sans fournir d’external_id en spécifiant push_token_import comme true.
Lorsque vous spécifiez push_token_import comme true :
external_idetbraze_idne doivent pas être spécifiés- L’objet d’attribut doit contenir un jeton push
- Si le jeton existe déjà dans Braze, la requête est ignorée ; sinon, 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 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 des profils anonymes avec l’indicateur push_token_import qui ne possèdent pas de jeton push. Si le profil anonyme n’a plus de jeton push, Braze supprime le profil. Cependant, si le profil anonyme possède encore un jeton push, ce qui suggère que l’utilisateur réel ne s’est pas encore connecté à l’appareil avec ce jeton push, 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 | Notes |
|---|---|
| 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 stocké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 à un tableau existant avec "my_array_custom_attribute" : { "add" : ["Value3"] }, ou supprimer des valeurs avec "my_array_custom_attribute" : { "remove" : [ "Value1" ]}.Le nombre par défaut et maximum d’éléments dans un tableau est de 500. Vous pouvez mettre à jour le nombre maximum de tableaux dans le tableau de bord de Braze, sous Data Settings > Custom Attributes. Pour plus d’informations, consultez Tableaux. |
| Tableaux 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 pour un utilisateur, comme 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 comme un 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 sur le nombre d’éléments mais ont une taille maximale de 100 Ko. Si une mise à jour fait dépasser cette limite au tableau, Braze rejette la mise à jour et l’attribut reste inchangé. Pour les payloads /users/track et SDK, utilisez $add, $remove et $update pour les opérations sur les tableaux d’objets. Utilisez add et remove (sans $) pour les attributs personnalisés de type tableau classique contenant des valeurs scalaires. Pour plus de détails, consultez Exemple d’API pour les tableaux d’objets, Exemple SDK pour les tableaux d’objets et Exemple de tableau d’objets. |
| Booléens | true ou false |
| Dates | Stockez les dates au format ISO 8601 (recommandé) 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 « T » est un indicateur de temps, pas un espace réservé, et ne doit pas être modifié ni supprimé. Les valeurs de date qui ne correspondent à aucun des formats listés sont stockées en tant que chaînes de caractères sur le profil utilisateur au lieu du type de données Time. Cela signifie que les filtres de segmentation basés sur le temps (tels que « avant », « après » ou « au cours des X derniers jours ») ne fonctionnent pas pour ces attributs. Par exemple, Mar 26 2026 06:12 PM +00:00 est stocké en tant que chaîne de caractères car il ne correspond pas à un format pris en charge. Pour éviter cela, utilisez le format ISO 8601 (par exemple, 2026-03-26T18:12:00Z). Les attributs de temps sans fuseau horaire sont définis par défaut sur minuit UTC (et sont formatés dans 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 dans le tableau de bord dans le fuseau horaire de votre entreprise. Par exemple, 2024-11-10T18:00:00-05:00 (18h00 EST) apparaîtrait comme l’heure équivalente dans le fuseau horaire configuré de votre entreprise. Les événements avec des horodatages dans le futur sont définis par défaut sur l’heure actuelle. Pour les attributs personnalisés classiques, si l’année est inférieure à 0 ou supérieure à 3000, Braze stocke la valeur en tant que chaîne de caractères sur le profil utilisateur. |
| Floats | Les attributs personnalisés de type float sont des nombres positifs ou négatifs avec une virgule décimale. Par exemple, vous pouvez utiliser les floats pour stocker des soldes de compte ou des évaluations d’utilisateurs pour des produits ou services. |
| Entiers | Vous pouvez incrémenter les attributs personnalisés de type entier en assignant un objet avec le champ « inc » et le montant à 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 comme 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 Attributs personnalisés imbriqués. |
| Chaînes de caractères | Les attributs personnalisés de type chaîne de caractères 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 prénoms et noms, les adresses e-mail ou les préférences. |

Pour savoir quand utiliser un événement personnalisé plutôt qu’un attribut personnalisé, consultez Événements personnalisés 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 des 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 de tableaux d’objets utilisant $add, $remove et $update, consultez Exemple d’API pour les tableaux d’objets et Exemple SDK pour les tableaux d’objets.
Champs du profil utilisateur Braze

Les champs de profil utilisateur suivants sont sensibles à la casse, veillez donc à les référencer en minuscules.

Pour une référence des attributs standard destinée aux clients, organisée par catégorie et incluant des conseils pour le SDK, l’API, le CSV et l’ingestion de données cloud, consultez Attributs standard.
| Champ du profil utilisateur | Spécification du type de données |
|---|---|
| alias_name | (string) |
| alias_label | (string) |
| braze_id | (string, 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 | (string) Nous exigeons que les codes pays soient transmis à Braze selon la norme ISO-3166-1 alpha-2. Notre API fait de son mieux pour mapper les pays reçus dans différents formats. Par exemple, « Australia » peut être mappé à « AU ». Cependant, si l’entrée ne correspond pas à une norme ISO-3166-1 alpha-2 donnée, la valeur du pays est définie sur NULL. Définir 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 de caractères au format « YYYY-MM-DD », par exemple, 1980-12-21. |
| (string) | |
| email_subscribe | (string) Les valeurs disponibles sont « opted_in » (explicitement inscrit pour recevoir des e-mails), « unsubscribed » (explicitement désinscrit des e-mails) et « subscribed » (ni inscrit ni désinscrit). |
| email_open_tracking_disabled | (boolean) true ou false accepté. Définissez sur true pour désactiver l’ajout du pixel de suivi d’ouverture à tous les futurs e-mails envoyés à cet utilisateur. |
| email_click_tracking_disabled | (boolean) true ou false accepté. Définissez sur true pour désactiver le suivi des clics pour tous les liens dans un futur e-mail envoyé à cet utilisateur. |
| external_id | (string) Un identifiant unique pour un profil utilisateur. Après l’attribution d’un external_id, Braze identifie le profil utilisateur sur tous les appareils de l’utilisateur. Lors de la première attribution d’un external_id à un profil utilisateur inconnu, Braze migre toutes les données de profil utilisateur existantes vers le nouveau profil utilisateur. |
Hash contenant l’un des éléments suivants : id (string), likes (tableau de chaînes de caractères), num_friends (entier). |
|
| first_name | (string) |
| gender | (string) « M », « F », « O » (autre), « N » (non applicable), « P » (préfère ne pas dire) ou null (inconnu). |
| home_city | (string) |
| language | (string) Nous exigeons que la langue soit transmise à Braze selon la norme ISO-639-1. Pour les langues prises en charge, consultez notre liste des langues acceptées. Définir 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 | (string) Date à laquelle l’e-mail de l’utilisateur a été marqué comme spam. 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 | (string) Nous recommandons de fournir les numéros de téléphone au format E.164. Pour plus de détails, consultez Numéros de téléphone des utilisateurs. |
| push_subscribe | (string) Les valeurs disponibles sont « opted_in » (explicitement inscrit pour recevoir des notifications push), « unsubscribed » (explicitement désinscrit des notifications push) et « subscribed » (ni inscrit ni désinscrit). |
| push_tokens | Tableau d’objets avec les chaînes de caractères app_id et 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é aléatoirement. |
| 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 | (string) Nom du fuseau horaire issu de la base de données des fuseaux horaires IANA (par exemple, « America/New_York » ou « Eastern Time (US & Canada) »). Seules les valeurs de fuseau horaire valides sont définies. |
Hash contenant l’un des éléments suivants : id (entier), screen_name (string, identifiant X (anciennement Twitter)), followers_count (entier), friends_count (entier), statuses_count (entier). |
Les valeurs de langue définies explicitement via cette API ont la priorité sur les informations de localisation 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" : "Alex",
"has_profile_picture" : true,
"dob": "1988-02-14",
"music_videos_favorited" : { "add" : [ "calvinharris-summer" ], "remove" : ["nickiminaj-anaconda"] }
},
{
"external_id" : "user2",
"first_name" : "Lee",
"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" : "Yuri",
"has_profile_picture" : false
},
{
"external_id": "user3",
"subscription_groups" : [{"subscription_group_id" : "subscription_group_identifier", "subscription_state" : "subscribed"}]
}
]
}
Migrer les jetons push
Si vous envoyiez des notifications push avant d’intégrer Braze, que ce soit par vos propres moyens ou via un autre fournisseur, la migration des jetons push vous permet de continuer à envoyer des notifications push à vos utilisateurs disposant de jetons push enregistrés.
Migration automatique via le SDK
Après avoir intégré le SDK Braze, les jetons push de vos utilisateurs ayant accepté les notifications sont automatiquement migrés lors de leur prochaine ouverture de votre application. Jusque-là, vous ne pouvez pas envoyer de notifications push à ces utilisateurs via Braze.
Vous pouvez également migrer vos jetons 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 push Web, assurez-vous de prendre en compte les éléments suivants lors de l’implémentation des notifications push pour le Web :
| Considération | Détails |
|---|---|
| Services de traitement | Par défaut, le SDK Web recherche un service de traitement à l’emplacement ./service-worker, sauf si une autre option est spécifiée, comme manageServiceWorkerExternally ou serviceWorkerLocation. Si votre service de traitement n’est pas correctement configuré, cela peut entraîner l’expiration des jetons push de vos utilisateurs. |
| Jetons expirés | Si un utilisateur n’a pas démarré de session Web dans les 60 jours, son jeton push expire. Comme Braze ne peut pas migrer les jetons push expirés, vous devez envoyer un push primer pour les réengager. |
Migration manuelle via l’API
La migration manuelle des jetons push consiste à importer ces clés précédemment créées dans votre plateforme Braze via l’API.
Migrez de manière programmatique 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 associés à un ID externe) et les utilisateurs anonymes (utilisateurs sans ID externe).
Spécifiez l’app_id de votre application lors de la migration des jetons push pour associer le jeton push approprié à l’application correspondante. Chaque application (iOS, Android, etc.) possède son propre app_id, que vous trouverez dans la section Identification de la page Clés API. Assurez-vous d’utiliser l’app_id de la bonne plateforme.

Il n’est pas possible de migrer les jetons push Web via l’API. En effet, les jetons push Web ne sont pas conformes au même schéma que les autres plateformes.
Si vous tentez de migrer des jetons push Web de manière programmatique, vous pourriez rencontrer une erreur semblable à la suivante : Received '400: Invalid subscription auth' sending to 'https://fcm.googleapis.com/fcm/send
Comme alternative à la migration via l’API, nous vous recommandons d’intégrer le SDK et de laisser votre base de jetons se reconstituer naturellement.
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 de l’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 push depuis 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 intégrant Braze, Braze déplace automatiquement son jeton push importé vers son profil utilisateur Braze et supprime le profil temporaire.
Braze vérifie une fois par mois s’il existe des profils anonymes avec l’indicateur push_token_import qui ne possèdent pas de jeton push. Si le profil anonyme n’a plus de jeton push, Braze supprime le profil. Cependant, si le profil anonyme possède encore un jeton push, ce qui suggère que l’utilisateur réel ne s’est pas encore connecté à l’appareil avec ledit jeton push, Braze ne fait rien.
Importer des jetons push iOS
Lors de la migration de jetons push iOS avec /users/track, le champ gateway n’est pas défini sur le jeton push. Braze considère que les jetons importés via l’API sont des jetons push de premier plan valides, mais ne peut pas déterminer à quel environnement APNs le jeton appartient.
Sans le champ gateway, Braze utilise le paramètre d’environnement de secours configuré pour votre application lors de l’envoi de notifications push. Cela peut entraîner des erreurs BadDeviceToken si l’environnement réel du jeton diffère de l’environnement de secours configuré. Par exemple, un jeton de développement envoyé via la passerelle de production échouera.
Pour éviter les problèmes de distribution :
- Assurez-vous que le paramètre d’environnement de votre application dans le tableau de bord de Braze correspond aux jetons que vous importez.
- Pour les applications en production, importez uniquement les jetons de production.
- Pour les environnements de test, vérifiez que la configuration de votre application et les jetons importés utilisent l’environnement de développement.

Les jetons enregistrés via le SDK Braze incluent automatiquement le champ gateway, car le SDK détecte l’environnement à partir des droits de votre application.
Importer des jetons push Android

La considération suivante s’applique uniquement aux applications Android. Les applications iOS ne nécessitent pas ces étapes, car cette plateforme ne dispose que d’un seul framework pour l’affichage des notifications push, et les notifications push s’affichent immédiatement tant que Braze dispose des jetons push et des certificats nécessaires.
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 push. Pour notifier le récepteur du payload push, ajoutez les paires clé-valeur nécessaires à la Campaign 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 d’une application Android spécifique, contactez votre gestionnaire du succès des clients.
Questions fréquentes
Comment trouver les utilisateurs traités comme spam ou bloqués pour la communication ?
Braze ne fournit pas de liste de spam dédiée dans le tableau de bord. Braze bloque les profils utilisateur individuels (« utilisateurs factices ») ayant plus de cinq millions de sessions, plus de 20 000 noms d’événements personnalisés distincts ou plus de 20 000 noms de produits distincts dans les achats, et cesse d’ingérer toutes les données entrantes pour ce profil, aussi bien depuis les SDK que depuis la REST API. Si un identifiant est bloqué, /users/track peut renvoyer l’erreur "provided external_id is blacklisted and disallowed". Ce libellé est repris tel quel depuis la réponse de l’API. Pour trouver les profils bloqués en raison d’un nombre excessif de sessions, créez un Segment avec le filtre Session Count défini sur more than 5,000,000, exportez le Segment au format CSV, puis vérifiez les champs du profil dans Engagement > Search users ou avec l’endpoint /users/export/ids. Il n’existe pas de filtre équivalent pour les noms d’événements personnalisés distincts ou les noms de produits, contactez donc votre gestionnaire de compte Braze pour identifier les profils bloqués pour ces raisons. Pour en savoir plus, consultez Blocage du spam.