Statistiken-API
info Dies ist die neueste Version der Statistiken-API. Die Verbesserungen der Version v4 umfassen:
- Verwendung von HTTP Basic Authentication zur Autorisierung des Zugriffs. Dadurch kann die gesamte API-Anfrage mit gängigen HTTP-Tools wie curl und Browser-Erweiterungen durchgeführt werden.
- Die Push-Inhalte werden im JSON-Format bereitgestellt.
Überblick
Die Statistiken-API v4 bietet verschiedene Funktionen zur Datenabfrage rund um Push-Nachrichten, Nutzerstatistiken und Lebenszyklusstatus.
Authentifizierungsprüfung
Weitere Informationen finden Sie unter Authentifizierungsmethode.
Push-Nachrichtenstatistiken
- Abfrage der Statistiken für jeden Lebenszyklusstatus einer Nachrichten-ID.
- Die Statistiken jeder Push-Nachricht werden höchstens einen Monat gespeichert.
API-Endpunkt
GET v4/messages/details
Beispiel für eine Anfrage
curl -v https://webpushapi-sgp.engagelab.com/v4/messages/details?message_ids=1613113584,1229760629 -u "7d431e42dfa6a6d693ac2d04:5e987ac6d2e04d95a9d8f0d1"
< GET /v4/messages/details?message_ids=1613113584,1229760629 HTTP/1.1
< Authorization: Basic N2Q0MzFlNDJkZmE2YTZkNjkzYWMyZDA0OjVlOTg3YWM2ZDJlMDRkOTVhOWQ4ZjBkMQ==
Anfrageparameter
| Schlüsselwort | Typ | Option | Beschreibung |
|---|---|---|---|
| message_ids | String | erforderlich | Nachrichten-ID(s), mehrere message_ids durch Komma getrennt. Es sind maximal 100 message_ids zulässig. |
Beispiel für eine Antwort
< HTTP/1.1 200 OK
< Content-Type: application/json
{
"1083008": {
"targets": 1,
"sent": 1,
"delivered": 1,
"impressions": 1,
"clicks": 0,
"sub": {
"notification": {
"targets": 1,
"sent": 1,
"delivered": 1,
"impressions": 1,
"clicks": 0,
"sub_web": {
"engageLab_web": {
"targets": 0,
"sent": 0,
"delivered": 0,
"impressions": 0,
"clicks": 0
},
"chrome": {
"targets": 1,
"sent": 1,
"delivered": 1,
"impressions": 1,
"clicks": 0
},
"safari": {
"targets": 0,
"sent": 0,
"delivered": 0,
"impressions": 0,
"clicks": 0
},
"firefox": {
"targets": 0,
"sent": 0,
"delivered": 0,
"impressions": 0,
"clicks": 0
},
"edge": {
"targets": 0,
"sent": 0,
"delivered": 0,
"impressions": 0,
"clicks": 0
},
"other": {
"targets": 0,
"sent": 0,
"delivered": 0,
"impressions": 0,
"clicks": 0
}
}
},
"message": {
"targets": 0,
"sent": 0,
"delivered": 0,
"impressions": 0,
"clicks": 0
}
},
"plan_id": "engageLab_msg",
"pushContent": {
"message": {
"title": "msg",
"content": "push"
}
}
}
}
Antwortparameter
Die erfolgreiche Antwort ist ein JSON-Objekt, wobei der Schlüssel jeweils die Nachrichten-ID ist. Jede Nachricht enthält die Statistiken für jede Phase des Lebenszyklus:
| Schlüsselwort | Typ | Option | Beschreibung |
|---|---|---|---|
| targets | Int64 | erforderlich | Anzahl der Zielgeräte, die nach Wirksamkeitsprüfung für das Pushen ausgewählt wurden. |
| sent | Int64 | erforderlich | Anzahl der Geräte, an die der EngageLab-Server die Aufgabe tatsächlich erfolgreich gesendet hat. |
| delivered | Int64 | erforderlich | Anzahl der tatsächlichen Zustellungen an das Web-Endgerät (nach 5 Tagen nicht mehr gezählt). |
| impressions | Int64 | erforderlich | Anzahl der erfolgreichen Anzeigen der Benachrichtigung auf dem Endgerät. |
| clicks | Int64 | erforderlich | Anzahl der Klicks durch Nutzer:innen nach erfolgreicher Anzeige. |
| sub | Objekt | erforderlich | Aufschlüsselung der statistischen Daten: - notification: Zusammenfassung der Benachrichtigungsarten. - message: Zusammenfassung benutzerdefinierter Nachrichten. |
| plan_id | String | erforderlich | Push-Plan-ID, die den Push-Plan-Typ identifiziert, zu dem die Nachricht gehört. |
| pushContent | Objekt | erforderlich | Details zum Push-Inhalt, inkl. Informationen für verschiedene Plattformen: - android: Android-Push-Inhalt (z. B. Titel, Inhalt) - ios: iOS-Push-Inhalt (Titel, Inhalt, Untertitel) - message: Benutzerdefinierter Nachrichteninhalt (Titel, Inhalt) |
Indikatoren
| Schlüsselwort | Typ | Option | Beschreibung |
|---|---|---|---|
| sub_web | Objekt | optional | Zusammengefasste Statistik der verschiedenen Push-Kanäle im Web |
| engageLab_web | Objekt | optional | Statistik für den EngageLab-Kanal |
| chrome | Objekt | optional | Statistik für den Chrome-Kanal |
| safari | Objekt | optional | Statistik für den Safari-Kanal |
| firefox | Objekt | optional | Statistik für den Firefox-Kanal |
| edge | Objekt | optional | Statistik für den Edge-Kanal |
| other | Objekt | optional | Statistik für andere Kanäle |
Nutzerstatistiken
- Liefert relevante statistische Daten zu Nutzern innerhalb eines bestimmten Zeitraums der letzten 2 Monate: inklusive neue Nutzer, neue Nutzer:innen, Online-Nutzer, Online-Nutzer:innen und aktive Nutzer, aktive Nutzer:innen.
- Zeiteinheit: HOUR, DAY, MONTH
API-Endpunkt
GET v4/status/users
Beispiel für eine Anfrage
curl -v https://webpushapi-sgp.engagelab.com/v4/status/users?time_unit=DAY&start=2014-06-10&duration=3 -u "7d431e42dfa6a6d693ac2d04:5e987ac6d2e04d95a9d8f0d1"
< GET /v4/users?time_unit=&start=&duration= HTTP/1.1
< Authorization: Basic N2Q0MzFlNDJkZmE2YTZkNjkzYWMyZDA0OjVlOTg3YWM2ZDJlMDRkOTVhOWQ4ZjBkMQ==
Anfrageparameter
| Schlüsselwort | Typ | Option | Beschreibung |
|---|---|---|---|
| time_unit | String | optional | Zeiteinheit: HOUR, DAY, MONTH |
| start | String | optional | Startzeitpunkt: - Bei Stunde: Startzeit inkl. Tag, z. B. 2006-01-02T15 - Bei Tag: Startdatum, z. B. 2022-06-11 - Bei Monat: Startmonat, z. B. 2022-06 |
| duration | String | optional | Zeitraum: - Bei Tag: Anzahl der Tage - Es können nur Nutzerinformationen der letzten 60 Tage abgefragt werden. Bei Zeiteinheit HOUR werden nur die Ergebnisse des aktuellen Tages ausgegeben. |
Beispiel für eine Antwort
< HTTP/1.1 200 OK
< Content-Type: application/json
{
"time_unit": "DAY",
"start": "2014-06-10",
"duration": 3,
"items": [{
"time": "2014-06-12",
"web": {
"new": 1,
"active": 1,
"online": 2
}
}]
}
Antwortparameter
Erfolgreiche Antwort ist ein JSON-Objekt:
| Schlüsselwort | Typ | Option | Beschreibung |
|---|---|---|---|
| time_unit | String | erforderlich | Zeiteinheit: HOUR, DAY, MONTH |
| start | String | erforderlich | Startzeitpunkt: - Bei Stunde: Startzeit inkl. Tag, z. B. 2022-06-11 09 - Bei Tag: Startdatum, z. B. 2022-06-11 - Bei Monat: Startmonat, z. B. 2022-06 |
| duration | String | erforderlich | Zeitraum: - Bei Tag: Anzahl der Tage - Es können nur Nutzerinformationen der letzten 60 Tage abgefragt werden. Bei Zeiteinheit HOUR werden nur die Ergebnisse des aktuellen Tages ausgegeben. |
| items | JSON Array | erforderlich | Statistische Ergebnisse im Zeitraum entsprechend der Dauer |
- items:
- web: Zusammengefasste Statistik der Web-Plattform
| Schlüsselwort | Typ | Option | Beschreibung |
|---|---|---|---|
| new | Int64 | optional | Neue Nutzer |
| online | Int64 | optional | Online-Nutzer |
| active | Int64 | optional | Aktive Nutzer |
Abfrage des Nachrichten-Lebenszyklusstatus
- Abfrage des Lebenszyklusstatus einer Push-Nachricht für das entsprechende Gerät unter einer Nachrichten-ID.
- Die Statistiken jeder Push-Nachricht werden höchstens einen Monat gespeichert.
API-Endpunkt
GET v4/status/message
Beispiel für eine Anfrage
curl -v https://webpushapi-sgp.engagelab.com/v4/status/message?message_id=1613113584®istration_ids=1507bfd3a7c568d4761,1618cfd3a7c568d4761,17259fd3a7c568d4371 -u "7d431e42dfa6a6d693ac2d04:5e987ac6d2e04d95a9d8f0d1"
< GET /v4/status?message_id=®istration_ids= HTTP/1.1
< Authorization: Basic N2Q0MzFlNDJkZmE2YTZkNjkzYWMyZDA0OjVlOTg3YWM2ZDJlMDRkOTVhOWQ4ZjBkMQ==
Anfrageparameter
| Schlüsselwort | Typ | Option | Beschreibung |
|---|---|---|---|
| message_id | String | erforderlich | Nachrichten-ID |
| registration_ids | String | erforderlich | Registrierungs-ID(s), mehrere IDs durch Komma getrennt. Es sind maximal 1.000 registration_ids zulässig. |
Beispiel für eine Antwort
< HTTP/1.1 200 OK
< Content-Type: application/json
{
"1507bfd3a7c568d4761": {
"itime": 1762331775,
"channel": "FCM",
"status": "delivered"
},
"17259fd3a7c568d4371": {
"error_message": "Die „registration_id“ gehört nicht zum appkey",
"error_code": 21003
},
"17259fd3a7c568d4787":{
"itime": 1762331775,
"status": "sent_failed",
"error_code": 401,
"error_message": "Token ist ungültig",
"channel": "FCM"
},
"17259fd3a7c568d4372": {
"error_code": 21061,
"error_message": "Kein effektiver Status"
}
}
Fehlerantwort
{
"error": {
"code": 21003,
"message": "Parameterwert ist ungültig"
}
}
Antwortparameter
Die erfolgreiche Antwort ist ein JSON-Objekt mit dem aktuellen Status jeder Registrierungs-ID unter dieser Push-Nachricht. Bei Ausnahmen wird die Fehlermeldung im Feld „error_message“ ausgegeben.
| Schlüsselwort | Typ | Option | Beschreibung |
|---|---|---|---|
| status | String | optional | Wertebereich: plan, target_valid, target_invalid, sent, sent_failed, delivered, delivered_failed, impression, click |
| error_message | String | optional | Fehlermeldung |
Batch-Abfrage Nachrichten-Lebenszyklusstatus
- Batch-Abfrage des Nachrichten-Lebenszyklusstatus für eine einzelne Registrierungs-ID unter jeder Nachrichten-ID. Wenn mehrere Registrierungs-IDs unter derselben Nachrichten-ID existieren, werden die entsprechenden Nachrichten-IDs in „multi_regid_message_ids“ zurückgegeben.
- Statistiken jeder Push-Nachricht werden höchstens einen Monat gespeichert.
API-Endpunkt
GET v4/status/batch/message
Beispiel für eine Anfrage
curl -v https://webpushapi-sgp.engagelab.com/v4/status/batch/message?message_ids=1613113584,1613113585,1613113586 -u "7d431e42dfa6a6d693ac2d04:5e987ac6d2e04d95a9d8f0d1"
< GET /v4/status/batch/message?message_ids=1613113584,1613113585,1613113586 HTTP/1.1
< Authorization: Basic N2Q0MzFlNDJkZmE2YTZkNjkzYWMyZDA0OjVlOTg3YWM2ZDJlMDRkOTVhOWQ4ZjBkMQ==
Anfrageparameter
| Schlüsselwort | Typ | Option | Beschreibung |
|---|---|---|---|
| message_ids | String | erforderlich | Nachrichten-IDs, mehrere message_ids durch Komma getrennt. Es sind maximal 100 message_ids zulässig. |
Antwortparameter
Die erfolgreiche Antwort ist ein Array-Objekt; jeder Eintrag steht für den aktuellen Status unter einer einzelnen Nachrichten-ID (und ggf. einer einzelnen Registrierungs-ID). Bei Fehlern wird „error_message“ ausgegeben.
| Schlüsselwort | Typ | Option | Beschreibung |
|---|---|---|---|
| message_id | String | erforderlich | Die Nachrichten-ID |
| registration_id | String | optional | Die abgefragte Registrierungs-ID |
| status | String | optional | Wertebereich: plan, target_valid, target_invalid, sent, sent_failed, delivered, delivered_failed, impression, click |
| itime | Int64 | optional | Zeitpunkt des Status-Updates (Sekunden) |
| channel | String | optional | Kanal, über den die Nachricht gepusht wurde |
| error_message | String | optional | Fehlermeldung, nur bei bestimmten Statuswerten verfügbar |
| error_code | Int64 | optional | Fehlerstatus-Code, nur bei bestimmten Statuswerten verfügbar |
Beispiel für eine Antwort
Erfolgreiche Antwort
< HTTP/1.1 200 OK
< Content-Type: application/json
[
{
"message_id": "261585110",
"error_message": "Mehrere „registration_id“ unter derselben „message_id“ gefunden.",
"error_code": 21003
},
{
"message_id": "261585123",
"registration_id": "170976fa8ab73279b2f",
"status": "click",
"itime": 1766047747,
"channel": "EngageLab"
},
{
"message_id": "1613113585",
"error_message": "Die „message_id“ ist ungültig oder existiert nicht.",
"error_code": 21003
}
]
Fehlerantwort
{
"error": {
"code": 21003,
"message": "Parameterwert ist ungültig"
}
}
Antworten auf API-Anfragen
HTTP-Status
Referenz: HTTP-Status-Code
Geschäftscodes der Rückgabe
| Code | Beschreibung | HTTP-Status-Code |
|---|---|---|
| 0 | Erfolg | 200 |
| 21001 | Methode nicht unterstützt oder URL-Fehler | 404 |
| 21003 | Parameterwert ist ungültig | 400 |
| 23001 | Basic Authentication fehlgeschlagen | 401 |
| 23002 | Parameter fehlt! | 400 |
| 23004 | Wert von time_unit passt nicht zum Startwert! | 400 |
| 23007 | Es können nur message_id der letzten 30 Tage abgefragt werden! | 400 |
| 23100 | Serverfehler | 500 |
| 27000 | Server-Antwortzeit überschritten, bitte später erneut versuchen | 500 |
| 27201 | msgid existiert nicht oder gehört nicht zu dieser Anwendung | 400 |

