Zum Inhalt springen

Asynchroner Export von Nachrichtenstatistiken

exportMessagesStatistics exportiert den Nachrichtenverlauf und die Statistiken in eine CSV-Datei auf dem Server. Verwenden Sie es für große oder vollständige Kontoabrufe, die messages:list nicht verarbeiten kann.

Wann sollte der Export anstelle von messages:list verwendet werden?

Anchor link to

Verwenden Sie messages:list für Live-, paginierte Abfragen eines begrenzten Zeitraums. Verwenden Sie exportMessagesStatistics, wenn das Ergebnis das Tiefenpaginierungslimit von messages:list (page × per_page > 100000) überschreiten würde oder wenn das Ziel eine einzelne herunterladbare Datei anstelle von paginiertem JSON ist. Der Export hat keine Begrenzung für date_range oder die Zeilenanzahl, da er das Ergebnis in eine Datei auf der Festplatte streamt, anstatt es in einer einzigen Antwort zu halten.

Wie der Exportablauf funktioniert

Anchor link to
  1. Rufen Sie export mit denselben Filtern wie messages:list auf. Die Antwort gibt sofort eine Aufgabenkennung uid zurück, bevor die Datei generiert wird.
  2. Fragen Sie status mit dieser uid ab, bis STATUS_SUCCESS (oder STATUS_FAILED) gemeldet wird.
  3. Rufen Sie result mit derselben uid auf, um die generierte file und eine gebrauchsfertige file_url zu erhalten.
  4. Laden Sie die Datei herunter. Verwenden Sie file_url unverändert oder sehen Sie unter result nach, wie die URL aus file erstellt wird, falls sie leer zurückgegeben wurde.

Verwenden Sie lastTasks, um die letzten Exportaufgaben für eine Anwendung nachzuschlagen, und delete, um eine Aufgabe abzubrechen oder ihre Datei vorzeitig zu entfernen.

Der Export-Lebenszyklus hat fünf Methoden sowie einen einfachen Download-Endpunkt:

MethodeBeschreibung
exportMessagesStatistics/exportStellt einen Export in die Warteschlange und gibt eine Aufgaben-uid zurück.
exportMessagesStatistics/statusÜberprüft den Aufgabenfortschritt.
exportMessagesStatistics/resultGibt den Namen der generierten Datei zurück, sobald die Aufgabe abgeschlossen ist.
exportMessagesStatistics/lastTasksListet die letzten Exportaufgaben für eine Anwendung auf.
exportMessagesStatistics/deleteBricht eine Aufgabe ab oder entfernt ihre Datei, bevor das Aufbewahrungsfenster abläuft.
DownloadLädt die generierte CSV-Datei nach Namen herunter.

Stellt einen Export des Nachrichtenverlaufs in die Warteschlange und gibt sofort eine Aufgabenkennung zurück.

POST https://api.pushwoosh.com/api/v2/statistics/exportMessagesStatistics/export

Die Anfrage benötigt einen Server-API-Token:

NameErforderlichBeschreibung
AuthorizationJaServer-API-Token. Muss im folgenden Format bereitgestellt werden: Authorization: Api <Server Key>.
Parameter des Anfragekörpers
Anchor link to

Der Anfragekörper akzeptiert die folgenden Felder:

NameErforderlichTypBeschreibung
typeJaStringMuss “TASK_TYPE_EXPORT_MESSAGES_V2” sein.
export_messages_v2JaObjectExportparameter, unten beschrieben.
export_messages_v2.application_codeSiehe HinweisStringPushwoosh-Anwendungscode. Erforderlich, wenn app_group_code nicht gesetzt ist.
export_messages_v2.app_group_codeSiehe HinweisStringAnwendungsgruppencode, exportiert über jede App in der Gruppe. Erforderlich, wenn application_code nicht gesetzt ist.
export_messages_v2.searchNeinStringFreitextsuche über Nachrichtentitel und -inhalt.
export_messages_v2.filtersNeinObjectNachrichtenfilter, unten beschrieben. Weglassen, um den gesamten Kontoverlauf zu exportieren.
export_messages_v2.propertiesNeinArraySpalten, die in die CSV-Datei aufgenommen werden sollen, unten beschrieben.

export_messages_v2.filters akzeptiert:

Name
TypBeschreibung
statusesArrayEinzuschließende Nachrichtenstatus.
Mögliche Werte
  • ”MESSAGE_STATUS_CANCELED"
  • "MESSAGE_STATUS_CREATING"
  • "MESSAGE_STATUS_DONE"
  • "MESSAGE_STATUS_FAIL"
  • "MESSAGE_STATUS_PENDING"
  • "MESSAGE_STATUS_PROCESSING"
  • "MESSAGE_STATUS_WAITING”
platformsArrayPlattformcodes (numerisch, z. B. 1 für iOS), nicht die von messages:list verwendeten Plattformnamen-Strings.
sent_dateObjectBerichtszeitraum, gefiltert nach Sendedatum: {"date_from": "YYYY-MM-DD", "date_to": "YYYY-MM-DD"}.
created_dateObjectBerichtszeitraum, gefiltert nach Erstellungsdatum der Nachricht, gleiches Format wie sent_date.
created_viaArrayNachrichtenquelle.
Mögliche Werte
  • ”AB_TEST"
  • "API"
  • "AUTO_PUSH"
  • "CP"
  • "CSV"
  • "CUSTOMER_JOURNEY"
  • "EMAIL_API"
  • "EMAIL_CP"
  • "GEO_ZONE"
  • "PUSH_ON_EVENT"
  • "RSS"
  • "SYSTEM”
segmentsArrayFiltercodes, an die die Nachricht gesendet wurde.
campaignsArrayKampagnencodes. Im Gegensatz zu messages:list wird hier eine Liste und nicht ein einzelner Code verwendet.
message_idString (uint64)Eine einzelne numerische Nachrichten-ID, in Anführungszeichen. Im Gegensatz zu messages:list nimmt der Export eine ID, nicht ein Array.
message_codeStringEin einzelner Nachrichtencode.

export_messages_v2.properties wählt aus, welche Spalten die CSV-Datei enthält.

Mögliche Werte
  • "EXPORT_MESSAGE_PROPERTY_ID"
  • "EXPORT_MESSAGE_PROPERTY_TIMESTAMP"
  • "EXPORT_MESSAGE_PROPERTY_CONTENT"
  • "EXPORT_MESSAGE_PROPERTY_TITLE"
  • "EXPORT_MESSAGE_PROPERTY_CAMPAIGN_NAME"
  • "EXPORT_MESSAGE_PROPERTY_APPLICATIONS"
  • "EXPORT_MESSAGE_PROPERTY_STATUS"
  • "EXPORT_MESSAGE_PROPERTY_PLATFORMS"
  • "EXPORT_MESSAGE_PROPERTY_SOURCE"
  • "EXPORT_MESSAGE_PROPERTY_FILTER"
  • "EXPORT_MESSAGE_PROPERTY_SUBSCRIPTION_SEGMENTS"
  • "EXPORT_MESSAGE_PROPERTY_SENT"
  • "EXPORT_MESSAGE_PROPERTY_OPENED"
  • "EXPORT_MESSAGE_PROPERTY_ERRORS"
  • "EXPORT_MESSAGE_PROPERTY_RECIPIENTS"
  • "EXPORT_MESSAGE_PROPERTY_DELIVERED"
  • "EXPORT_MESSAGE_PROPERTY_TOTAL_DELIVERED"
  • "EXPORT_MESSAGE_PROPERTY_TOTAL_OPENED"
  • "EXPORT_MESSAGE_PROPERTY_TOTAL_CLICKS"
  • "EXPORT_MESSAGE_PROPERTY_CLICKS"
  • "EXPORT_MESSAGE_PROPERTY_UNSUBSCRIBED"
Beispielanfrage
Anchor link to
{
"type": "TASK_TYPE_EXPORT_MESSAGES_V2",
"export_messages_v2": {
"application_code": "XXXXX-XXXXX",
"filters": {
"created_date": {
"date_from": "2026-01-01",
"date_to": "2026-06-30"
},
"statuses": ["MESSAGE_STATUS_DONE"],
"platforms": [1, 3]
},
"properties": [
"EXPORT_MESSAGE_PROPERTY_ID",
"EXPORT_MESSAGE_PROPERTY_TIMESTAMP",
"EXPORT_MESSAGE_PROPERTY_STATUS",
"EXPORT_MESSAGE_PROPERTY_PLATFORMS",
"EXPORT_MESSAGE_PROPERTY_SENT",
"EXPORT_MESSAGE_PROPERTY_OPENED"
]
}
}
{
"uid": "177458"
}

Gibt den Fortschritt einer Exportaufgabe zurück.

POST https://api.pushwoosh.com/api/v2/statistics/exportMessagesStatistics/status

Parameter des Anfragekörpers
Anchor link to

Übergeben Sie die von export zurückgegebene Aufgabenkennung:

NameErforderlichTypBeschreibung
uidJaString (int64)Aufgabenkennung aus der export-Antwort, z. B. "177458".
Beispielanfrage
Anchor link to
{
"uid": "177458"
}
{
"status": "STATUS_SUCCESS",
"progress": 1
}

status ist einer von "STATUS_PENDING", "STATUS_SUCCESS" oder "STATUS_FAILED". progress ist ein Bruchteil zwischen 0 und 1; fragen Sie status ab, bis es "STATUS_SUCCESS" erreicht, bevor Sie result aufrufen.

Gibt den Namen der generierten Datei zurück, sobald die Aufgabe abgeschlossen ist.

POST https://api.pushwoosh.com/api/v2/statistics/exportMessagesStatistics/result

Parameter des Anfragekörpers
Anchor link to

Übergeben Sie dieselbe von export zurückgegebene Aufgabenkennung:

NameErforderlichTypBeschreibung
uidJaString (int64)Aufgabenkennung aus der export-Antwort, z. B. "177458".
Beispielanfrage
Anchor link to
{
"uid": "177458"
}
{
"export_messages_v2_result": {
"file": "Export_Messages_v2_12345_20260813120000-a1b2c3d4.csv",
"file_url": "https://app.pushwoosh.com/api/v2/statistics/exportMessagesStatistics/download/Export_Messages_v2_12345_20260813120000-a1b2c3d4.csv"
}
}

Der Aufruf von result, bevor status "STATUS_SUCCESS" meldet, gibt ein leeres Ergebnis zurück. file_url ist ein gebrauchsfertiger Link zum Download-Endpunkt auf dem korrekten Rechenzentrum für das Konto – verwenden Sie ihn unverändert, anstatt die URL selbst aus file zu erstellen. file_url ist leer, wenn für das Rechenzentrum des Kontos keine Basis-URL konfiguriert ist. In diesem Fall können Sie nur auf das Erstellen der URL aus file zurückgreifen, wenn sich das Konto im Standard-Rechenzentrum app.pushwoosh.com befindet – ein Konto in einem anderen Rechenzentrum oder auf einer Whitelabel-Domain hat keine Möglichkeit, den korrekten Host allein aus file abzuleiten.

Listet die letzten Exportaufgaben für eine Anwendung auf, die neuesten zuerst.

POST https://api.pushwoosh.com/api/v2/statistics/exportMessagesStatistics/lastTasks

Parameter des Anfragekörpers
Anchor link to

Jeder Parameter ist ein optionaler Filter; lassen Sie alle weg, um jede Aufgabe aufzulisten, auf die der Token Zugriff hat:

NameErforderlichTypBeschreibung
applicationNeinStringPushwoosh-Anwendungscode. Weglassen, um Aufgaben für alle Anwendungen aufzulisten, auf die der Token Zugriff hat.
typesNeinArrayAuf bestimmte Aufgabentypen beschränken. Verwenden Sie [“TASK_TYPE_EXPORT_MESSAGES_V2”], um nur Nachrichtenexporte anzuzeigen.
campaignNeinStringNach Kampagnencode filtern.
message_idNeinString (uint64)Nach einer einzelnen numerischen Nachrichten-ID filtern, in Anführungszeichen.
message_codeNeinStringNach einem einzelnen Nachrichtencode filtern.
limitNeinIntegerMaximale Anzahl der zurückzugebenden Aufgaben.
timestamp_fromNeinStringNur Aufgaben zurückgeben, die nach diesem Zeitstempel (RFC 3339) erstellt wurden.
Beispielanfrage
Anchor link to
{
"application": "XXXXX-XXXXX",
"types": ["TASK_TYPE_EXPORT_MESSAGES_V2"],
"limit": 10
}
{
"tasks": [
{
"id": "177458",
"timestamp": "2026-08-13T12:00:00Z",
"status": "STATUS_SUCCESS",
"requested_by_user": "user@example.com",
"export_messages_v2": {
"application_code": "XXXXX-XXXXX"
},
"export_messages_v2_result": {
"file": "Export_Messages_v2_12345_20260813120000-a1b2c3d4.csv",
"file_url": "https://app.pushwoosh.com/api/v2/statistics/exportMessagesStatistics/download/Export_Messages_v2_12345_20260813120000-a1b2c3d4.csv"
}
}
]
}

Löscht eine Aufgabe und ihre Datei, bevor das 7-tägige Aufbewahrungsfenster abläuft.

POST https://api.pushwoosh.com/api/v2/statistics/exportMessagesStatistics/delete

Parameter des Anfragekörpers
Anchor link to

Übergeben Sie die von export zurückgegebene Aufgabenkennung:

NameErforderlichTypBeschreibung
uidJaString (int64)Aufgabenkennung aus der export-Antwort, z. B. "177458".
Beispielanfrage
Anchor link to
{
"uid": "177458"
}
{}

Lädt die von result generierte CSV-Datei nach Namen herunter.

GET https://app.pushwoosh.com/api/v2/statistics/exportMessagesStatistics/download/<file>

Authentifizieren Sie sich auf die gleiche Weise wie bei den anderen Methoden oder verlassen Sie sich auf eine aktive Control Panel-Sitzung:

NameErforderlichBeschreibung
AuthorizationJaServer-API-Token, im gleichen Format wie die anderen exportMessagesStatistics-Methoden: Authorization: Api <Server Key> (das Api-Schema ist nicht case-sensitiv). Eine Anfrage ohne Authorization-Header und ohne angemeldete Control Panel-Sitzung erhält 401 Unauthorized.

Ersetzen Sie <file> durch den exakten file-Wert aus der result-Antwort, zum Beispiel:

https://app.pushwoosh.com/api/v2/statistics/exportMessagesStatistics/download/Export_Messages_v2_12345_20260813120000-a1b2c3d4.csv

Die Datei ist eine CSV-Datei, die die in properties ausgewählten Spalten enthält. Sie bleibt 7 Tage nach Abschluss des Exports verfügbar, dann entfernt der Bereinigungsjob sie und die URL ist nicht mehr auflösbar.

Export der Nachrichtenempfänger

Anchor link to

Dieselben Methoden export, status, result, lastTasks, delete und download exportieren auch die einzelnen Empfänger einer Nachricht. Verwenden Sie "type": "TASK_TYPE_EXPORT_MESSAGE_RECIPIENTS" und ein export_message_recipients-Objekt anstelle von export_messages_v2.

POST https://api.pushwoosh.com/api/v2/statistics/exportMessagesStatistics/export

Anfragefelder von export_message_recipients
Anchor link to
Name
ErforderlichTypBeschreibung
message_idSiehe HinweisString (uint64)Eine einzelne numerische Nachrichten-ID. Erforderlich, wenn campaign nicht gesetzt ist.
campaignSiehe HinweisStringEin einzelner Kampagnencode. Erforderlich, wenn message_id nicht gesetzt ist. Werden beide gesetzt, wird auf die Zeilen der Nachricht innerhalb dieser Kampagne eingeschränkt.
applicationJaStringAnwendungscode, zu dem die Nachricht gehört.
typeJaStringWelche Empfänger exportiert werden sollen. Einer von "sends", "deliveries", "opens", "holdout" (siehe unten).
date_from / date_toNeinString (date-time)Zeilen auf dieses Zeitfenster beschränken. Beides weglassen, um den gesamten Verlauf der Nachricht zu erhalten.

Fehlen message_id und campaign zugleich oder fehlt application, schlägt der Export mit einem Fehler fehl, der das fehlende Feld nennt. Eine message_id aus einem anderen Konto schlägt mit NotFound: message not found fehl; dies wird vor dem Export geprüft. Eine message_id oder campaign, die zu einer anderen Anwendung im selben Konto gehört, wird nicht abgelehnt. Sie trifft auf keine Zeilen, und die CSV-Datei wird nur mit einer Kopfzeile heruntergeladen.

type wählt die Empfängermenge aus:

WertZurückgegebene Zeilen
"sends"Jeder Empfänger, für den die Nachricht angenommen wurde.
"deliveries"Empfänger aus sends, deren Zustellung vom Anbieter bestätigt wurde.
"opens"Empfänger aus sends, die die Nachricht geöffnet haben.
"holdout"Empfänger, die von dieser Nachricht ausgeschlossen wurden, nicht von einer anderen. An sie wurde nichts gesendet. Sowohl eine kontoweite Kontrollgruppe als auch das eigene holdout_percentage der Nachricht (siehe Messaging API v2) können diese Zeile erzeugen.
Beispielanfrage
Anchor link to
{
"type": "TASK_TYPE_EXPORT_MESSAGE_RECIPIENTS",
"export_message_recipients": {
"message_id": "22875465358",
"application": "6D382-5ADFE",
"type": "holdout",
"date_from": "2026-08-01T00:00:00Z",
"date_to": "2026-09-30T00:00:00Z"
}
}
{
"uid": "29820"
}

Fragen Sie status ab und rufen Sie result genauso auf wie bei einem Export des Nachrichtenverlaufs. result gibt export_message_recipients_result anstelle von export_messages_v2_result zurück:

{
"export_message_recipients_result": {
"file": "Message_22875465358_Holdout_29820-fe5d8ba468df25b7.csv",
"file_url": "https://app.pushwoosh.com/api/v2/statistics/exportMessagesStatistics/download/Message_22875465358_Holdout_29820-fe5d8ba468df25b7.csv"
}
}

sends, deliveries und opens teilen sich einen Spaltensatz: hwid, user_id, platform, send_timestamp, delivery_timestamp, open_timestamp, send_error, pae, send_status. pae ist false, wenn die Plattform den Versand akzeptiert, dafür aber keinen sichtbaren Hinweis angezeigt hat; das ist derselbe Fall, den unshowable_sends in den aggregierten Statistiken zählt. holdout hat einen eigenen, kürzeren Satz: hwid, user_id, platform, holdout_timestamp.