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.
Sitzungen
Sitzungen bilden die Grundlage der Braze-Analytics und der Nachrichtenzustellung. Viele Messaging-Features – darunter In-App Messages und Content Cards – erfordern den Start einer gültigen Sitzung, bevor sie funktionieren können. Wenn Sitzungen nicht korrekt protokolliert werden, sollten Sie dies zuerst untersuchen. Weitere Informationen zur Aktivierung des Sitzungs-Trackings finden Sie unter Schritt 5: Tracking von Nutzer:innen-Sitzungen aktivieren.
Wichtige Protokolleinträge
Sitzungsstart:
1
Started user session (id: <SESSION_ID>)
Sitzungsende:
1
2
3
4
5
Ended user session (id: <SESSION_ID>, duration: <DURATION>s)
Logged event:
- userId: <USER_ID>
- sessionId: <SESSION_ID>
- data: sessionEnd(duration: <DURATION>)
Sitzungsstart:
Suchen Sie nach den folgenden Einträgen:
1
2
3
4
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 Sitzungsstart-Ereignis (ss) zu sehen.
Sitzungsende:
1
2
3
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
- Überprüfen Sie, dass ein Sitzungsstart-Protokolleintrag erscheint, wenn die App gestartet wird.
- Wenn Sie keinen Sitzungsstart sehen, prü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, Benachrichtigungen zugestellt und Klick-Events getrackt werden.
Token-Registrierung
Wenn eine Sitzung beginnt, registriert das SDK das Push-Token des Geräts bei Braze.
1
2
3
4
Updated push notification authorization:
- authorization: authorized
Received remote notifications device token: <PUSH_TOKEN>
Filtern Sie nach Anfragen an Ihren konfigurierten Braze-Endpunkt (z. B. sdk.iad-01.braze.com) und suchen Sie nach push_token in den Attributen des Request-Body:
1
2
3
4
5
6
"attributes": [
{
"push_token": "<PUSH_TOKEN>",
"user_id": "<USER_ID>"
}
]
Bestätigen Sie außerdem, dass die Geräteinformationen Folgendes enthalten:
1
2
3
4
"device": {
"ios_push_auth": "authorized",
"remote_notification_enabled": 1
}
Suchen Sie nach dem FCM-Registrierungsprotokoll:
1
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.
Worauf Sie achten sollten
- Wenn
push_tokenim Request-Body fehlt, wurde das Token nicht erfasst. Überprüfen Sie die Push-Einrichtung in Ihrer App-Konfiguration. - Wenn
ios_push_authden Wertdeniedoderprovisionalanzeigt, hat die/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 die Klick-Events.
1
2
3
4
5
6
7
8
9
10
11
12
13
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:
1
2
3
4
Logged event:
- userId: <USER_ID>
- sessionId: <SESSION_ID>
- data: pushClick(campaignId: ...)
Wenn die Push-Benachrichtigung einen Deeplink enthält, sehen Sie außerdem:
1
2
3
4
Opening '<URL>':
- channel: notification
- useWebView: false
- isUniversalLink: false
1
BrazeFirebaseMessagingService: Got Remote Message from FCM
Gefolgt vom Push-Payload und den Anzeige-Protokollen. Für Deeplinks suchen Sie nach dem Deep Link Delegate oder UriAction-Einträgen.
Worauf Sie achten sollten
- Überprüfen Sie, ob der Push-Payload den erwarteten
title,bodysowie etwaige Deeplinks (ab_uri) enthält. - Bestätigen Sie, dass nach dem Antippen ein
pushClick-Event protokolliert wird. - Wenn das Klick-Event fehlt, überprü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 vollständigen Lebenszyklus: Zustellung vom Server, Triggern basierend auf Ereignissen, Anzeige, Impression-Protokollierung und Klick-Tracking.
Nachrichtenzustellung
Wenn eine:r Nutzer:in eine Sitzung startet und für eine In-App-Nachricht qualifiziert ist, empfängt das SDK den Nachrichten-Payload vom Server.
Filtern Sie nach Antworten von Ihrem konfigurierten Braze-Endpunkt (zum Beispiel sdk.iad-01.braze.com), die die In-App-Nachrichtendaten enthalten.
Der Antworttext enthält den Nachrichten-Payload, einschließlich:
1
2
3
4
5
6
7
8
9
"templated_message": {
"data": {
"message": "...",
"type": "HTML",
"message_close": "SWIPE",
"trigger_id": "<TRIGGER_ID>"
},
"type": "inapp"
}
Suchen Sie nach dem passenden Trigger-Ereignis-Log:
1
Triggering action: <CAMPAIGN_BSON_ID>
Dies bestätigt, dass die In-App-Nachricht einem Trigger-Ereignis zugeordnet wurde.
Nachrichtenanzeige und Impression
1
2
3
In-app message ready for display:
- triggerId: (campaignId: <CAMPAIGN_ID>, ...)
- extras: { ... }
Gefolgt vom Impression-Log:
1
2
3
4
Logged event:
- userId: <USER_ID>
- sessionId: <SESSION_ID>
- data: inAppMessageImpression(triggerIds: [...])
1
handleExistingInAppMessagesInStackWithDelegate:: Displaying in-app message
Klick- und Button-Ereignisse
Wenn Nutzer:innen auf einen Button tippen oder die Nachricht schließen:
1
2
3
4
Logged event:
- userId: <USER_ID>
- sessionId: <SESSION_ID>
- data: inAppMessageButtonClick(triggerIds: [...], buttonId: "<BUTTON_ID>")
Wenn keine weiteren getriggerten Nachrichten übereinstimmen, sehen Sie außerdem:
1
No matching trigger for event.
Dies ist das erwartete Verhalten, wenn keine zusätzlichen In-App-Nachrichten für das Ereignis konfiguriert sind.
Filtern Sie nach Anfragen an Ihren konfigurierten Braze-Endpunkt (zum Beispiel sdk.iad-01.braze.com) und suchen Sie nach Ereignissen mit dem Namen sbc (Button-Klick) oder si (Impression) im Anfragetext.
Worauf Sie achten 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 nicht einen benutzerdefinierten
inAppMessageDisplay-Delegate implementiert haben, der die Protokollierung unterdrückt. - Wenn „No matching trigger for event“ erscheint, ist dies normal und bedeutet, dass keine zusätzlichen In-App-Nachrichten für dieses Ereignis 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:
1
2
3
4
5
6
7
8
9
10
11
"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.
1
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:
1
2
3
4
Logged event:
- userId: <USER_ID>
- sessionId: <SESSION_ID>
- data: contentCardImpression(cardIds: [...])
Klick:
1
2
3
4
Logged event:
- userId: <USER_ID>
- sessionId: <SESSION_ID>
- data: contentCardClick(cardIds: [...])
Wenn die Karte eine URL enthält, sehen Sie außerdem:
1
2
3
Opening '<URL>':
- channel: contentCard
- useWebView: true
Ablehnung:
1
2
3
4
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 bei Push-Benachrichtigungen, In-App-Nachrichten und Content Cards. Die Protokollstruktur ist unabhängig vom Quellkanal konsistent.
Wenn das SDK einen Deeplink verarbeitet:
1
2
3
4
5
Opening '<DEEP_LINK_URL>':
- channel: <SOURCE_CHANNEL>
- useWebView: false
- isUniversalLink: false
- extras: { ... }
Dabei ist <SOURCE_CHANNEL> einer der folgenden Werte: notification, inAppMessage oder contentCard.
Für Deeplinks suchen Sie 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:
1
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 funktioniert (z. B. Push), aber nicht über einen anderen (z. B. Content Cards), prüfen Sie, ob Ihre Deeplink-Implementierung alle Kanäle unterstützt.
- Unter iOS erfordern Universal Links eine zusätzliche Behandlung. Wenn Universal Links über Braze-Kanäle nicht funktionieren, stellen Sie sicher, dass Ihre App das
BrazeDelegate-Protokoll für die URL-Behandlung implementiert. - Unter Android prüfen Sie, ob die automatische Deeplink-Behandlung deaktiviert ist, wenn Sie einen benutzerdefinierten Handler verwenden. Andernfalls kann der Standard-Handler mit Ihrer Implementierung in Konflikt geraten.
Nutzeridentifikation
Wenn ein:e Nutzer:in mit einer external_id identifiziert wird, protokolliert das SDK ein Change-User-Ereignis.
1
changeUser called with: <EXTERNAL_ID>
Wichtige Hinweise:
- Rufen Sie
changeUserauf, sobald sich die/der Nutzer:in anmeldet – je früher, desto besser. - Wenn sich ein:e Nutzer:in abmeldet, gibt es keine Möglichkeit,
changeUseraufzurufen, um sie/ihn wieder zu einem anonymen Profil 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 Anfrage-Body nach der Nutzeridentifikation:
1
"user_id": "<EXTERNAL_ID>"
Netzwerkanfragen
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 (zum Beispiel sdk.iad-01.braze.com). Die Anfragestruktur umfasst:
1
2
3
4
5
6
7
[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: { ... }
1
Making request(id = <REQUEST_ID>) to <YOUR_BRAZE_ENDPOINT>
Worauf Sie achten 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: Ein
XBraze-Req-Attempt-Wert größ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 sich den Rate-Limits nähert. - Fehlende Anfragen: Wenn Sie unter Android nach dem Sitzungsstart keine Anfrage an den Braze-Endpunkt sehen, überprüfen Sie Ihre API-Schlüssel- und Endpunkt-Konfiguration.
Häufige Ereignisabkürzungen
In ausführlichen Protokoll-Payloads verwendet Braze abgekürzte Ereignisnamen. Hier eine Übersicht:
| Abkürzung | Ereignis |
|---|---|
ss |
Sitzungsstart |
se |
Sitzungsende |
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 aufgezeichnet |
Fehlerbehebung
Geofences werden auf Android SDK 13.1.0–15.x nicht ausgelöst
Braze Android SDK 13.1.0 bis 15.x hatte eine Regression, die dazu führen konnte, dass Geofence-Update-Ereignisse 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 Nutzerprofil 0 aufgezeichnete Sitzungen aufweisen?
Ein Nutzerprofil kann 0 Sitzungen anzeigen, wenn Sie die:den 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 Informationen 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 Bündelung 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 Probleme mit der API-Netzwerkverbindung.