Ausführliche Protokolle lesen
Auf dieser Seite wird erläutert, wie die ausführliche Protokollausgabe des Braze SDK interpretiert werden kann. Für jeden Messaging-Kanal finden Sie die wichtigsten Protokolleinträge, deren Bedeutung und häufige Probleme, auf die Sie achten sollten.
Bevor Sie beginnen, stellen Sie sicher, dass Sie die ausführliche Protokollierung aktiviert haben und wissen, wie Sie Protokolle auf Ihrer Plattform erfassen können.
Sessions
Sessions bilden die Grundlage der Braze-Analytics und der Nachrichtenzustellung. Viele Messaging-Features – darunter In-App Messages und Content Cards – sind darauf angewiesen, dass eine gültige Session gestartet wird, bevor sie funktionieren können. Wenn Sessions nicht korrekt protokolliert werden, sollten Sie dies zuerst untersuchen. Weitere Informationen zur Aktivierung des Session-Trackings finden Sie unter Schritt 5: Nutzer:innen-Session-Tracking aktivieren.

Beginnen Sie die SDK-Fehlerbehebung mit Sessions. Wenn Sessions nicht protokolliert werden, verhalten sich In-App Messages, Content Cards und viele Analytics-Events nicht wie erwartet. Nachdem Sie die Session-Start-/End-Einträge bestätigt haben, überprüfen Sie die Zeilen für angepasste Events in derselben Log-Erfassung. Siehe Verbose Logging, um das Logging zu aktivieren und einen teilbaren Export zu erstellen.
Wichtige Log-Einträge
Session-Start:
Started user session (id: <SESSION_ID>)
Session-Ende:
Ended user session (id: <SESSION_ID>, duration: <DURATION>s)
Logged event:
- userId: <USER_ID>
- sessionId: <SESSION_ID>
- data: sessionEnd(duration: <DURATION>)
Session-Start:
Achten Sie auf die folgenden Einträge:
New session created with ID: <SESSION_ID>
Session start event for new session received
Completed the openSession call
Opened session with activity: <ACTIVITY_NAME>
Filtern Sie Netzwerkanfragen nach Ihrem konfigurierten Braze-Endpunkt (zum Beispiel sdk.iad-01.braze.com), um das Session-Start-Event (ss) zu sehen.
Session-Ende:
Closed session with activity: <ACTIVITY_NAME>
Closed session with session ID: <SESSION_ID>
Requesting data flush on internal session close flush timer.
Was Sie überprüfen sollten
- Stellen Sie sicher, dass ein Session-Start-Log erscheint, wenn die App gestartet wird.
- Wenn Sie keinen Session-Start sehen, überprüfen Sie, ob das SDK korrekt initialisiert ist und ob
openSession(Android) aufgerufen wird. - Bestätigen Sie unter Android, dass eine Netzwerkanfrage an den Braze-Endpunkt gesendet wird. Wenn Sie diese nicht sehen, überprüfen Sie Ihren API-Schlüssel und die Endpunkt-Konfiguration.
Push-Benachrichtigungen
Push-Benachrichtigungsprotokolle helfen Ihnen zu überprüfen, ob Geräte-Token registriert sind, Benachrichtigungen zugestellt werden und Klick-Events getrackt werden.
Token-Registrierung
Wenn eine Sitzung beginnt, registriert das SDK das Push-Token des Geräts bei Braze.
Updated push notification authorization:
- authorization: authorized
Received remote notifications device token: <PUSH_TOKEN>
Filtern Sie nach Anfragen an Ihren konfigurierten Braze-Endpunkt (zum Beispiel sdk.iad-01.braze.com) und suchen Sie nach push_token in den Attributen des Anfragekörpers:
"attributes": [
{
"push_token": "<PUSH_TOKEN>",
"user_id": "<USER_ID>"
}
]
Bestätigen Sie außerdem, dass die Geräteinformationen Folgendes enthalten:
"device": {
"ios_push_auth": "authorized",
"remote_notification_enabled": 1
}
Suchen Sie nach dem FCM-Registrierungsprotokoll:
Registering for Firebase Cloud Messaging token using sender id: <SENDER_ID>
Überprüfen Sie Folgendes:
com_braze_firebase_cloud_messaging_registration_enabledisttrue.- Die FCM-Sender-ID stimmt mit Ihrem Firebase-Projekt überein.
Ein häufiger Fehler ist SENDER_ID_MISMATCH, was bedeutet, dass die konfigurierte Sender-ID nicht mit Ihrem Firebase-Projekt übereinstimmt.
Was Sie überprüfen sollten
- Wenn
push_tokenim Anfragekörper fehlt, wurde das Token nicht erfasst. Überprüfen Sie die Push-Einrichtung in Ihrer App-Konfiguration. - Wenn
ios_push_authden Wertdeniedoderprovisionalanzeigt, hat die bzw. der Nutzer:in keine vollständige Push-Berechtigung erteilt. - Wenn auf Android
SENDER_ID_MISMATCHangezeigt wird, aktualisieren Sie Ihre FCM-Sender-ID, damit sie mit Ihrem Firebase-Projekt übereinstimmt.
Push-Zustellung und Klick
Wenn eine Push-Benachrichtigung angetippt wird, protokolliert das SDK die Verarbeitung und Klick-Events.
Processing push notification:
- date: <TIMESTAMP>
- silent: false
- userInfo: {
"ab": { ... },
"ab_uri": "<DEEP_LINK_OR_URL>",
"aps": {
"alert": {
"body": "<MESSAGE_BODY>",
"title": "<MESSAGE_TITLE>"
}
}
}
Gefolgt vom Klick-Event:
Logged event:
- userId: <USER_ID>
- sessionId: <SESSION_ID>
- data: pushClick(campaignId: ...)
Wenn die Push-Benachrichtigung einen Deeplink enthält, sehen Sie außerdem:
Opening '<URL>':
- channel: notification
- useWebView: false
- isUniversalLink: false
BrazeFirebaseMessagingService: Got Remote Message from FCM
Gefolgt vom Push-Payload und den Anzeigeprotokollen. Für Deeplinks suchen Sie nach dem Deep Link Delegate oder den UriAction-Einträgen.
Was Sie überprüfen sollten
- Überprüfen Sie, ob der Push-Payload den erwarteten
title,bodyund etwaige Deeplinks (ab_uri) enthält. - Bestätigen Sie, dass nach dem Antippen ein
pushClick-Event protokolliert wird. - Wenn das Klick-Event fehlt, prüfen Sie, ob Ihr App-Delegate oder Benachrichtigungs-Handler Push-Events korrekt an das Braze SDK weiterleitet.
In-App-Nachrichten
In-App-Nachrichten-Logs zeigen Ihnen den gesamten Lebenszyklus: Zustellung vom Server, Auslösung basierend auf Events, Anzeige, Impression-Protokollierung und Klick-Tracking.
Nachrichtenzustellung
Wenn Nutzer:innen eine Sitzung starten und für eine In-App-Nachricht infrage kommen, empfängt das SDK den Nachrichten-Payload vom Server.
Filtern Sie nach Antworten von Ihrem konfigurierten Braze-Endpunkt (z. B. sdk.iad-01.braze.com), die die In-App-Nachrichten-Daten enthalten.
Der Antwort-Body enthält den Nachrichten-Payload, einschließlich:
"templated_message": {
"data": {
"message": "...",
"type": "HTML",
"message_close": "SWIPE",
"trigger_id": "<TRIGGER_ID>"
},
"type": "inapp"
}
Suchen Sie nach dem passenden Trigger-Event-Log:
Triggering action: <CAMPAIGN_BSON_ID>
Dies bestätigt, dass die In-App-Nachricht einem Trigger-Event zugeordnet wurde.
Nachrichtenanzeige und Impression
In-app message ready for display:
- triggerId: (campaignId: <CAMPAIGN_ID>, ...)
- extras: { ... }
Darauf folgt das Impression-Log:
Logged event:
- userId: <USER_ID>
- sessionId: <SESSION_ID>
- data: inAppMessageImpression(triggerIds: [...])
handleExistingInAppMessagesInStackWithDelegate:: Displaying in-app message
Klick- und Button-Events
Wenn Nutzer:innen auf einen Button tippen oder die Nachricht schließen:
Logged event:
- userId: <USER_ID>
- sessionId: <SESSION_ID>
- data: inAppMessageButtonClick(triggerIds: [...], buttonId: "<BUTTON_ID>")
Wenn keine weiteren getriggerten Nachrichten übereinstimmen, sehen Sie außerdem:
No matching trigger for event.
Dies ist erwartetes Verhalten, wenn keine zusätzlichen In-App-Nachrichten für das Event konfiguriert sind.
Filtern Sie nach Anfragen an Ihren konfigurierten Braze-Endpunkt (z. B. sdk.iad-01.braze.com) und suchen Sie im Anfrage-Body nach Events mit dem Namen sbc (Button-Klick) oder si (Impression).
Was Sie überprüfen sollten
- Wenn die In-App-Nachricht nicht angezeigt wird, überprüfen Sie, ob zuerst ein Sitzungsstart protokolliert wurde.
- Filtern Sie nach Antworten von Ihrem konfigurierten Braze-Endpunkt, um zu bestätigen, dass der Nachrichten-Payload zugestellt wurde.
- Wenn Impressionen nicht protokolliert werden, überprüfen Sie, ob Sie einen benutzerdefinierten
inAppMessageDisplay-Delegate implementiert haben, der die Protokollierung unterdrückt. - Wenn „No matching trigger for event“ erscheint, ist das normal und bedeutet, dass keine zusätzlichen In-App-Nachrichten für dieses Event konfiguriert sind.
Content Cards
Mithilfe von Content-Card-Protokollen können Sie überprüfen, ob Karten mit dem Gerät synchronisiert und den Nutzer:innen angezeigt werden und ob Interaktionen (Impressionen, Klicks, Ablehnungen) nachverfolgt werden.
Kartensynchronisierung
Content Cards werden zu Beginn der Sitzung und bei einer manuellen Aktualisierung synchronisiert. Wenn keine Sitzung protokolliert ist, werden keine Content Cards angezeigt.
Filtern Sie die Antworten von Ihrem konfigurierten Braze-Endpunkt (z. B. sdk.iad-01.braze.com), die die Kartendaten enthalten.
Der Antworttext enthält die Kartendaten, darunter:
"cards": [
{
"id": "<CARD_ID>",
"tt": "<CARD_TITLE>",
"ds": "<CARD_DESCRIPTION>",
"tp": "short_news",
"v": 0,
"cl": 0,
"p": 1
}
]
Schlüsselfelder:
v(angesehen):0= nicht angesehen,1= angesehencl(angeklickt):0= nicht angeklickt,1= angeklicktp(angeheftet):0= nicht angeheftet,1= angeheftettp(Typ):short_news,captioned_image,classicusw.
Requesting content cards sync.
Gefolgt von einer POST-Anfrage an Ihren konfigurierten Braze-Endpunkt (z. B. sdk.iad-01.braze.com), die Nutzer:innen- und Geräteinformationen enthält.
Impressionen, Klicks und Ablehnungen
Impression:
Logged event:
- userId: <USER_ID>
- sessionId: <SESSION_ID>
- data: contentCardImpression(cardIds: [...])
Klick:
Logged event:
- userId: <USER_ID>
- sessionId: <SESSION_ID>
- data: contentCardClick(cardIds: [...])
Wenn die Karte eine URL enthält, sehen Sie außerdem:
Opening '<URL>':
- channel: contentCard
- useWebView: true
Ablehnung:
Logged event:
- userId: <USER_ID>
- sessionId: <SESSION_ID>
- data: contentCardDismissed(cardIds: [...])
Filtern Sie Anfragen an Ihren konfigurierten Braze-Endpunkt (z. B. sdk.iad-01.braze.com) und suchen Sie nach Ereignisnamen im Anfragetext:
cci— Content-Card-Impressionccc— Content-Card-Klickccd— Content Card abgelehnt
Was zu überprüfen ist
- Keine Karten angezeigt: Überprüfen Sie, ob ein Sitzungsstart protokolliert wurde. Content Cards erfordern eine aktive Sitzung, um synchronisiert zu werden.
- Fehlende Karten für neue Nutzer:innen: Neue Nutzer:innen sehen möglicherweise bei ihrer ersten Sitzung keine Content Cards bis zur nächsten Sitzung. Dies ist das erwartete Verhalten.
- Karte überschreitet die Größenbeschränkung: Content Cards über 2 KB werden nicht angezeigt, und die Nachricht wird abgebrochen.
- Karte bleibt nach Beendigung der Campaign bestehen: Überprüfen Sie, ob die Synchronisierung nach Beendigung der Campaign abgeschlossen wurde. Content Cards werden nach einer erfolgreichen Synchronisierung vom Gerät entfernt. Stellen Sie beim Beenden einer Campaign sicher, dass die Option zum Entfernen aktiver Karten aus den Feeds der Nutzer:innen ausgewählt ist.
Deeplinks
Deeplink-Protokolle erscheinen kanalübergreifend bei Push-Benachrichtigungen, In-App-Nachrichten und Content Cards. Die Protokollstruktur ist unabhängig vom Quellkanal konsistent.
Wenn das SDK einen Deeplink verarbeitet:
Opening '<DEEP_LINK_URL>':
- channel: <SOURCE_CHANNEL>
- useWebView: false
- isUniversalLink: false
- extras: { ... }
Dabei ist <SOURCE_CHANNEL> einer der folgenden Werte: notification, inAppMessage oder contentCard.
Suchen Sie für Deeplinks nach den Einträgen Deep Link Delegate oder UriAction in Logcat. Um die Deeplink-Auflösung unabhängig zu testen, führen Sie den folgenden Befehl aus:
adb shell am start -W -a android.intent.action.VIEW -d "<YOUR_DEEP_LINK>" "<YOUR_PACKAGE_NAME>"
Damit wird bestätigt, ob der Deeplink außerhalb des Braze SDK korrekt aufgelöst wird.
Worauf Sie achten sollten
- Überprüfen Sie, ob die Deeplink-URL mit der in der Campaign konfigurierten URL übereinstimmt.
- Wenn der Deeplink über einen Kanal (z. B. Push) funktioniert, aber über einen anderen nicht (z. B. Content Cards), prüfen Sie, ob Ihre Deeplink-Verarbeitungsimplementierung alle Kanäle unterstützt.
- Unter iOS erfordern Universal Links eine zusätzliche Verarbeitung. Wenn Universal Links über Braze-Kanäle nicht funktionieren, stellen Sie sicher, dass Ihre App das
BrazeDelegate-Protokoll für die URL-Verarbeitung implementiert. - Unter Android prüfen Sie, ob die automatische Deeplink-Verarbeitung deaktiviert ist, wenn Sie einen benutzerdefinierten Handler verwenden. Andernfalls kann der Standard-Handler mit Ihrer Implementierung in Konflikt geraten.
Nutzer:innen-Identifizierung
Wenn ein:e Nutzer:in mit einer external_id identifiziert wird, protokolliert das SDK ein Change-User-Event.
changeUser called with: <EXTERNAL_ID>
Wichtige Hinweise:
- Rufen Sie
changeUserauf, sobald sich der/die Nutzer:in anmeldet – je früher, desto besser. - Wenn sich ein:e Nutzer:in abmeldet, gibt es keine Möglichkeit,
changeUseraufzurufen, um ihn/sie wieder zu einem/einer anonymen Nutzer:in zurückzusetzen. - Wenn Sie keine anonymen Nutzer:innen möchten, rufen Sie
changeUserbeim Sitzungsstart oder beim App-Start auf.
Filtern Sie nach Anfragen an Ihren konfigurierten Braze-Endpunkt (zum Beispiel sdk.iad-01.braze.com) und suchen Sie im Anfragekörper nach der Nutzer:innen-Identifizierung:
"user_id": "<EXTERNAL_ID>"
Netzwerk-Anfragen
Ausführliche Protokolle enthalten vollständige HTTP-Anfrage- und Antwortdetails für die SDK-Kommunikation mit Braze-Servern. Diese sind nützlich für die Diagnose von Verbindungsproblemen.
Anfragestruktur
Filtern Sie nach Anfragen an Ihren konfigurierten Braze-Endpunkt (z. B. sdk.iad-01.braze.com). Die Anfragestruktur umfasst:
[http] request POST: <YOUR_BRAZE_ENDPOINT>
- Headers:
- Content-Type: application/json
- X-Braze-Api-Key: <REDACTED>
- X-Braze-Req-Attempt: 1
- X-Braze-Req-Tokens-Remaining: <COUNT>
- Body: { ... }
Making request(id = <REQUEST_ID>) to <YOUR_BRAZE_ENDPOINT>
Was Sie prüfen sollten
- API-Schlüssel: Überprüfen Sie, ob
XBraze-ApiKeymit dem API-Schlüssel Ihres Workspace übereinstimmt. - Endpunkt: Bestätigen Sie, dass die Anfrage-URL mit Ihrem konfigurierten SDK-Endpunkt übereinstimmt.
- Wiederholungsversuche:
XBraze-Req-Attemptgrößer als 1 zeigt an, dass das SDK eine fehlgeschlagene Anfrage erneut versucht, was auf Verbindungsprobleme hindeuten kann. - Rate-Limiting:
XBraze-Req-Tokens-Remainingzeigt die verbleibenden Anfrage-Token an. Ein niedriger Wert kann darauf hinweisen, dass das SDK die Rate-Limits erreicht. - Fehlende Anfragen: Wenn Sie auf Android nach dem Sitzungsstart keine Anfrage an den Braze-Endpunkt sehen, überprüfen Sie Ihren API-Schlüssel und die Endpunkt-Konfiguration.
Häufige Event-Abkürzungen
In ausführlichen Log-Payloads verwendet Braze abgekürzte Event-Namen. Hier ist eine Übersicht:
| Abkürzung | Event |
|---|---|
ss |
Session-Start |
se |
Session-Ende |
si |
In-App-Nachricht-Impression |
sbc |
In-App-Nachricht-Button-Klick |
cci |
Content-Card-Impression |
ccc |
Content-Card-Klick |
ccd |
Content-Card abgelehnt |
lr |
Standort erfasst |
Fehlerbehebung
Geofences werden auf Android SDK 13.1.0–15.x nicht ausgelöst
Das Braze Android SDK 13.1.0 bis 15.x hatte eine Regression, die dazu führen konnte, dass Geofence-Update-Events nicht aufgezeichnet wurden. Auf Geräten mit Android 10 oder älter konnten auch Standortaktualisierungen beim Sitzungsstart fehlschlagen. Führen Sie ein Upgrade auf Android SDK 16.0.0 oder höher durch. Informationen zur SDK-Einrichtung finden Sie unter Geofences.
Wann kann ein:e Nutzer:in 0 Sitzungen in ihrem Profil aufweisen?
Ein Nutzerprofil kann 0 Sitzungen anzeigen, wenn Sie den/die Nutzer:in über die REST API (/users/track) oder einen CSV-Import ohne die Felder First session oder Last session importieren. Sitzungen werden aufgezeichnet, wenn Nutzer:innen über das SDK mit Ihrer App interagieren. Weitere Details finden Sie unter Nutzerprofil hat 0 Sitzungen.
Diskrepanzen bei Nutzerdaten bei gleichzeitiger Verwendung von SDK und REST API
Wenn Sie das SDK und die REST API gleichzeitig verwenden, können Race-Conditions zu Datendiskrepanzen führen. Nachdem Sie changeUser() aufgerufen haben, lassen Sie das SDK ausstehende Daten senden, bevor Sie kritische REST-API-Aufrufe durchführen. Vermeiden Sie die Stapelverarbeitung zeitkritischer Updates und erwägen Sie, eine kurze Verzögerung zwischen SDK- und API-Anfragen einzufügen. Informationen zum Verhalten von changeUser() finden Sie unter Wie changeUser() funktioniert.
Daten erreichen Braze nicht
Wenn Daten Braze nicht erreichen, stellen Sie sicher, dass Ihre Firewall ausgehenden Datenverkehr zu Braze-API-Endpunkten und CDN-Anbietern zulässt. Führen Sie einen MTR-Test durch und verwenden Sie Fastly Debug, während das Problem auftritt. Informationen zu Allowlisting und Fehlerbehebung bei der Konnektivität finden Sie unter API-Netzwerkverbindungsprobleme.