Passer au contenu

Statistiques des messages

messages:list

Anchor link to

Affiche la liste des messages envoyés.

POST https://api.pushwoosh.com/api/v2/messages:list

Nom
Requis
Description
AuthorizationOuiJeton API serveur. Doit être fourni dans le format suivant : Authorization: Api <Server Key>.
Paramètres du corps de la requête
Anchor link to
Nom
Requis
Type
Description
platformsNonArrayPlateformes de message. Valeurs possibles : "IOS", "ANDROID", "OSX", "WINDOWS", "AMAZON", "SAFARI", "CHROME", "FIREFOX", "IE", "EMAIL", "HUAWEI_ANDROID", "SMS".
date_rangeNonObjectPériode de rapport, filtrée sur la date de création du message. date_from et date_to doivent suivre le format YYYY-MM-DD (par ex., "2000-01-01") ; les deux jours sont inclus en totalité, donc date_from et date_to définis à la même date retournent cette journée entière. Les dates sont interprétées en UTC, pas dans le fuseau horaire de votre compte.
campaignNonStringCode de campagne
filtersOuiObjectFiltres de message.
sourceNonStringSource du message. Par exemple : AB_TEST, API, AUTO_PUSH, CP, CSV, CUSTOMER_JOURNEY, EMAIL_API, EMAIL_CP, GEO_ZONE, PUSH_ON_EVENT, RSS.
messages_codesNonArrayCodes de message obtenus à partir des réponses de l’API /createMessage.
messages_idsNonArrayID de message obtenus de l’historique des messages
message_typeNonStringFiltre du flux de messages. Valeurs possibles : "TRANSACTIONAL", "BROADCAST", "ALL". Vaut "ALL" par défaut si omis.
paramsNonObjectSpécifiez s’il faut afficher les détails et les métriques du message. Définissez with_details: true pour inclure l’objet "details" et with_metrics: true pour inclure l’objet "metrics" dans la réponse.
applicationOuiStringCode d’application Pushwoosh.
per_pageNonIntegerNombre de résultats par page, de 1 à 499. Omettez le paramètre pour obtenir la taille de page par défaut de 500 résultats ; passer 500 ou plus explicitement est rejeté avec 400.
pageNonIntegerNuméro de page basé sur zéro pour la pagination. Voir la limite de pagination profonde ci-dessous.

message_type détermine aussi jusqu’où remonte une requête sans date.

Exemple de requête
Anchor link to
{
"filters": {
"platforms": [], // IOS, ANDROID, OSX, WINDOWS, AMAZON, SAFARI, CHROME, FIREFOX, IE, EMAIL, HUAWEI_ANDROID, SMS
"date_range": {
"date_from": "string", // Format requis : 2000-01-01
"date_to": "string" // Format requis : 2000-01-01
},
"source": "API", // AB_TEST, API, AUTO_PUSH, CP, CSV, CUSTOMER_JOURNEY, EMAIL_API, EMAIL_CP, GEO_ZONE, PUSH_ON_EVENT, RSS
"campaign": "string", // Code de campagne
"messages_ids": [], // ID de message
"messages_codes": [], // Codes de message
"message_type": "ALL", // TRANSACTIONAL, BROADCAST, ALL (par défaut)
"application": "string" // Code d'application Pushwoosh
},
"params": {
"with_details": true, // Ajouter les détails du message à la réponse (objet "details")
"with_metrics": true // Ajouter les métriques du message à la réponse (objet "metrics")
},
"per_page": 20, // <= 499
"page": 0
}
Codes de réponse et exemples
{
"total": 0,
"items": [{
"id": 0,
"code": "string",
"created_date": "string",
"send_date": "string",
"status": "string",
"platforms": [],
"source": "string",
"push_info": {
"details": {
"title": "string",
"filter_name": "string",
"filter_code": "string",
"content": {
"key": "value"
},
"platform_parameters": {
"android_header": "string",
"android_root_params": {
"key": "value"
},
"ios_title": "string",
"ios_subtitle": "string",
"ios_root_params": {
"key": "value"
},
"chrome_header": "string",
"chrome_root_params": {
"key": "value"
},
"firefox_header": "string",
"firefox_root_params": {
"key": "value"
},
"conditions": [ // conditions de tag (voir /developer/api-reference/messages-api/#tag-conditions)
TAG_CONDITION1,
TAG_CONDITION2,
...,
TAG_CONDITIONN
],
"conditions_operator": "AND", // opérateur logique pour les tableaux de conditions ; valeurs possibles : AND, OR
"data": {
"key": "value"
}
},
"follow_user_timezone": true
},
"metrics": [{
"sends": 0,
"opens": 0,
"deliveries": 0,
"inbox_opens": 0,
"unshowable_sends": 0,
"errors": 0,
"platform": 0
}]
},
"email_info": {
"details": {
"template": "string",
"filter_name": "string",
"filter_code": "string",
"subject": {
"key": "value"
},
"from_name": "string",
"from_email": "string",
"reply_name": "string",
"reply_email": "string",
"follow_user_timezone": true,
"conditions": [ // conditions de tag (voir Messages-api - tag-conditions)
TAG_CONDITION1,
TAG_CONDITION2,
...,
TAG_CONDITIONN
],
"conditions_operator": "AND" // opérateur logique pour les tableaux de conditions ; valeurs possibles : AND, OR
},
"metrics": [{
"sends": 0,
"opens": 0,
"deliveries": 0,
"hard_bounces": 0,
"soft_bounces": 0,
"rejects": 0,
"confirmed_sends": 0,
"unsubs": 0,
"complaints": 0,
"errors": 0
}]
}
}]
}

totalsByIntervals

Anchor link to

Retourne les métriques et les données de conversion basées sur le code du message, agrégées par heure.

POST https://api.pushwoosh.com/api/v2/statistics/messages/totalsByIntervals

Autorisation
Anchor link to

L’autorisation est gérée via le jeton d’accès API dans l’en-tête de la requête.

Paramètres du corps de la requête
Anchor link to
Nom du paramètre
Type
DescriptionRequis
message_codestringCode de message obtenu à partir des réponses de l’API /createMessage.Oui
platforms[int]PlateformesNon
Exemple de requête
Anchor link to
{
"message_code": "XXXXX-XXXXXXXXX-XXXXXXXX", // requis. Identifiant unique du message
"platforms": [1, 3, 7, 10, 11, 12] // optionnel. Liste des codes de plateforme
}
Champs de la réponse
Anchor link to
NomTypeDescription
metricsarrayContient un tableau de métriques de message
timestampstringL’heure de la métrique.
platformintLe code de la plateforme (par ex., iOS, Android).
sendsstringLe nombre de messages envoyés.
opensstringLe nombre de messages ouverts.
deliveriesstringLe nombre de messages livrés.
inbox_opensstringLe nombre d’ouvertures de la boîte de réception.
unshowable_sendsstringLe nombre de messages acceptés pour les appareils dont les notifications sont désactivées dans les paramètres de l’OS. Aucune bannière n’est affichée, mais le message atteint quand même l’application, et il apparaît dans la Boîte de réception des messages si l’envoi a l’option Enregistrer le message dans la boîte de réception activée. Comptabilisé comme des envois réussis, pas comme des erreurs.
errorsstringLe nombre d’erreurs.
conversionobjectContient des données de conversion
sendsstringLe nombre total de messages envoyés.
opensstringLe nombre total de messages ouverts.
eventsarrayUn tableau d’événements avec leurs statistiques
namestringLe nom de l’événement (par ex., ajout au panier).
hitsstringLe nombre de hits.
conversionfloatLe taux de conversion par rapport aux ouvertures.
revenuefloatLe revenu (uniquement pour les événements avec les attributs __amount et __currency).
Exemple de réponse
Anchor link to
{
"metrics": [{
"timestamp": "2024-08-03 15:00:00", // Horodatage des métriques au format "YYYY-MM-DD HH:MM:SS"
"platform": 3, // Code de la plateforme
"sends": "55902", // Nombre de messages envoyés
"opens": "382", // Nombre de messages ouverts
"deliveries": "22931", // Nombre de messages livrés
"inbox_opens": "0", // Nombre de messages ouverts dans la boîte de réception
"unshowable_sends": "2", // Envoyé aux appareils avec les notifications désactivées, aucune bannière affichée
"errors": "0" // Nombre d'erreurs rencontrées
}],
"conversion": {
"sends": "55902", // Nombre total de messages envoyés
"opens": "772", // Nombre total de messages ouverts
"events": [{
"name": "cart_add", // Nom de l'événement
"hits": "96", // Nombre de hits pour l'événement
"conversion": 0.12, // Taux de conversion par rapport aux ouvertures
"revenue": 0 // Revenu généré par l'événement (uniquement pour les événements avec des attributs de montant/devise)
}]
}
}

Entonnoir de livraison

Anchor link to

Utilisez l’entonnoir de livraison pour voir à quelle étape un message ou une campagne a perdu son audience (erreurs, non-livraison, non-ouverture) et pourquoi. Contrairement à totalsByIntervals, qui renvoie des totaux horaires, l’entonnoir décompose l’audience par étape et par motif d’abandon, une entrée par canal, avec une ventilation par plateforme. La séquence des étapes diffère selon le canal : voir stage sous Champs de GetDeliveryFunnelResponse ci-dessous pour savoir quelles étapes chaque canal comporte. Les deux méthodes nécessitent un jeton d’API serveur.

Les deux méthodes renvoient la même forme de réponse, GetDeliveryFunnelResponse, décrite une seule fois ci-dessous.

getDeliveryFunnel

Anchor link to

Renvoie l’entonnoir d’un message.

POST https://api.pushwoosh.com/api/v2/statistics/messages/getDeliveryFunnel

Nom
Requis
Description
AuthorizationOuiJeton d’API serveur. Doit être fourni au format suivant : Authorization: Api <Server Key>.
Paramètres du corps de la requête
Anchor link to
Nom
Requis
Type
Description
message_codeOuiChaîneCode du message obtenu des réponses de l’API /createMessage.
platformsNonTableau d’entiersCodes de plateforme pour filtrer l’entonnoir. Omettre pour renvoyer toutes les plateformes sur lesquelles le message a été envoyé.
Exemple de requête
Anchor link to
{
"message_code": "A444-AAABBBCC-00112233", // Code du message provenant de /createMessage
"platforms": [1, 14] // Facultatif. iOS, Email
}
Champs de GetDeliveryFunnelResponse
Anchor link to
Nom
TypeDescription
channelsTableauUne entrée par canal sur lequel le message a été envoyé.
window_from, window_toChaîne ou nullLa période couverte par l’entonnoir, selon les données disponibles. null lorsque funnel_state n’est pas FUNNEL_STATE_READY.
funnel_stateChaîneFUNNEL_STATE_READY : l’entonnoir ci-dessous est renseigné. FUNNEL_STATE_NO_EVENTS : rien ne s’est encore produit pour ce message. FUNNEL_STATE_EXPIRED : le message a été envoyé il y a trop longtemps. Ses données d’entonnoir ne sont plus disponibles. channels est vide dans les deux cas hors READY. Un message_code inconnu, étranger ou supprimé n’est aucun de ces états, voir la réponse 404 ci-dessous.

channels[]

NomTypeDescription
channelChaîneCHANNEL_MOBILE_PUSH (iOS, macOS, Android, Amazon, Huawei), CHANNEL_WEB_PUSH (Safari, Chrome, Firefox), CHANNEL_EMAIL, CHANNEL_OTHER (SMS, messageries, Wallet, Windows, Baidu, Xiaomi), CHANNEL_APP_INBOX.
funnelTableauÉtapes de l’entonnoir pour ce canal, voir funnel[] ci-dessous.
deliveries_formChaîneQuelle ventilation porte l’étape STAGE_DELIVERIES : DELIVERIES_FORM_PER_DEVICE (quatre lignes disjointes, réparties selon que l’appareil afficherait une alerte et qu’il ait confirmé) ou DELIVERIES_FORM_BASIC (deux lignes, sans répartition par état d’alerte).
basic_form_reasonChaîneSignificatif uniquement lorsque deliveries_form vaut DELIVERIES_FORM_BASIC : BASIC_FORM_REASON_RETENTION (le message est trop ancien pour une ventilation par appareil), BASIC_FORM_REASON_UNAVAILABLE (une ventilation par appareil n’est pas disponible pour ce compte ou ce message, par exemple un message système), BASIC_FORM_REASON_NO_DELIVERIES (rien accepté pour l’instant), BASIC_FORM_REASON_NOT_APPLICABLE (le canal n’a aucun état d’alerte, par exemple email ou App Inbox). Sinon BASIC_FORM_REASON_UNSPECIFIED : ignorez ce champ sauf si deliveries_form vaut DELIVERIES_FORM_BASIC.
confirmed_deliveriesObjetcount et une ventilation par platforms des livraisons confirmées. Non plafonné au compte de STAGE_DELIVERIES, il peut donc en différer.

funnel[] (une étape)

NomTypeDescription
stageChaîneSTAGE_AUDIENCE (tous ceux ciblés par le message), STAGE_SENT (accepté par le service push ou le fournisseur email), STAGE_ERRORS (rejeté avant d’être accepté), STAGE_DELIVERIES (accepté, réparti par confirmation), STAGE_OPENED (appareils uniques ayant ouvert, ou pour App Inbox les entrées que l’utilisateur a ouvertes en appuyant dessus), STAGE_INTERACTIONS (email uniquement : clic, désabonnement, plainte), STAGE_REACHED/STAGE_READ (App Inbox uniquement, remplacent STAGE_DELIVERIES).
countChaîneTotal de l’étape, sous forme de chaîne numérique.
piecesTableauVentilation propre à l’étape. Vide sur STAGE_ERRORS, qui utilise errors à la place. Chaque élément a un kind (KIND_PASSED est passé à l’étape suivante, KIND_REASON non, KIND_SUBSET chevauche les deux autres et n’est jamais additionné), une category (voir la liste des valeurs ci-dessous pour chaque étape), un count et une ventilation par platforms.
errorsTableauSTAGE_ERRORS uniquement : category (voir la liste des valeurs ci-dessous), count, platforms, et codes : les codes d’erreur bruts du fournisseur regroupés dans cette catégorie (platform, code, name, count).
platformsTableauLe total de l’étape, réparti par plateforme.

Valeurs de category

STAGE_AUDIENCE :

  • ELIGIBLE_AUDIENCE (passé) : non exclu par l’un des motifs ci-dessous.
  • FREQUENCY_CAPPING : ignoré par la limitation de fréquence.
  • CONTROL_GROUP : retenu comme groupe témoin.
  • UNSUBSCRIBED : le destinataire s’était désabonné.
  • BOUNCED : l’adresse du destinataire avait déjà rebondi.
  • COMPLAINT : le destinataire avait déjà marqué un message comme spam.
  • FILTERED_BY_CATEGORY : le destinataire s’était désinscrit de cette catégorie de message.

STAGE_ERRORS :

  • NO_TOKEN : l’appareil n’avait ni jeton push ni adresse pour l’envoi.
  • NO_DEVICE : aucun appareil correspondant n’a été trouvé.
  • PLATFORM_DISABLED : la plateforme est désactivée pour cette application.
  • INVALID_TOKEN : le fournisseur a rejeté le jeton ou l’adresse de l’appareil comme invalide.
  • QUOTA_EXCEEDED : le fournisseur a limité le débit d’envoi.
  • INVALID_CONTENT : le message n’a pas pu être envoyé tel que composé. Le plus souvent, le modèle lui-même n’a pas pu être construit, par exemple un bloc Connected Content ou Liquid défectueux, plutôt qu’un rejet par le fournisseur.
  • INVALID_CONFIGURATION : la configuration propre du fournisseur du compte est défectueuse, par exemple des identifiants incorrects, un projet Firebase supprimé, ou un topic APNs non autorisé.
  • PROVIDER_ERROR : le fournisseur a renvoyé une erreur en dehors des catégories ci-dessus.
  • INTERNAL_ERROR : Pushwoosh n’a pas réussi à traiter l’envoi.
  • UNCLASSIFIED_ERROR : un abandon qui ne correspond à aucune des catégories ci-dessus. Devrait être rare.

STAGE_DELIVERIES, DELIVERIES_FORM_PER_DEVICE :

  • DISPLAYABLE_CONFIRMED (passé) : l’appareil a affiché une alerte et confirmé la réception.
  • DISPLAYABLE_NO_CONFIRMATION : l’appareil afficherait une alerte mais n’a pas encore confirmé la réception.
  • NOT_DISPLAYABLE_CONFIRMED (passé) : un push silencieux a confirmé la réception.
  • NOT_DISPLAYABLE_NO_CONFIRMATION : un push silencieux n’a pas encore confirmé la réception.

STAGE_DELIVERIES, DELIVERIES_FORM_BASIC :

  • CONFIRMED_BY_DEVICE (passé) : l’appareil a confirmé la réception.
  • NO_CONFIRMATION : pas encore confirmé.

L’email ajoute en plus, en tant que sous-ensemble chevauchant CONFIRMED_BY_DEVICE :

  • BOUNCED_HARD (sous-ensemble) : l’adresse est définitivement non livrable.
  • BOUNCED_SOFT (sous-ensemble) : l’adresse est temporairement non livrable, par exemple une boîte pleine.

BOUNCED_HARD peut également se diviser en ces lignes de sous-ensemble :

  • BOUNCED_HARD_GENERAL : définitivement non livrable, aucun motif plus précis disponible.
  • BOUNCED_HARD_MAILBOX_FULL : la boîte de réception du destinataire est pleine.
  • BOUNCED_HARD_MAILBOX_INACTIVE : la boîte de réception du destinataire n’existe plus.
  • BOUNCED_HARD_SUPPRESSED : le fournisseur a mis l’adresse sur liste noire.
  • BOUNCED_HARD_UNDETERMINED : définitivement non livrable, motif non déterminé.

BOUNCED_SOFT peut également se diviser en ces lignes de sous-ensemble :

  • BOUNCED_SOFT_GENERAL : temporairement non livrable, aucun motif plus précis disponible.
  • BOUNCED_SOFT_MAILBOX_FULL : la boîte de réception du destinataire était pleine au moment de l’envoi.
  • BOUNCED_SOFT_CONTENT_REJECTED : le serveur de messagerie du destinataire a rejeté le contenu du message.
  • BOUNCED_SOFT_SPAM : le serveur de messagerie du destinataire a signalé le message comme spam.
  • BOUNCED_SOFT_MESSAGE_TOO_LARGE : le message était trop volumineux pour la boîte de réception du destinataire.
  • BOUNCED_SOFT_ATTACHMENT_REJECTED : le serveur de messagerie du destinataire a rejeté une pièce jointe.
  • BOUNCED_SOFT_CUSTOM_TIMEOUT_EXCEEDED : le serveur de messagerie du destinataire a mis trop de temps à répondre.
  • BOUNCED_SOFT_UNDETERMINED : temporairement non livrable, motif non déterminé.
  • BOUNCED_UNDETERMINED : le serveur du destinataire a accepté l’e-mail mais n’a jamais confirmé la livraison ; le résultat est inconnu et l’adresse n’est pas supprimée. Compte comme un rebond doux.

BOUNCED_UNCLASSIFIED est un rebond, dur ou doux, qui ne correspond à aucun sous-type ci-dessus. Devrait être rare, et n’est pas une valeur sur laquelle construire une logique.

STAGE_OPENED, email uniquement (les autres canaux rapportent le count de l’étape sans éléments) :

  • OPENED_BY_RECIPIENT (passé) : ouvert par une personne.
  • MACHINE_OPENS_ONLY : ouvert uniquement par un scanner automatisé.
  • OPEN_TYPE_UNKNOWN : n’a pas pu être classé comme personne ou scanner.
  • MACHINE_OPENS_AMPP (sous-ensemble) : remplace les trois lignes ci-dessus lorsque la répartition personne/scanner n’est pas disponible pour ce message. Compte à la place le propre nombre d’ouvertures automatiques d’Apple Mail Privacy Protection, et chevauche le total de l’étape.

STAGE_INTERACTIONS, email uniquement :

  • CLICKED_ONLY (passé) : a cliqué sur un lien, est resté abonné.
  • CLICKED_AND_UNSUBSCRIBED : a cliqué sur un lien et s’est désabonné.
  • CLICKED_AND_COMPLAINED : a cliqué sur un lien et a marqué le message comme spam.
  • UNSUBSCRIBED_WITHOUT_CLICK : s’est désabonné sans cliquer.
  • COMPLAINED_WITHOUT_CLICK : a marqué le message comme spam sans cliquer.

STAGE_REACHED, App Inbox uniquement :

  • REACHED (passé) : l’entrée a été récupérée par l’application au moins une fois.
  • NOT_FETCHED_YET : pas encore récupérée.

STAGE_READ, App Inbox uniquement :

  • READ (passé) : marquée comme lue.
  • DISMISSED_UNREAD : supprimée par l’utilisateur sans avoir été lue.
  • UNREAD : toujours non lue dans la boîte de réception.
  • EXPIRED_UNREAD : identique à UNREAD, mais l’entrée a depuis expiré et disparu de la boîte de réception.
  • DISMISSED (sous-ensemble) : chaque entrée supprimée, lue ou non. Chevauche READ et DISMISSED_UNREAD.
Codes de réponse
{
"channels": [{
"channel": "CHANNEL_MOBILE_PUSH",
"funnel": [
{ "stage": "STAGE_AUDIENCE", "count": "10000", "pieces": [
{ "kind": "KIND_PASSED", "category": "ELIGIBLE_AUDIENCE", "count": "10000", "platforms": [{ "platform": 1, "count": "10000" }] }
], "errors": [], "platforms": [{ "platform": 1, "count": "10000" }] },
{ "stage": "STAGE_SENT", "count": "9820", "pieces": [], "errors": [], "platforms": [{ "platform": 1, "count": "9820" }] },
{ "stage": "STAGE_ERRORS", "count": "180", "pieces": [], "errors": [
{ "category": "INVALID_TOKEN", "count": "180", "platforms": [{ "platform": 1, "count": "180" }], "codes": [
{ "platform": 1, "code": 1002, "name": "BadDeviceToken", "count": "180" }
] }
], "platforms": [{ "platform": 1, "count": "180" }] },
{ "stage": "STAGE_DELIVERIES", "count": "9820", "pieces": [
{ "kind": "KIND_PASSED", "category": "DISPLAYABLE_CONFIRMED", "count": "8000", "platforms": [{ "platform": 1, "count": "8000" }] },
{ "kind": "KIND_REASON", "category": "DISPLAYABLE_NO_CONFIRMATION", "count": "820", "platforms": [{ "platform": 1, "count": "820" }] },
{ "kind": "KIND_PASSED", "category": "NOT_DISPLAYABLE_CONFIRMED", "count": "900", "platforms": [{ "platform": 1, "count": "900" }] },
{ "kind": "KIND_REASON", "category": "NOT_DISPLAYABLE_NO_CONFIRMATION", "count": "100", "platforms": [{ "platform": 1, "count": "100" }] }
], "errors": [], "platforms": [{ "platform": 1, "count": "9820" }] },
{ "stage": "STAGE_OPENED", "count": "3120", "pieces": [], "errors": [], "platforms": [{ "platform": 1, "count": "3120" }] }
],
"deliveries_form": "DELIVERIES_FORM_PER_DEVICE",
"basic_form_reason": "BASIC_FORM_REASON_UNSPECIFIED",
"confirmed_deliveries": { "count": "8900", "platforms": [{ "platform": 1, "count": "8900" }] }
}],
"window_from": "2026-09-01T00:00:00Z",
"window_to": "2026-09-01T00:05:00Z",
"funnel_state": "FUNNEL_STATE_READY"
}

Un tableau channels vide avec funnel_state: "FUNNEL_STATE_NO_EVENTS" signifie que rien ne s’est encore produit pour ce message. Ce n’est pas une erreur. Un message_code envoyé il y a trop longtemps pour que les données d’entonnoir soient disponibles renvoie également 200, avec un tableau channels vide et funnel_state: "FUNNEL_STATE_EXPIRED".

getCampaignDeliveryFunnel

Anchor link to

Fait la somme de getDeliveryFunnel sur les messages d’une campagne. Les comptages uniques sont calculés par message : un abonné atteint par plusieurs messages de la campagne est compté une fois pour chaque message.

POST https://api.pushwoosh.com/api/v2/statistics/messages/getCampaignDeliveryFunnel

Nom
Requis
Description
AuthorizationOuiJeton d’API serveur. Doit être fourni au format suivant : Authorization: Api <Server Key>.
Paramètres du corps de la requête
Anchor link to
Nom
Requis
Type
Description
campaign_codeOuiChaîneCode de campagne.
platformsNonTableau d’entiersCodes de plateforme pour filtrer l’entonnoir. Omettre pour renvoyer toutes les plateformes sur lesquelles la campagne a été envoyée.
Exemple de requête
Anchor link to
{
"campaign_code": "AAAAA-XXXXX", // Code de campagne
"platforms": [1, 14] // Facultatif. iOS, Email
}

Même forme que GetDeliveryFunnelResponse ci-dessus.

Codes de réponse

Une audience vide pour le campaign_code et les platforms donnés renvoie également 200 avec un tableau channels vide et funnel_state: "FUNNEL_STATE_NO_EVENTS". Une campagne envoyée il y a trop longtemps pour que les données d’entonnoir soient disponibles renvoie également 200, avec un tableau channels vide et funnel_state: "FUNNEL_STATE_EXPIRED". Aucun des deux n’est une erreur.

getMessageLog

Anchor link to

Affiche des informations détaillées sur les messages envoyés.

POST https://api.pushwoosh.com/api/v2/statistics/getMessageLog

Nom
Requis
Description
AuthorizationRequisJeton d’accès API depuis le Panneau de Contrôle Pushwoosh.
Paramètres du corps de la requête
Anchor link to
Nom
Requis
Type
Description
message_idNonIntegerSélectionne les événements de message par ID de message obtenu de l’historique des messages. Exemple : 12345678900.
message_codeNonStringSélectionne les événements de message par Code de message obtenu des réponses de l’API /createMessage. Exemple : "A444-AAABBBCC-00112233".
campaign_codeNonStringSélectionne les événements de message par Code de campagne spécifié dans la charge utile de votre message. Exemple : "AAAAA-XXXXX".
hwidNonString ou ArraySélectionne les événements de message par HWID (Hardware ID) ou un tableau de HWID.
date_fromRequis si message_id, message_code, ou campaign_code n’est pas fourniDatetimeDate de début pour le filtrage des messages. Format : "YYYY-MM-DD HH:MM:SS". Exemple : "2000-01-25 00:00:00".
date_toRequis si message_id, message_code, ou campaign_code n’est pas fourniDatetimeDate de fin pour le filtrage des messages. Format : "YYYY-MM-DD HH:MM:SS". Exemple : "2000-01-26 00:00:00".
limitNonIntegerNombre maximum d’événements de message retournés dans une seule réponse. Valeur maximale : 100000.
pagination_tokenNonStringJeton de pagination obtenu d’une réponse /getMessageLog précédente. Utilisez-le pour récupérer des résultats supplémentaires.
user_idNonStringSélectionne les événements de message par un User ID personnalisé. Voir /registerUser pour plus de détails.
application_codeOuiStringSélectionne les événements de message par Code d’application Pushwoosh
actionsNonArrayFiltre les résultats par actions de message spécifiques. Valeurs possibles : "sent", "delivered", "opened", "reject", "create", "inbox_delivered", "inbox_read", "inbox_opened", "inbox_deleted". Les événements "create" sont exclus de la réponse par défaut. Incluez "create" dans ce tableau pour les voir. Les événements "delivered" nécessitent en plus que les statistiques de livraison soient activées sur le compte.
platformsNonArrayTableau des plateformes cibles pour filtrer les résultats. Valeurs possibles : "unknown", "ios", "blackberry", "android", "windows phone", "osx", "windows", "amazon", "safari", "chrome", "firefox", "ie", "email", "fb messenger", "baidu android", "huawei android", "sms", "xiaomi", "web", "whatsapp", "line", "kakao", "telegram", "apple wallet", "google wallet", "viber".
message_typeNonStringFiltre les résultats par flux de messages. "all" (par défaut si omis) retourne tout, "broadcast" retourne uniquement les messages de masse (message_id != 0), "transactional" retourne uniquement les messages avec message_id = 0, y compris ceux envoyés depuis Customer Journey.
Exemple de requête
Anchor link to
Terminal window
curl --location --request POST 'https://api.pushwoosh.com/api/v2/statistics/getMessageLog' \
--header 'Authorization: Key API_ACCESS_TOKEN' \
--header 'Content-Type: application/json' \
--data-raw '{
"pagination_token": "PAGINATION_TOKEN_FROM_PREVIOUS_RESPONSE", // optionnel, jeton pour la pagination
"limit": 1000, // optionnel, le nombre max d'entrées pour une seule réponse
"application_code": "XXXXX-XXXXX", // Code d'application Pushwoosh
"message_code": "A444-AAABBBCC-00112233", // optionnel, code de message obtenu de la requête /createMessaage
"message_id": 1234567890, // optionnel, ID de message obtenu du Panneau de Contrôle Pushwoosh
"campaign_code": "AAAAA-XXXXX", // optionnel, code d'une campagne pour obtenir le journal
"hwid": "aaazzzqqqqxxx", // optionnel, ID matériel d'un appareil spécifique ciblé par un message
"user_id": "user_123", // optionnel, ID d'un utilisateur ciblé par le message
"date_from": "2000-01-25 00:00:00", // optionnel, début de la période des statistiques
"date_to": "2000-02-10 23:59:59", // optionnel, fin de la période des statistiques
"actions": ["opened", "inbox_opened"], // optionnel, utilisé pour la filtration des résultats. Valeurs possibles : "sent", "delivered", "opened", "reject", "create", "inbox_delivered", "inbox_read", "inbox_opened", "inbox_deleted". La réponse inclura tous les messages avec la ou les actions spécifiées.
"platforms": ["ios", "chrome"], // optionnel, utilisé pour la filtration des résultats, en minuscules uniquement. Valeurs possibles : "unknown", "ios", "blackberry", "android", "windows phone", "osx", "windows", "amazon", "safari", "chrome", "firefox", "ie", "email", "fb messenger", "baidu android", "huawei android", "sms", "xiaomi", "web", "whatsapp", "line", "kakao", "telegram", "apple wallet", "google wallet", "viber"
"message_type": "broadcast" // optionnel, "all" (par défaut), "broadcast" (message_id != 0), ou "transactional" (message_id = 0, inclut les envois de Customer Journey)
}'
Codes de réponse et exemples
{
"pagination_token": "PAGINATION_TOKEN_FOR_NEXT_REQUEST",
"data": [{
"timestamp": "2000-01-25T11:18:47Z",
"application_code": "XXXXX-XXXXX",
"message_id": 12345678900,
"message_code": "A444-AAABBBCC-00112233",
"campaign_code": "AAAAA-XXXXX",
"hwid": "aaazzzqqqqxxx",
"user_id": "user_123",
"platform": "android",
"action": "sent",
"status": "success",
"push_alerts_enabled": "true"
}, {
"timestamp": "2000-01-25T11:18:49Z",
"application_code": "XXXXX-XXXXX",
"message_id": 12345678900,
"message_code": "A444-AAABBBCC-00112233",
"campaign_code": "AAAAA-XXXXX",
"hwid": "aaazzzqqqqxxx",
"user_id": "user_123",
"platform": "android",
"action": "delivered",
"push_alerts_enabled": "true"
}, {
"timestamp": "2000-01-25T11:19:23Z",
"application_code": "XXXXX-XXXXX",
"message_id": 12345678900,
"message_code": "A444-AAABBBCC-00112233",
"campaign_code": "AAAAA-XXXXX",
"hwid": "aaazzzqqqqxxx",
"user_id": "user_123",
"platform": "android",
"action": "opened",
"push_alerts_enabled": "true"
}, {
"timestamp": "2000-01-25T11:19:30Z",
"application_code": "XXXXX-XXXXX",
"message_id": 12345678900,
"message_code": "A444-AAABBBCC-00112233",
"campaign_code": "AAAAA-XXXXX",
"hwid": "aaazzzqqqqxxx",
"user_id": "user_123",
"platform": "android",
"action": "reject",
"status": "failed",
"error_reason": "invalid device token",
"payload": "SOME_PAYLOAD_STRING"
}]
}

Chaque entrée dans data contient également error_reason (chaîne de caractères, remplie avec la raison de l’échec lorsque status est "failed") et un payload optionnel (chaîne de caractères).

Une page de réponse peut revenir plus courte que la limit demandée. Cela ne signifie pas en soi que l’exportation est terminée.

Statistiques des e-mails

Anchor link to

linksInteractions

Anchor link to

Affiche les statistiques sur les clics de liens dans les e-mails

POST https://api.pushwoosh.com/api/v2/statistics/emails/linksInteractions

Nom
Requis
Description
AuthorizationOuiJeton d’accès API depuis le Panneau de Contrôle Pushwoosh.
Paramètres du corps de la requête
Anchor link to
Nom
Requis
TypeDescription
date_rangeNonObjectDéfinit la période de rapport. Contient date_from et date_to.
filtersOuiObjectFiltres d’e-mail.
applicationOuiStringCode d’application Pushwoosh (alternativement, spécifiez campaign, messages_ids, ou message_codes).
messages_codesOuiArrayCodes de message (alternativement, spécifiez application, campaign, ou messages_ids).
campaignOuiStringCode de campagne (alternativement, spécifiez application, messages_ids, ou message_codes).
messages_idsOuiArrayID de message (alternativement, spécifiez application, campaign, ou message_codes).
link_templateRequis si application ou campaign est spécifié.StringFiltre les interactions de liens d’e-mail par mot-clé. Seuls les liens qui incluent le texte spécifié dans leur URL seront retournés dans la réponse de l’API. Par exemple, si votre e-mail contient des liens comme https://example.com/news et https://example.com/shop, définir “link_template”: “shop” retournera uniquement les interactions pour https://example.com/shop.
email_content_codeNonStringIdentifiant unique pour le contenu de l’e-mail.
paramsNonObjectDéfinit des options de réponse supplémentaires. Inclut with_full_links, qui ajoute une liste de liens complets avec des statistiques.
Exemple de requête
Anchor link to
Terminal window
curl --location --request POST 'https://api.pushwoosh.com/api/v2/statistics/emails/linksInteractions' \
--header 'Authorization: Api API_ACCESS_TOKEN' \
--header 'Content-Type: application/json' \
--data-raw '{
"filters": {
"date_range": {
"date_from": "string", // Format requis : 2000-01-01
"date_to": "string" // Format requis : 2000-01-01
},
"campaign": "string", // Code de campagne (vous pouvez spécifier application, messages_ids, ou message_codes à la place)
"application": "string", // Code d'application (vous pouvez spécifier campaign, messages_ids, ou message_codes à la place)
"messages_ids": [], // ID de message (vous pouvez spécifier application, campaign, ou message_codes à la place)
"messages_codes": [], // Codes de message (vous pouvez spécifier application, campaign, ou message_ids à la place)
"link_template": "string", // Modèle de lien (requis si application ou campaign est spécifié)
"email_content_code": "string" // Identifiant unique pour le contenu de l'e-mail.
},
"params": {
"with_full_links": true // Spécifiez s'il faut afficher des statistiques détaillées. Une liste de liens complets avec des statistiques sera passée dans le tableau full_links.
}
}'
Codes de réponse et exemples
Anchor link to
{
"items": [{
"template": "string",
"link": "string",
"title": "string",
"clicks": 0,
"full_links": [{
"full_link": "string",
"clicks": 0
}]
}]
}

linksInteractionsDevices

Anchor link to

Affiche les utilisateurs qui ont cliqué sur des liens dans les e-mails

POST https://api.pushwoosh.com/api/v2/statistics/emails/linksInteractionsDevices

Nom
Requis
Description
AuthorizationOuiJeton d’accès API depuis le Panneau de Contrôle Pushwoosh.
Paramètres du corps de la requête
Anchor link to
Nom
Requis
TypeDescription
date_rangeNonObjectDéfinit la période de rapport. Contient date_from et date_to.
filtersOuiObjectFiltres d’e-mail.
applicationOuiStringCode d’application Pushwoosh (alternativement, spécifiez campaign, messages_ids, ou message_codes).
messages_codesOuiArrayCodes de message (alternativement, spécifiez application, campaign, ou messages_ids).
campaignOuiStringCode de campagne (alternativement, spécifiez application, messages_ids, ou message_codes).
messages_idsOuiArrayID de message (alternativement, spécifiez application, campaign, ou message_codes).
link_templateRequis si application ou campaign est spécifié.StringFiltre les interactions de liens d’e-mail par mot-clé. Seuls les liens qui incluent le texte spécifié dans leur URL seront retournés dans la réponse de l’API. Par exemple, si votre e-mail contient des liens comme https://example.com/news et https://example.com/shop, définir “link_template”: “shop” retournera uniquement les interactions pour https://example.com/shop.
email_content_codeNonStringIdentifiant unique pour le contenu de l’e-mail.
pageNonIntegerNuméro de page pour la pagination.
per_pageNonIntegerNombre de résultats par page (≤ 1000).
Exemple de requête
Anchor link to
Terminal window
curl --location --request POST 'https://api.pushwoosh.com/api/v2/statistics/emails/linksInteractionsDevices' \
--header 'Authorization: Api API_ACCESS_TOKEN' \
--header 'Content-Type: application/json' \
--data-raw '{
"filters": {
"date_range": {
"date_from": "string", // Format requis : 2000-01-01
"date_to": "string" // Format requis : 2000-01-01
},
"campaign": "string", // Code de campagne (vous pouvez spécifier application, messages_ids, ou message_codes à la place)
"application": "string", // Code d'application (vous pouvez spécifier campaign, messages_ids, ou message_codes à la place)
"messages_ids": [], // ID de message (vous pouvez spécifier application, campaign, ou message_codes à la place)
"messages_codes": [], // Codes de message (vous pouvez spécifier application, campaign, ou message_ids à la place)
"link_template": "string", // Modèle de lien (requis si application ou campaign est spécifié)
"email_content_code": "string" // Identifiant unique pour le contenu de l'e-mail.
},
"per_page": 100,
"page": 0
}'
Codes de réponse et exemples
Anchor link to
{
"total": 0,
"items": [{
"timestamp": "string",
"link": "string",
"hwid": "string"
}]
}

bouncedEmails

Anchor link to

POST https://api.pushwoosh.com/api/v2/statistics/emails/bouncedEmails

Fournit des données sur les plaintes par e-mail, les soft bounces et les hard bounces, y compris la date, l’adresse e-mail et la raison de chaque rebond.

Autorisation
Anchor link to

L’autorisation est gérée via le jeton d’accès API dans l’en-tête de la requête.

Paramètres du corps de la requête
Anchor link to
Nom du paramètreTypeDescriptionRequis
applicationstringCode d’application PushwooshOui
message_codestringCode de message.Requis si date range ou campaign n’est pas fourni
campaignstringCode de campagne.Requis si message_code ou date range n’est pas fourni
date_fromstringLa date de début pour les données au format YYYY-MM-DDTHH:MM:SS.000Z (norme ISO 8601).Requis si message_code ou campaign n’est pas fourni
date_tostringLa date de fin pour les données au format YYYY-MM-DDTHH:MM:SS.000Z (norme ISO 8601).Requis si message_code ou campaign n’est pas fourni
per_pageintLe nombre de lignes par page, maximum 5000.Oui
pageintLe numéro de page, à partir de zéro.Oui
typestringLe type de rebond : Complaint, Softbounce, Hardbounce.Non
Exemple de requête
Anchor link to
{
"application": "XXXXX-XXXXX", // requis. Code d'application Pushwoosh
"message_code": "XXXXX-XXXXXXXXX-XXXXXXXX", // requis si la campagne ou la plage de dates n'est pas fournie.
// Identifiant unique du message
"campaign": "XXXXX-XXXXX", // requis si le code de message ou la plage de dates n'est pas fourni.
// Code de campagne
"date_from": "2024-07-20T00:00:00.000Z", // requis si le code de message ou la campagne n'est pas fourni.
// Date de début au format ISO 8601 "YYYY-MM-DDTHH:MM:SS.SSSZ"
"date_to": "2024-07-20T00:00:00.000Z", // requis si le code de message ou la campagne n'est pas fourni.
// Date de fin au format ISO 8601 "YYYY-MM-DDTHH:MM:SS.SSSZ"
"per_page": 1000, // requis. Nombre de résultats par page, maximum 5000
"page": 5, // optionnel. Numéro de page, à partir de zéro
"type": "Softbounce" // optionnel. Le type de rebond : Complaint, Softbounce, Hardbounce
}
Champs de la réponse
Anchor link to
Nom du champTypeDescription
totalintLe nombre total de lignes.
bounced_emailsarrayUn tableau de détails sur les e-mails retournés.
├── emailstringL’adresse e-mail qui a été retournée.
├── datestringLa date du rebond (format : YYYY-MM-DDTHH:MM:SS.000Z).
├── reasonstringLa raison du rebond.
└── typestringLe type de rebond : Complaint, Softbounce, Hardbounce.
Exemple de réponse
Anchor link to
{
"total": 25, // Nombre total de lignes.
"bounced_emails": [{
"email": "example@example.com", // Adresse e-mail qui a été retournée
"date": "2024-07-20T00:00:00.000Z", // Date du rebond au format ISO 8601
"reason": "Invalid recipient address", // Raison du rebond
"type": "Hardbounce" // Type de rebond : Complaint, Softbounce, Hardbounce
}]
}