logoDocumentation
Rechercher

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==
              
              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==

            
Afficher ce bloc de code dans la fenêtre flottante

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" } } } }
              
              < 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"
            }
        }

    }
}

            
Afficher ce bloc de code dans la fenêtre flottante

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==
              
              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==

            
Afficher ce bloc de code dans la fenêtre flottante

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 } }] }
              
              < 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
    }
    }]
}

            
Afficher ce bloc de code dans la fenêtre flottante

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&registration_ids=1507bfd3a7c568d4761,1618cfd3a7c568d4761,17259fd3a7c568d4371 -u "7d431e42dfa6a6d693ac2d04:5e987ac6d2e04d95a9d8f0d1" < GET /v4/status?message_id=&registration_ids= HTTP/1.1 < Authorization: Basic N2Q0MzFlNDJkZmE2YTZkNjkzYWMyZDA0OjVlOTg3YWM2ZDJlMDRkOTVhOWQ4ZjBkMQ==
              
              curl -v https://webpushapi-sgp.engagelab.com/v4/status/message?message_id=1613113584&registration_ids=1507bfd3a7c568d4761,1618cfd3a7c568d4761,17259fd3a7c568d4371 -u "7d431e42dfa6a6d693ac2d04:5e987ac6d2e04d95a9d8f0d1"

< GET /v4/status?message_id=&registration_ids= HTTP/1.1
< Authorization: Basic N2Q0MzFlNDJkZmE2YTZkNjkzYWMyZDA0OjVlOTg3YWM2ZDJlMDRkOTVhOWQ4ZjBkMQ==

            
Afficher ce bloc de code dans la fenêtre flottante

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" } }
              
              < 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"
    }
}

            
Afficher ce bloc de code dans la fenêtre flottante

Réponse d'échec

{ "error": { "code": 21003, "message": "La valeur du paramètre est invalide" } }
              
              {
  "error": {
    "code": 21003,
    "message": "La valeur du paramètre est invalide"
  }
}

            
Afficher ce bloc de code dans la fenêtre flottante

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_id sous chaque message_id. Si plusieurs registration_id existent sous le même message_id, les message_id correspondants seront retournés dans multi_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==
              
              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==

            
Afficher ce bloc de code dans la fenêtre flottante

Paramètres de la requête

Mot-clé Type Option Description
message_ids String requis
  • IDs des messages. Pour plusieurs message_id, séparez-les par ",".
  • Prend en charge jusqu'à 100 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 :
  • plan
  • target_valid
  • target_invalid
  • sent
  • sent_failed
  • delivered
  • delivered_failed
  • impression
  • click
  • 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 } ]
                  
                  < 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
      }
    ]
    
                
    Afficher ce bloc de code dans la fenêtre flottante

    Réponse d'échec

    { "error": { "code": 21003, "message": "La valeur du paramètre est invalide" } }
                  
                  {
      "error": {
        "code": 21003,
        "message": "La valeur du paramètre est invalide"
      }
    }
    
                
    Afficher ce bloc de code dans la fenêtre flottante

    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
    icon
    Contactez-nous