API de statistiques
info Ceci est la dernière version de l'API de statistiques. Les améliorations de la version v4 sont les suivantes :
- Utilisation de l'authentification HTTP Basic pour autoriser l'accès. Ainsi, toute la requête API peut être effectuée avec des outils HTTP courants, tels que curl et les extensions de navigateur.
- Le contenu push est au format JSON.
Aperçu
L'API de statistiques v4 fournit plusieurs fonctions de requête de données.
Validation d'appel
Pour plus d'informations, consultez la Méthode d'authentification
Statistiques des messages
- Interrogez les statistiques de chaque état dans le cycle de vie du message_id.
- Les statistiques de chaque message push peuvent être conservées pendant un mois maximum.
URI de l'API de requête
GET v4/messages/details
Exemple de requête
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==
Paramètres de la requête
| Mots-clés | Type | Option | Description |
|---|---|---|---|
| message_ids | String | requis | <li>ID du message, plusieurs message_ids séparés par ","<li>jusqu'à 100 message_ids |
Exemple de retour
< 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"
}
}
}
}
Paramètres de retour
La réponse réussie est un objet JSON, où la clé est chaque message_id, et chaque message doit contenir les statistiques du cycle de vie de chaque phase :
| Mots-clés | Type | Option | Description |
|---|---|---|---|
| targets | Int64 | requis | Objectifs effectifs. Le nombre d'appareils cibles sélectionnés par la tâche après filtrage d'efficacité qui seront poussés. |
| sent | Int64 | requis | Quantité envoyée. Parmi les appareils cibles effectifs, le serveur EngageLab a effectivement créé le nombre d'appareils ayant envoyé la tâche. |
| delivered | Int64 | requis | Quantité livrée. Après l'envoi du message de notification, la quantité effectivement livrée sur le Web n'est pas incluse dans la quantité livrée après 5 jours. |
| impressions | Int64 | requis | Quantité affichée. Après la livraison du message de notification, le nombre réel d'affichages réussis sur le terminal de l'appareil ne sera pas comptabilisé. |
| clicks | Int64 | requis | Nombre de clics. Après l'affichage réussi du message de notification, le nombre réel de clics par l'utilisateur ne sera pas comptabilisé. |
| sub | Object | requis | Indicateurs détaillés des données statistiques.<li>notification : Statistiques récapitulatives des types de messages de la barre de notification.<li>message : Statistiques récapitulatives des messages personnalisés. |
| plan_id | String | requis | ID du plan push, identifiant le type de plan push auquel appartient le message |
| pushContent | Object | requis | Détails du contenu push, incluant les informations de contenu push pour différentes plateformes : - android : contenu push pour la plateforme Android (y compris titre et contenu) - ios : contenu push pour la plateforme iOS (y compris titre, contenu et sous-titre) - message : contenu de message personnalisé (y compris titre et contenu) |
Indicateur
| Mots-clés | Type | Option | Description |
|---|---|---|---|
| sub_web | Object | optionnel | Statistiques récapitulatives des différents canaux push sur le canal Web |
| engageLab_web | Object | optionnel | Statistiques récapitulatives du canal EngageLab |
| chrome | Object | optionnel | Statistiques récapitulatives du canal Chrome |
| safari | Object | optionnel | Statistiques récapitulatives du canal Safari |
| firefox | Object | optionnel | Statistiques récapitulatives du canal Firefox |
| edge | Object | optionnel | Statistiques récapitulatives du canal Edge |
| other | Object | optionnel | Statistiques récapitulatives des autres canaux |
Statistiques des utilisateurs
- Fournit les données statistiques pertinentes des utilisateurs sur une certaine période des 2 derniers mois : nouveaux utilisateurs, utilisateurs en ligne et utilisateurs actifs.
- Unité de temps : HOUR, DAY, MONTH
URL de l'API de requête
GET v4/status/users
Exemple de requête
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==
Paramètres de la requête
| Mots-clés | Type | Option | Description |
|---|---|---|---|
| time_unit | String | optionnel | unité de temps : <li>HOUR<li>DAY<li>MONTH |
| start | String | optionnel | Heure de début<li>Si l'unité est heure, l'heure de début est l'heure (y compris les jours, et 0 doit être ajouté si moins de deux chiffres), ex : 2006-01-02T15<li>Si l'unité est jour, l'heure de début est la date (jour), ex : 2022-06-11<li>Si l'unité est mois, l'heure de début est la date (mois), ex : 2022-06 |
| duration | String | optionnel | durée<li>Si l'unité est jour, c'est le nombre de jours<li>Seules les informations utilisateur des 60 derniers jours peuvent être interrogées. Pour les unités HOUR, seuls les résultats statistiques du jour en cours peuvent être affichés. |
Exemple
< 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
}
}]
}
Paramètres
Réponse réussie : un objet JSON :
| Mots-clés | Type | Option | Description |
|---|---|---|---|
| time_unit | String | requis | unité de temps, valeurs possibles : <li>HOUR<li>DAY<li>MONTH |
| start | String | requis | Heure de début<li>Si l'unité est heure, l'heure de début est l'heure (y compris les jours, et 0 doit être ajouté si moins de deux chiffres), ex : 2022-06-11 09<li>Si l'unité est jour, l'heure de début est la date (jour), ex : 2022-06-11<li>Si l'unité est mois, l'heure de début est la date (mois), ex : 2022-06 |
| duration | String | requis | durée<li>Si l'unité est jour, c'est le nombre de jours<li>Seules les informations utilisateur des 60 derniers jours peuvent être interrogées. Pour les unités HOUR, seuls les résultats statistiques du jour en cours peuvent être affichés. |
| items | JSON Array | requis | Résultats statistiques de la période selon la durée |
- items :
- web : Statistiques récapitulatives de la plateforme Web
| Mots-clés | Type | Option | Description |
|---|---|---|---|
| new | Int64 | optionnel | Nouvel utilisateur |
| online | Int64 | optionnel | Utilisateur en ligne |
| active | Int64 | optionnel | Utilisateur actif |
Interroger le statut du cycle de vie d'un message
- Interrogez le statut du cycle de vie du message correspondant à l'appareil sous message_id.
- Les statistiques de chaque message push peuvent être conservées pendant un mois maximum.
URL de l'API de requête
GET v4/status/message
Exemple
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==
Paramètres
| Mots-clés | Type | Option | Description |
|---|---|---|---|
| message_id | String | requis | ID du message |
| registration_ids | String | requis | <li>ID d'enregistrement, plusieurs registration_ids séparés par ","<li>Jusqu'à 1000 registration_ids pris en charge |
Exemple
< HTTP/1.1 200 OK
< Content-Type: application/json
{
"1507bfd3a7c568d4761": {
"itime": 1762331775,
"channel": "FCM",
"status": "delivered"
},
"17259fd3a7c568d4371": {
"error_message": "Le `registration_id` n'appartient pas à l'appkey",
"error_code": 21003
},
"17259fd3a7c568d4787":{
"itime": 1762331775,
"status": "sent_failed",
"error_code": 401,
"error_message": "token invalide",
"channel": "FCM"
},
"17259fd3a7c568d4372": {
"error_code": 21061,
"error_message": "aucun statut effectif"
}
}
Réponse d'échec
{
"error": {
"code": 21003,
"message": "La valeur du paramètre est invalide"
}
}
Paramètres
La réponse réussie est un objet JSON contenant le statut actuel de chaque registration_id sous ce message. En cas d'exception, l'information sera incluse dans error_message.
| Mots-clés | type | option | Description |
|---|---|---|---|
| status | String | optionnel | valeurs possibles : <li>plan : objectifs du plan<li>target_valid : objectifs valides<li>target_invalid : cibles invalides<li>sent : envoyé<li>sent_failed : échec d'envoi<li>delivered : livré<li>delivered_failed : échec de livraison<li>impression : impression<li>click : clic |
| error_message | String | optionnel | message d'erreur |
Interrogation groupée du statut du cycle de vie des messages
- Interrogez en lot le statut du cycle de vie du message pour un seul
registration_idsous chaquemessage_id. Si plusieursregistration_idexistent sous le mêmemessage_id, lesmessage_idcorrespondants seront retournés dansmulti_regid_message_ids. - Les statistiques pour chaque message push sont conservées jusqu'à un mois.
Point de terminaison de l'API
GET v4/status/batch/message
Exemple de requête
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==
Paramètres de la requête
| Mot-clé | Type | Option | Description |
|---|---|---|---|
| message_ids | String | requis | message_id, séparez-les par ",".message_id. |
Description des paramètres de réponse
Réponse réussie : un tableau d'objets ; chaque élément représente le statut actuel sous un seul message_id (et éventuellement un seul registration_id). En cas d'exception, elle sera incluse dans error_message.
| Mot-clé | Type | Options | Signification |
|---|---|---|---|
| message_id | String | requis | Le message_id du message. |
| registration_id | String | optionnel | Le registration_id unique interrogé. |
| status | String | optionnel | Valeurs possibles : |
| itime | Int64 | optionnel | Heure de mise à jour du statut, à la seconde près. |
| channel | String | optionnel | Informations sur le canal via lequel le message est poussé. |
| error_message | String | optionnel | Message d'erreur, disponible uniquement pour certains statuts. |
| error_code | Int64 | optionnel | Code d'état d'erreur, disponible uniquement pour certains statuts. |
Exemple de réponse
Réponse réussie
< HTTP/1.1 200 OK
< Content-Type: application/json
[
{
"message_id": "261585110",
"error_message": "Plusieurs `registration_id` trouvés sous le même `message_id`.",
"error_code": 21003
},
{
"message_id": "261585123",
"registration_id": "170976fa8ab73279b2f",
"status": "click",
"itime": 1766047747,
"channel": "EngageLab"
},
{
"message_id": "1613113585",
"error_message": "Le `message_id` est invalide ou n'existe pas.",
"error_code": 21003
}
]
Réponse d'échec
{
"error": {
"code": 21003,
"message": "La valeur du paramètre est invalide"
}
}
Retour de la requête
Statut HTTP
Références : HTTP-Status-Code
Code métier de retour
| Code | Description | Code de statut HTTP |
|---|---|---|
| 0 | succès | 200 |
| 21001 | Méthode non prise en charge ou url erronée | 404 |
| 21003 | Valeur du paramètre invalide | 400 |
| 23001 | Échec de l'authentification Basic | 401 |
| 23002 | Paramètre manquant ! | 400 |
| 23004 | La valeur de time_unit ne correspond pas à start ! | 400 |
| 23007 | Prise en charge uniquement des message_id des 30 derniers jours ! | 400 |
| 23100 | Erreur serveur | 500 |
| 27000 | Délai d'attente de la réponse serveur, veuillez réessayer plus tard | 500 |
| 27201 | msgid inexistant ou n'appartient pas à cette application | 400 |

