Skip to content

Nachrichtenarchivierung

Mit der Nachrichtenarchivierung können Sie eine Kopie der an Nutzer:innen gesendeten Nachrichten zu Archivierungs- oder Compliance-Zwecken in Ihrem AWS S3-Bucket, Azure Blob Storage-Container oder Google Cloud Storage-Bucket speichern.

Dieser Artikel behandelt die Einrichtung der Nachrichtenarchivierung, JSON-Payload-Referenzen und häufig gestellte Fragen.

Die Nachrichtenarchivierung ist als zusätzliches Feature verfügbar. Um mit der Nachrichtenarchivierung zu beginnen, wenden Sie sich bitte an Ihren Braze-Customer-Success-Manager.

Funktionsweise

Wenn dieses Feature eingeschaltet ist, schreibt Braze für jede Nachricht, die über die von Ihnen ausgewählten Kanäle (E-Mail, SMS/MMS oder Push) an eine:n Nutzer:in gesendet wird, eine gzipped JSON-Datei. Braze schreibt diese Dateien in Ihr Standard-Datenexportziel. Dazu gehören alle Campaign-Typen für jeden Kanal, wie z. B. Transaktions-E-Mail-Campaigns, die über die Transaktions-E-Mail-API gesendet werden.

Diese Datei enthält die unter Dateireferenzen definierten Felder und spiegelt die endgültigen, als Template gerenderten Nachrichten wider, die an die Nutzer:innen gesendet wurden. Alle in Ihrer Campaign definierten Template-Werte (z. B. {{${first_name}}}) zeigen den endgültigen Wert an, den die Nutzer:innen auf der Grundlage ihrer Profilinformationen erhalten haben. Auf diese Weise können Sie eine Kopie der gesendeten Nachricht aufbewahren, um den Anforderungen der Compliance, der Rechnungsprüfung oder des Kundensupports gerecht zu werden.

Wenn Sie Zugangsdaten für mehrere Cloud-Speicheranbieter einrichten, exportiert die Nachrichtenarchivierung nur zu dem Anbieter, der als Standard-Datenexportziel markiert ist. Wenn kein expliziter Standard festgelegt ist und ein AWS S3-Bucket verbunden ist, lädt die Nachrichtenarchivierung in diesen Bucket hoch.

Die JSON-Datei wird in Ihrem Speicher-Bucket mit der folgenden Schlüsselstruktur gespeichert:

sent_messages/{channel, one of: email, push, sms}/{MD5 digest of downcased: email address, push token, or E.164 phone number}/{campaign or Canvas step API ID}/{dispatch ID}.json.gz

Eine Beispieldatei könnte wie folgt aussehen:

sent_messages/email/819baa08d8d7e77e19d4666f5fc6050b/ee965cb2-8934-4b0a-acf1-91c899c2f915/651fd10b282850b39e1169c13975234b.json.gz

Einrichten der Nachrichtenarchivierung

Dieser Abschnitt führt Sie durch die Einrichtung der Nachrichtenarchivierung für Ihren Workspace. Bevor Sie fortfahren, vergewissern Sie sich, dass Ihr Unternehmen die Nachrichtenarchivierung erworben und aktiviert hat.

1. Schritt: Cloud-Speicher-Bucket verbinden

Falls Sie dies noch nicht getan haben, verbinden Sie einen Cloud-Speicher-Bucket mit Braze. Weitere Schritte finden Sie in unserer Partnerdokumentation zu Amazon S3, Azure Blob Storage oder Google Cloud Storage.

2. Schritt: Kanäle für die Nachrichtenarchivierung auswählen

Auf der Einstellungsseite Nachrichtenarchivierung können Sie festlegen, welche Kanäle eine Kopie der gesendeten Nachrichten in Ihrem Cloud-Speicher-Bucket speichern.

So wählen Sie Kanäle aus:

  1. Gehen Sie zu Einstellungen > Nachrichtenarchivierung.
  2. Wählen Sie Ihre Kanäle aus.
  3. Wählen Sie Änderungen speichern.

Auf der Seite „Nachrichtenarchivierung“ können Sie drei Kanäle auswählen: E-Mail, Push und SMS.

Dateireferenzen

Im Folgenden finden Sie Referenzen zur JSON-Payload, die bei jeder gesendeten Nachricht an Ihren Cloud-Speicher-Bucket übermittelt wird. In unserem Code-Beispiel-Repository finden Sie Beispieldateien für Nachrichtenarchive.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
{
  "version": 1 //numerical version of the JSON structure
  "to": PhoneNumber, ("+15555555555"),
  "body": Body ("Hi there!"),
  "subscription_group": SubscriptionGroupExternalId,
  "provider": StringOfProviderName,
  "media_urls": ArrayOfString, // indicates a message is MMS
  "sent_at": UnixTimestamp,
  "dispatch_id": DispatchIdFromBraze,
  "campaign_id": CampaignApiId, // may not be available
  "canvas_id": CanvasApiId, // may not be available
  "canvas_step_id": CanvasStepApiId, // may not be available
  "canvas_variation_id" : CanvasVariationApiId, // may not be available
  "message_variation_id": MessagVariationApiId, // may not be available
  "user_id": String,
  "campaign_name": String, // will only be available if the message is from a campaign
  "canvas_name": String, // will only be available if the message is from Canvas
  "canvas_step_name": String, // will only be available if the message is from a Canvas
  "external_id": String
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
{
  "version": 1, //numerical version of the JSON structure
  "to": PushToken,
  "payload": JsonOfEntirePushPayload,
  "platform": one of "android_push" | "ios_push" | "kindle_push" | "web_push",
  "app_id": ApiKeyOfApp,
  "sent_at": UnixTimestamp,
  "dispatch_id": DispatchIdFromBraze,
  "campaign_id": CampaignApiId, // may not be available
  "canvas_id": CanvasApiApiId, // may not be available
  "canvas_step_id": CanvasStepApiId, // may not be available
  "canvas_variation_id" : CanvasVariationApiId, // may not be available
  "message_variation_id": MessagVariationApiId, // may not be available
  "user_id": String,
  "campaign_name": String, // will only be available if the message is from a campaign
  "canvas_name": String, // will only be available if the message is from a Canvas
  "canvas_step_name": String, // will only be available if the message is from a Canvas
  "external_id": String
}

Variationen der Push-Payload-Struktur

Die Nachrichtenarchivierung erfasst die Nachrichten-Payload selbst, jedoch nicht die Zustellungs-Metadaten, die an FCM oder APNs gesendet werden. Zustellungs-Metadaten umfassen:

  • Geräte-Token
  • Prioritätseinstellungen
  • Time-to-Live (TTL)
  • Collapse-IDs
  • APNs-Header
  • Ablauf-Zeitstempel
  • Weitere Felder zur Zustellungskonfiguration

Diese Felder dienen als Zustellungsanweisungen für den Push-Anbieter. Sie werden in der Regel nicht als Teil des Nachrichteninhalts betrachtet.

Zum Beispiel:

  • iOS-Push-Benachrichtigungen können unterschiedliche Strukturen für Rich-Benachrichtigungen (wobei aps.alert ein Objekt ist, das Felder wie title und body enthält) und einfache Benachrichtigungen (wobei aps.alert ein String ist) aufweisen.
  • Android-Push-Benachrichtigungen (z. B. FCM) verwenden Datennachrichten mit angepassten Schlüsseln. Die Payload-Struktur kann je nach Nachrichtenkonfiguration verschiedene optionale Felder enthalten, wie z. B. Push-Buttons, Karussells oder zusätzliche Metadaten.

Darüber hinaus können Testsendungen über das Dashboard andere Payload-Strukturen erzeugen als Produktionsnachrichten.

Das JSON-Payload-Format kann zwischen Nachrichten variieren und sich im Laufe der Zeit ändern. Gehen Sie beim Parsen archivierter Push-Payloads nicht von einer festen Struktur aus und erwarten Sie nicht, dass immer dieselben Felder vorhanden sind. Implementieren Sie eine flexible Parsing-Logik, die verschiedene Payload-Formate verarbeiten kann.

Häufig gestellte Fragen

Welches Templating ist nicht in der Payload enthalten?

Änderungen, die vorgenommen werden, nachdem die Nachricht Braze verlassen hat, werden in der Datei, die in Ihrem Cloud-Speicher-Bucket gespeichert ist, nicht berücksichtigt. Dazu gehören auch Änderungen, die unsere Partner für die E-Mail-Zustellung vornehmen, wie z. B. das Umschließen von Links für das Klick-Tracking und das Einfügen von Tracking-Pixeln.

Was sind Nachrichten unter dem Wert „unassociated“ im Campaign-Pfad?

Wenn eine Nachricht außerhalb einer Campaign oder eines Canvas gesendet wird, lautet die Campaign-ID im Dateinamen „unassociated“. Dies geschieht, wenn Sie Testnachrichten über das Dashboard senden, wenn Braze automatische SMS/MMS-Antworten sendet oder wenn über die API gesendete Nachrichten keine Campaign-ID enthalten.

Wie finde ich weitere Informationen zu diesem Versand?

Sie können entweder die external_id oder die dispatch_id in Verbindung mit der user_id verwenden, um die gerenderte Nachricht mit unseren Currents-Daten abzugleichen und weitere Informationen zu erhalten, wie z. B. den Zeitstempel der Zustellung, ob die Nutzer:innen die Nachricht geöffnet oder angeklickt haben und vieles mehr.

Wie werden Wiederholungsversuche behandelt?

Wenn Ihr Cloud-Speicher-Bucket nicht erreichbar ist, versucht Braze es bis zu dreimal mit einem Backoff-Jitter. AWS S3-Rate-Limit-Wiederholungen werden von Braze automatisch behandelt.

Was passiert, wenn meine Zugangsdaten ungültig sind?

Wenn Ihre Cloud-Speicher-Zugangsdaten zu irgendeinem Zeitpunkt ungültig werden, kann Braze keine Nachrichten in Ihrem Cloud-Speicher-Bucket speichern, und diese Nachrichten gehen verloren. Wir empfehlen Ihnen, Ihre Präferenzen für Benachrichtigungen für Amazon Web Services, Google Cloud Services oder Azure (Microsoft Cloud Services) so zu konfigurieren, dass Sie bei Problemen mit Ihren Zugangsdaten benachrichtigt werden.

Warum weicht der sent_at-Zeitstempel meiner Archivdatei leicht vom Sendezeitstempel in Currents ab?

Die gerenderte Kopie wird unmittelbar vor dem Senden der Nachricht an die Nutzer:innen hochgeladen. Aufgrund der Upload-Zeiten des Cloud-Speichers kann es zu einer Verzögerung von einigen Sekunden zwischen dem sent_at-Zeitstempel in der gerenderten Kopie und dem tatsächlichen Sendezeitpunkt kommen.

Kann ich einen neuen Bucket speziell für die Nachrichtenarchivierung erstellen und gleichzeitig den aktuellen Bucket für Currents-Daten beibehalten?

Nein. Wenn Sie an der Erstellung dieser speziellen Buckets interessiert sind, senden Sie uns Ihr Produkt-Feedback.

Werden archivierte Daten in einen speziellen Ordner in einem bestehenden Bucket geschrieben, ähnlich wie die Datenexporte von Currents strukturiert sind?

Die Daten werden in einen sent_messages-Bereich des Buckets geschrieben. Weitere Einzelheiten finden Sie unter Funktionsweise.

Kann ich die Nachrichtenarchivierung verwenden, um Dateien in verschiedenen Workspaces zu gruppieren?

Nein. Die Nachrichtenarchivierung unterstützt keine Gruppierung von Dateien nach Workspaces. Stattdessen können Sie feststellen, zu welchem Workspace die Campaign- oder Canvas-Schritt-API-ID gehört, und die Dateien dann anhand dieser Information gruppieren.

New Stuff!