Nutzer:innen-Attribute-Objekt
Eine API-Anfrage mit beliebigen Feldern im Attributobjekt erstellt oder aktualisiert im angegebenen Nutzerprofil ein Attribut mit diesem Namen und dem angegebenen Wert.
Verwenden Sie die Feldnamen des Braze-Nutzerprofils (wie nachfolgend aufgelistet oder alle im Abschnitt Braze-Nutzerprofilfelder aufgeführten), um diese speziellen Werte im Nutzerprofil im Dashboard zu aktualisieren, oder fügen Sie den Nutzer:innen Ihre eigenen angepassten Attributdaten hinzu.
Body des Objekts
{
// 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"}] },
}

Verwenden Sie für reguläre Array-Attribute add und remove (ohne $).
Verwenden Sie für Arrays von Objekten (verschachtelte angepasste Attribute) $add, $remove und $update in den Payloads von /users/track-Anfragen. Diese Operatoren wenden Änderungen auf Objektebene an, indem sie Bezeichner abgleichen ($identifier_key und $identifier_value), und unterstützen direkte Updates mit $new_object.
Verwenden Sie dieses Format, wenn Sie Objekte innerhalb eines bestehenden Arrays anhängen, entfernen oder aktualisieren möchten, ohne den restlichen Zustand des Arrays zu verändern. Vollständige Anfragebeispiele finden Sie unter API-Beispiel für ein Array von Objekten und SDK-Beispiel für ein Array von Objekten.
Um ein Profilattribut zu entfernen, setzen Sie es auf null. Einige Felder wie external_id und user_alias können nicht mehr entfernt werden, nachdem sie einem Nutzerprofil hinzugefügt wurden.
Auflösung von Bezeichnern
Sofern Sie keinen anonymen Push-Token-Import durchführen, muss jedes Nutzerattribut-Objekt mindestens einen Bezeichner enthalten: external_id, user_alias, braze_id, email oder phone. Geben Sie nach Möglichkeit nur einen Bezeichner pro Objekt an, damit eindeutig ist, welches Nutzerprofil aktualisiert oder erstellt wird.
Beachten Sie bei der Verwendung von Bezeichnern Folgendes:
external_idunduser_aliasschließen sich gegenseitig aus. Wenn beide im selben Nutzerattribut-Objekt enthalten sind, wird ein Fehler zurückgegeben. Um Nutzer:innen, die bereits eineexternal_idhaben, einen Alias hinzuzufügen, verwenden Sie den Endpunkt/users/alias/new.emailhat Vorrang vorphone. Wenn sowohlemailals auchphoneim selben Objekt enthalten sind, verwendet Brazeemailals Bezeichner. Die Attribute werden also auf das Nutzerprofil angewendet, das mit dieser E-Mail-Adresse verknüpft ist – selbst wenn die Telefonnummer zu einem anderen Profil gehört.

Um unerwartetes Verhalten zu vermeiden, verwenden Sie einen einzigen Bezeichner pro Nutzerattribut-Objekt. Wenn Sie mehrere Bezeichner angeben, die auf unterschiedliche Nutzerprofile verweisen, können Attribute auf das falsche Profil angewendet werden.
Nur bestehende Profile aktualisieren
Wenn Sie in Braze nur bestehende Nutzerprofile aktualisieren möchten, übergeben Sie im Body Ihrer Anfrage den Schlüssel _update_existing_only mit dem Wert true. Wird dieser Wert weggelassen, erstellt Braze ein neues Nutzerprofil, falls die external_id noch nicht existiert.

Wenn Sie über den Endpunkt /users/track ein reines Alias-Nutzerprofil erstellen, müssen Sie _update_existing_only auf false setzen. Wenn Sie diesen Wert weglassen, erstellt Braze das reine Alias-Profil nicht.
Push-Token-Import
Bevor Sie Push-Token in Braze importieren, prüfen Sie, ob dies überhaupt nötig ist. Sobald die Braze SDKs implementiert sind, verarbeiten sie Push-Token automatisch, sodass ein Upload über die API nicht erforderlich ist.
Falls Sie die Token doch über die API hochladen müssen, können Sie dies entweder für identifizierte oder für anonyme Nutzer:innen tun. Es muss also entweder eine external_id vorhanden sein, oder bei anonymen Nutzer:innen muss das Flag push_token_import auf true gesetzt sein.

Beim Import von Push-Token aus anderen Systemen ist nicht immer eine external_id verfügbar. Um während Ihrer Umstellung auf Braze weiterhin mit diesen Nutzer:innen kommunizieren zu können, können Sie die bisherigen Token für anonyme Nutzer:innen ohne Angabe einer external_id importieren, indem Sie push_token_import auf true setzen.
Wenn Sie push_token_import auf true setzen:
external_idundbraze_idsollten nicht angegeben werden- Das Attribut-Objekt muss ein Push-Token enthalten
- Wenn das Token in Braze bereits existiert, wird die Anfrage ignoriert. Andernfalls erstellt Braze für jedes Token ein temporäres, anonymes Nutzerprofil, damit Sie diesen Personen weiterhin Nachrichten senden können
Nach dem Import verschiebt Braze das importierte Push-Token automatisch in das jeweilige Braze-Nutzerprofil und bereinigt das temporäre Profil, sobald die einzelnen Nutzer:innen die Braze-fähige Version Ihrer App starten.
Braze prüft einmal im Monat, ob es anonyme Profile mit dem Flag push_token_import gibt, die kein Push-Token haben. Hat ein anonymes Profil kein Push-Token mehr, löscht Braze das Profil. Besitzt das anonyme Profil dagegen noch ein Push-Token – was darauf hindeutet, dass sich die tatsächliche Person noch nicht auf dem Gerät mit diesem Push-Token angemeldet hat –, unternimmt Braze nichts.
Weitere Informationen finden Sie unter Migration von Push-Token.
Datentypen für angepasste Attribute
Die folgenden Datentypen können als angepasstes Attribut gespeichert werden:
| Datentyp | Hinweise |
|---|---|
| Arrays | Arrays als angepasste Attribute werden unterstützt. Wenn Sie ein Element hinzufügen, wird es an das Ende des Arrays angehängt. Existiert das Element bereits, wird es von seiner aktuellen Position an das Ende verschoben. Es werden nur eindeutige Werte gespeichert. Der Import von ['hotdog','hotdog','hotdog','pizza'] ergibt beispielsweise ['hotdog', 'pizza'].Sie können ein Array direkt setzen (zum Beispiel "my_array_custom_attribute":[ "Value1", "Value2" ]), mit "my_array_custom_attribute" : { "add" : ["Value3"] } zu einem bestehenden Array hinzufügen oder mit "my_array_custom_attribute" : { "remove" : [ "Value1" ]} Werte entfernen.Die standardmäßige Höchstzahl an Elementen in einem Array beträgt 500. Sie können die Höchstzahl im Braze-Dashboard unter Dateneinstellungen > Angepasste Attribute anpassen. Weitere Informationen finden Sie unter Arrays. |
| Array von Objekten | Mit einem Array von Objekten definieren Sie eine Liste von Objekten, wobei jedes Objekt eine Reihe von Attributen enthält. Verwenden Sie diesen Typ, um mehrere Sätze zusammengehöriger Daten für Nutzer:innen zu speichern, etwa Hotelaufenthalte, Kaufhistorie oder Präferenzen. Definieren Sie zum Beispiel ein angepasstes Attribut namens hotel_stays in einem Nutzerprofil als Array, in dem jedes Objekt einen eigenen Aufenthalt mit Attributen wie hotel_name, check_in_date und nights_stayed darstellt.Arrays von Objekten haben keine Begrenzung bei der Anzahl der Elemente, aber eine maximale Größe von 100 KB. Wenn ein Update dazu führt, dass das Array diese Grenze überschreitet, verwirft Braze das Update, und das Attribut bleibt unverändert. Verwenden Sie für /users/track- und SDK-Payloads $add, $remove und $update für Operationen auf Arrays von Objekten. Verwenden Sie add und remove (ohne $) für reguläre Array-Attribute mit skalaren Werten. Details finden Sie unter API-Beispiel für ein Array von Objekten, SDK-Beispiel für ein Array von Objekten und Beispiel für ein Array von Objekten. |
| Boolesche Werte | true oder false |
| Datumsangaben | Speichern Sie Datumsangaben im Format ISO 8601 (empfohlen) oder in einem dieser Formate: - 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 Beachten Sie, dass „T“ ein Zeitkennzeichen und kein Platzhalter ist und weder geändert noch entfernt werden darf. Datumswerte, die keinem der aufgeführten Formate entsprechen, werden im Nutzerprofil als Strings statt mit dem Datentyp „Zeit“ gespeichert. Zeitbasierte Segmentierungsfilter (wie „vor“, „nach“ oder „in den letzten X Tagen“) funktionieren für diese Attribute dann nicht. Mar 26 2026 06:12 PM +00:00 wird beispielsweise als String gespeichert, da es keinem unterstützten Format entspricht. Um dies zu vermeiden, verwenden Sie das Format ISO 8601 (etwa 2026-03-26T18:12:00Z). Zeitstempel, Zeitzonen und Filterung nach wiederkehrenden Daten: Zeitattribute ohne Zeitzone werden standardmäßig auf Mitternacht UTC gesetzt (und im Dashboard als Entsprechung von Mitternacht UTC in der Zeitzone des Unternehmens angezeigt). Um eine Zeitzone anzugeben, hängen Sie einen UTC-Offset an den Zeitstempel an (zum Beispiel 2024-11-10T18:00:00-05:00 für EST). Fehlt der Zeitzonen-Offset oder ist er falsch formatiert, wird standardmäßig UTC verwendet. Wenn ein Zeitattribut gesetzt wird, berechnet Braze ein wiederkehrendes Ereignisdatum (Monat und Tag) aus dem Kalenderdatum im Offset des Zeitstempels. Dieses wiederkehrende Ereignisdatum wird vom Filter „Tag des wiederkehrenden Ereignisses“ und bei Vergleichen des Tages im Jahr für verschachtelte angepasste Attribute verwendet. Identische Zeitpunkte mit unterschiedlichen Offsets ergeben unterschiedliche wiederkehrende Daten. 2026-10-13T00:09:49+09:00 speichert beispielsweise den 13. Oktober, während 2026-10-12T15:09:49Z (derselbe Zeitpunkt in UTC) den 12. Oktober speichert. Um das beabsichtigte lokale Kalenderdatum für die Filterung nach wiederkehrenden Daten beizubehalten, verwenden Sie einen Zeitstempel mit dem lokalen Offset – zum Beispiel 2026-10-13T00:00:00+09:00, um den 13. Oktober zu speichern. Details finden Sie unter Details zu Zeitattributen. Zeiten werden im Dashboard in der Zeitzone Ihres Unternehmens angezeigt. 2024-11-10T18:00:00-05:00 (18:00 Uhr EST) würde beispielsweise als entsprechende Uhrzeit in der konfigurierten Zeitzone Ihres Unternehmens erscheinen. Events mit Zeitstempeln in der Zukunft werden standardmäßig auf die aktuelle Zeit gesetzt. Wenn bei regulären angepassten Attributen das Jahr kleiner als 0 oder größer als 3000 ist, speichert Braze den Wert als String im Nutzerprofil. |
| Gleitkommazahlen | Angepasste Attribute vom Typ Gleitkommazahl sind positive oder negative Zahlen mit Dezimalstellen. Sie können Gleitkommazahlen zum Beispiel verwenden, um Kontostände oder Bewertungen von Produkten oder Diensten durch Nutzer:innen zu speichern. |
| Ganzzahlen | Sie können angepasste Attribute vom Typ Ganzzahl inkrementieren, indem Sie ein Objekt mit dem Feld „inc“ und dem hinzuzufügenden Betrag zuweisen. Beispiel: "my_custom_attribute_2" : {"inc" : int_value}, |
| Verschachtelte angepasste Attribute | Verschachtelte angepasste Attribute definieren eine Reihe von Attributen als Eigenschaft eines anderen Attributs. Wenn Sie ein Objekt als angepasstes Attribut definieren, fügen Sie diesem Objekt eine Reihe von Attributen hinzu. Weitere Informationen finden Sie unter Verschachtelte angepasste Attribute. |
| Strings | Angepasste Attribute vom Typ String sind Zeichenfolgen zum Speichern von Textdaten. Sie können Strings zum Beispiel verwenden, um Vor- und Nachnamen, E-Mail-Adressen oder Präferenzen zu speichern. |

Hinweise dazu, wann Sie ein angepasstes Event und wann ein angepasstes Attribut verwenden sollten, finden Sie unter Angepasste Events und Angepasste Attribute.
Beispiel für ein Array von Objekten
Mit diesem Array von Objekten können Sie Segmente auf Basis bestimmter Kriterien innerhalb der Aufenthalte erstellen und Ihre Nachrichten mit Liquid-Templates anhand der Daten jedes einzelnen Aufenthalts personalisieren.
{"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 }
]}
Beispiele für Arrays von Objekten mit $add, $remove und $update finden Sie unter API-Beispiel für ein Array von Objekten und SDK-Beispiel für ein Array von Objekten.
Braze-Nutzerprofilfelder

Bei den folgenden Nutzerprofilfeldern wird zwischen Groß- und Kleinschreibung unterschieden. Referenzieren Sie diese Felder daher unbedingt in Kleinbuchstaben.

Eine kundenorientierte, nach Kategorien geordnete Referenz der Standardattribute mit Hinweisen zu SDK, API, CSV und Cloud Data Ingestion finden Sie unter Standardattribute.
| Nutzerprofilfeld | Spezifikation des Datentyps |
|---|---|
| alias_name | (String) |
| alias_label | (String) |
| braze_id | (String, optional) Wenn ein Nutzerprofil vom SDK erkannt wird, wird ein anonymes Nutzerprofil mit einer zugehörigen braze_id erstellt. Die braze_id wird automatisch von Braze zugewiesen, kann nicht bearbeitet werden und ist gerätespezifisch. |
| country | (String) Ländercodes müssen im Standard ISO-3166-1 alpha-2 an Braze übergeben werden. Unsere API versucht, Länder, die in anderen Formaten empfangen werden, bestmöglich zuzuordnen. So kann beispielsweise „Australia“ zu „AU“ zugeordnet werden. Entspricht die Eingabe jedoch keinem ISO-3166-1-alpha-2-Standard, wird der Länderwert auf NULL gesetzt. Wenn Sie country für Nutzer:innen per CSV-Import oder API setzen, kann Braze diese Information nicht mehr automatisch über das SDK erfassen. |
| current_location | (Objekt) In der Form {“longitude”: -73.991443, “latitude”: 40.753824} |
| date_of_first_session | (Datum, an dem die Person die App zum ersten Mal genutzt hat) String im Format ISO 8601 oder in einem der folgenden Formate: - 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 | (Datum, an dem die Person die App zuletzt genutzt hat) String im Format ISO 8601 oder in einem der folgenden Formate: - 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 | (Geburtsdatum) String im Format „YYYY-MM-DD“, zum Beispiel 1980-12-21. |
| (String) | |
| email_subscribe | (String) Verfügbare Werte sind „opted_in“ (ausdrücklich für den Empfang von E-Mails registriert), „unsubscribed“ (ausdrücklich vom Empfang von E-Mails abgemeldet) und „subscribed“ (weder angemeldet noch abgemeldet). |
| email_open_tracking_disabled | (Boolescher Wert) true oder false zulässig. Setzen Sie den Wert auf true, um zu verhindern, dass das Tracking-Pixel für Öffnungen allen zukünftigen E-Mails an diese Person hinzugefügt wird. |
| email_click_tracking_disabled | (Boolescher Wert) true oder false zulässig. Setzen Sie den Wert auf true, um das Klick-Tracking für alle Links in zukünftigen E-Mails an diese Person zu deaktivieren. |
| external_id | (String) Eine eindeutige ID für ein Nutzerprofil. Nach der Zuweisung einer external_id identifiziert Braze das Nutzerprofil über alle Geräte der Person hinweg. Wird einem unbekannten Nutzerprofil zum ersten Mal eine external_id zugewiesen, migriert Braze alle vorhandenen Nutzerprofildaten in das neue Nutzerprofil. |
Hash mit beliebigen der folgenden Felder: id (String), likes (String-Array), num_friends (Ganzzahl). |
|
| first_name | (String) |
| gender | (String) „M“, „F“, „O“ (divers), „N“ (nicht zutreffend), „P“ (keine Angabe) oder null (unbekannt). |
| home_city | (String) |
| language | (String) Die Sprache muss im Standard ISO-639-1 an Braze übergeben werden. Unterstützte Sprachen finden Sie in unserer Liste der akzeptierten Sprachen. Wenn Sie language für Nutzer:innen per CSV-Import oder API setzen, kann Braze diese Information nicht mehr automatisch über das SDK erfassen. |
| last_name | (String) |
| marked_email_as_spam_at | (String) Datum, an dem die E-Mail der Person als Spam markiert wurde. Wird im Format ISO 8601 oder in einem der folgenden Formate angezeigt: - 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) Wir empfehlen, Telefonnummern im Format E.164 anzugeben. Details finden Sie unter Telefonnummern von Nutzer:innen. |
| push_subscribe | (String) Verfügbare Werte sind „opted_in“ (ausdrücklich für den Empfang von Push-Nachrichten registriert), „unsubscribed“ (ausdrücklich vom Empfang von Push-Nachrichten abgemeldet) und „subscribed“ (weder angemeldet noch abgemeldet). |
| push_tokens | Array von Objekten mit den Strings app_id und token. Optional können Sie eine device_id für das Gerät angeben, mit dem dieses Token verknüpft ist, zum Beispiel [{"app_id": App Identifier, "token": "abcd", "device_id": "optional_field_value"}]. Wird keine device_id angegeben, wird eine zufällig generiert. |
| subscription_groups | Array von Objekten mit den Strings subscription_group_id und subscription_state, zum Beispiel [{"subscription_group_id" : "subscription_group_identifier", "subscription_state" : "subscribed"}]. Verfügbare Werte für subscription_state sind „subscribed“ und „unsubscribed“. |
| time_zone | (String) Name der Zeitzone aus der IANA Time Zone Database (zum Beispiel „America/New_York“ oder „Eastern Time (US & Canada)“). Es werden nur gültige Zeitzonenwerte gesetzt. |
Hash mit beliebigen der folgenden Felder: id (Ganzzahl), screen_name (String, X-Handle (ehemals Twitter)), followers_count (Ganzzahl), friends_count (Ganzzahl), statuses_count (Ganzzahl). |
Sprachwerte, die explizit über diese API gesetzt werden, haben Vorrang vor den Gebietsschema-Informationen, die Braze automatisch vom Gerät erhält.
Beispielanfrage für Nutzerattribute
Dieses Beispiel enthält vier Nutzerattribut-Objekte von insgesamt 75 zulässigen Attribut-Objekten pro API-Aufruf.
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"}]
}
]
}
Push-Token migrieren
Wenn Sie vor der Integration von Braze bereits Push-Benachrichtigungen versendet haben, entweder selbst oder über einen anderen Anbieter, können Sie mit der Push-Token-Migration weiterhin Push-Benachrichtigungen an Ihre Nutzer:innen mit registrierten Push-Token senden.
Automatische Migration über das SDK
Nachdem Sie das Braze SDK integriert haben, werden die Push-Token Ihrer Nutzer:innen mit Opt-in automatisch migriert, sobald diese Ihre App das nächste Mal öffnen. Bis dahin können Sie diesen Nutzer:innen keine Push-Benachrichtigungen über Braze senden.
Alternativ können Sie Ihre Push-Token manuell migrieren, um Ihre Nutzer:innen schneller wieder zu erreichen.
Hinweise zu Web-Token
Aufgrund der Besonderheiten von Web-Push-Token sollten Sie bei der Implementierung von Push für das Web Folgendes beachten:
| Hinweis | Details |
|---|---|
| Service-Worker | Standardmäßig sucht das Web SDK unter ./service-worker nach einem Service-Worker, sofern keine andere Option angegeben ist, z. B. manageServiceWorkerExternally oder serviceWorkerLocation. Wenn Ihr Service-Worker nicht korrekt eingerichtet ist, kann dies zu abgelaufenen Push-Token bei Ihren Nutzer:innen führen. |
| Abgelaufene Token | Wenn ein:e Nutzer:in innerhalb von 60 Tagen keine Web-Sitzung gestartet hat, läuft das Push-Token ab. Da Braze abgelaufene Push-Token nicht migrieren kann, müssen Sie einen Push-Primer senden, um diese Nutzer:innen wieder zu erreichen. |
Manuelle Migration über die API
Bei der manuellen Push-Token-Migration importieren Sie diese zuvor erstellten Schlüssel über die API in Ihre Braze-Plattform.
Migrieren Sie iOS-Token (APNs) und Android-Token (FCM) programmatisch auf Ihre Plattform, indem Sie den Endpunkt users/track verwenden. Sie können sowohl identifizierte Nutzer:innen (Nutzer:innen mit einer zugehörigen externen ID) als auch anonyme Nutzer:innen (Nutzer:innen ohne externe ID) migrieren.

Braze geht davon aus, dass importierte Push-Token gültige Vordergrund-Push-Token für Ihre App und Umgebung sind.
Beim Import von iOS-Token speichert Braze kein Apple Push Notification service (APNs)-Gateway (development oder production) für diese. Braze sendet an diese Token über das konfigurierte Gateway Ihrer App. Wenn ein Token für die andere Umgebung generiert wurde, lehnt APNs es mit BadDeviceToken ab und der Versand führt zu einem Bounce.
Braze speichert ein Gateway für das Token nur, wenn das SDK später dasselbe Token registriert und ein Gateway meldet.
Geben Sie bei der Push-Token-Migration die app_id Ihrer App an, um das jeweilige Push-Token mit der richtigen App zu verknüpfen. Jede App (iOS, Android usw.) hat ihre eigene app_id, die Sie im Abschnitt Identifizierung auf der Seite API-Schlüssel finden. Achten Sie darauf, die app_id der richtigen Plattform zu verwenden.

Web-Push-Token können nicht über die API migriert werden, da sie nicht demselben Schema wie andere Plattformen entsprechen.
Wenn Sie versuchen, Web-Push-Token programmatisch zu migrieren, wird möglicherweise ein Fehler wie der folgende angezeigt: Received '400: Invalid subscription auth' sending to 'https://fcm.googleapis.com/fcm/send
Als Alternative zur API-Migration empfehlen wir, das SDK zu integrieren und Ihren Token-Bestand auf natürliche Weise wieder aufzubauen.
Setzen Sie für identifizierte Nutzer:innen das Flag push_token_import auf false (oder lassen Sie den Parameter weg) und geben Sie die Werte external_id, app_id und token im Objekt attributes der Nutzer:innen an.
Zum Beispiel:
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"}
]
}
]
}'
Beim Import von Push-Token aus anderen Systemen ist nicht immer eine external_id verfügbar. Setzen Sie in diesem Fall Ihr Flag push_token_import auf true und geben Sie die Werte app_id und token an. Braze erstellt für jedes Token ein temporäres, anonymes Nutzerprofil, damit Sie diesen Personen weiterhin Nachrichten senden können. Wenn das Token in Braze bereits existiert, wird die Anfrage ignoriert.
Zum Beispiel:
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"}
]
}
]
}'
Wenn anonyme Nutzer:innen nach dem Import die Braze-fähige Version Ihrer App starten, verschiebt Braze das importierte Push-Token automatisch in das jeweilige Braze-Nutzerprofil und bereinigt das temporäre Profil.
Braze sucht einmal im Monat nach anonymen Profilen mit dem Flag push_token_import, die kein Push-Token haben. Wenn ein anonymes Profil kein Push-Token mehr hat, löscht Braze das Profil. Hat das anonyme Profil jedoch noch ein Push-Token, was darauf hindeutet, dass sich die tatsächliche Person noch nicht auf dem Gerät mit diesem Push-Token angemeldet hat, unternimmt Braze nichts.
iOS-Push-Token importieren
Bei der Migration von iOS-Push-Token mit /users/track wird das Feld gateway für das Push-Token nicht gesetzt. Braze geht davon aus, dass über die API importierte Token gültige Vordergrund-Push-Token sind, kann aber nicht bestimmen, zu welcher APNs-Umgebung das Token gehört.
Ohne das Gateway-Feld verwendet Braze beim Senden von Push-Benachrichtigungen die konfigurierte Fallback-Umgebung Ihrer App. Dies kann zu BadDeviceToken-Fehlern führen, wenn die tatsächliche Umgebung des Tokens von der konfigurierten Fallback-Umgebung abweicht. Beispielsweise schlägt ein Entwicklungs-Token fehl, das über das Produktions-Gateway gesendet wird.
So vermeiden Sie Probleme bei der Zustellung:
- Stellen Sie sicher, dass die Umgebungseinstellung Ihrer App im Braze-Dashboard mit den importierten Token übereinstimmt.
- Importieren Sie für Produktions-Apps nur Produktions-Token.
- Überprüfen Sie für Testumgebungen, dass sowohl Ihre App-Konfiguration als auch die importierten Token die Entwicklungsumgebung verwenden.

Über das Braze SDK registrierte Token enthalten das Gateway-Feld automatisch, da das SDK die Umgebung anhand der Entitlements Ihrer App erkennt.
Android-Push-Token importieren

Der folgende Hinweis gilt nur für Android-Apps. iOS-Apps benötigen diese Schritte nicht, da diese Plattform nur ein Framework für die Anzeige von Push-Benachrichtigungen hat und Push-Benachrichtigungen sofort angezeigt werden, solange Braze über die erforderlichen Push-Token und Zertifikate verfügt.
Wenn Sie Android-Push-Benachrichtigungen an Ihre Nutzer:innen senden müssen, bevor die Integration des Braze SDK abgeschlossen ist, verwenden Sie Schlüssel-Wert-Paare, um Push-Benachrichtigungen zu validieren.
Sie benötigen einen Receiver, der Push-Payloads verarbeitet und anzeigt. Um den Receiver über die Push-Payload zu benachrichtigen, fügen Sie der Push-Campaign die erforderlichen Schlüssel-Wert-Paare hinzu. Die Werte dieser Paare hängen von dem jeweiligen Push-Partner ab, den Sie vor Braze verwendet haben.

Bei einigen Anbietern von Push-Benachrichtigungen muss Braze die Schlüssel-Wert-Paare vereinfachen (flatten), damit sie korrekt interpretiert werden können. Wenden Sie sich an Ihren Customer-Success-Manager, um Schlüssel-Wert-Paare für eine bestimmte Android-App zu vereinfachen.
Häufig gestellte Fragen
Wie finde ich Nutzer:innen, die als Spam eingestuft oder für Messaging blockiert wurden?
Braze stellt im Dashboard keine eigene Spam-Liste bereit. Braze blockiert einzelne Nutzerprofile („Dummy-Nutzer:innen“) mit mehr als fünf Millionen Sitzungen, mehr als 20.000 unterschiedlichen Namen für angepasste Events oder mehr als 20.000 unterschiedlichen Produktnamen bei Käufen. Für ein solches Profil nimmt Braze keine eingehenden Daten mehr auf, weder über die SDKs noch über die REST API. Wenn ein Bezeichner blockiert ist, gibt /users/track möglicherweise den Fehler "provided external_id is blacklisted and disallowed" zurück. Dieser Wortlaut stammt unverändert aus der API-Antwort. Um Profile zu finden, die wegen zu vieler Sitzungen blockiert wurden, erstellen Sie ein Segment mit dem Filter Session Count, der auf more than 5,000,000 gesetzt ist. Exportieren Sie das Segment anschließend als CSV und gleichen Sie die Profilfelder unter Engagement > Search users oder über den Endpunkt /users/export/ids ab. Für unterschiedliche Namen angepasster Events oder Produktnamen gibt es keinen entsprechenden Filter. Wenden Sie sich daher an Ihren Braze Account Manager, um Profile zu identifizieren, die aus diesen Gründen blockiert wurden. Weitere Informationen finden Sie unter Spam-Blockierung.