Saltar al contenido

Estadísticas de mensajes

Estos métodos devuelven estadísticas de los mensajes que ha enviado. Utilícelos para listar los mensajes enviados, obtener métricas por hora de un mensaje, ver en qué punto del embudo de entrega un mensaje perdió audiencia, leer los registros de mensajes por dispositivo y contar los clics en enlaces de los correos electrónicos.

messages:list

Anchor link to

Muestra la lista de mensajes enviados.

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

Nombre
Requerido
Descripción
AuthorizationSíToken de la API del servidor. Debe proporcionarse en el siguiente formato: Authorization: Api <Server Key>.
Parámetros del cuerpo de la solicitud
Anchor link to
Nombre
Requerido
Tipo
Descripción
platformsNoArrayPlataformas de mensajes. Valores posibles: "IOS", "ANDROID", "OSX", "WINDOWS", "AMAZON", "SAFARI", "CHROME", "FIREFOX", "IE", "EMAIL", "HUAWEI_ANDROID", "SMS".
date_rangeNoObjectPeríodo de informe, filtrado por fecha de creación del mensaje. date_from y date_to deben seguir el formato YYYY-MM-DD (p. ej., "2000-01-01"); ambos días se incluyen en su totalidad, por lo que date_from y date_to establecidos en la misma fecha devuelven ese día completo. Las fechas se interpretan en UTC, no en la zona horaria de su cuenta.
campaignNoStringCódigo de campaña
filtersSíObjectFiltros de mensajes.
sourceNoStringFuente del mensaje. Por ejemplo: AB_TEST, API, AUTO_PUSH, CP, CSV, CUSTOMER_JOURNEY, EMAIL_API, EMAIL_CP, GEO_ZONE, PUSH_ON_EVENT, RSS.
messages_codesNoArrayCódigos de mensaje obtenidos de las respuestas de la API /createMessage.
messages_idsNoArrayIDs de mensaje obtenidos del Historial de Mensajes
message_typeNoStringFiltro del flujo de mensajes. Valores posibles: "TRANSACTIONAL", "BROADCAST", "ALL". Si se omite, el valor predeterminado es "ALL".
paramsNoObjectEspecifica si se deben mostrar los detalles y las métricas del mensaje. Establece with_details: true para incluir el objeto "details" y with_metrics: true para incluir el objeto "metrics" en la respuesta.
applicationSíStringCódigo de aplicación de Pushwoosh.
per_pageNoIntegerNúmero de resultados por página, de 1 a 499. Omite el parámetro para obtener el tamaño de página predeterminado de 500 resultados; pasar 500 o más explícitamente es rechazado con 400.
pageNoIntegerNúmero de página basado en cero para la paginación. Consulta el límite de paginación profunda a continuación.

message_type también delimita hasta dónde llega una solicitud sin fechas.

Solicitud de ejemplo
Anchor link to
{
"filters": {
"platforms": [], // IOS, ANDROID, OSX, WINDOWS, AMAZON, SAFARI, CHROME, FIREFOX, IE, EMAIL, HUAWEI_ANDROID, SMS
"date_range": {
"date_from": "string", // Formato requerido: 2000-01-01
"date_to": "string" // Formato requerido: 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", // Código de campaña
"messages_ids": [], // IDs de mensaje
"messages_codes": [], // Códigos de mensaje
"message_type": "ALL", // TRANSACTIONAL, BROADCAST, ALL (predeterminado)
"application": "string" // Código de aplicación de Pushwoosh
},
"params": {
"with_details": true, // Añadir detalles del mensaje a la respuesta (objeto "details")
"with_metrics": true // Añadir métricas del mensaje a la respuesta (objeto "metrics")
},
"per_page": 20, // <= 499
"page": 0
}
Códigos de respuesta y ejemplos
{
"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": [ // condiciones de etiqueta (ver /developer/api-reference/messages-api/#tag-conditions)
TAG_CONDITION1,
TAG_CONDITION2,
...,
TAG_CONDITIONN
],
"conditions_operator": "AND", // operador lógico para los arrays de condiciones; valores posibles: 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": [ // condiciones de etiqueta (ver Messages-api - tag-conditions)
TAG_CONDITION1,
TAG_CONDITION2,
...,
TAG_CONDITIONN
],
"conditions_operator": "AND" // operador lógico para los arrays de condiciones; valores posibles: 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

Devuelve métricas y datos de conversión basados en el código del mensaje, agregados por hora.

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

Autorización
Anchor link to

La autorización se maneja a través del Token de Acceso a la API en la cabecera de la solicitud.

Parámetros del cuerpo de la solicitud
Anchor link to
Nombre del parámetro
Tipo
DescripciónRequerido
message_codestringCódigo de mensaje obtenido de las respuestas de la API /createMessage.Sí
platforms[int]PlataformasNo
Solicitud de ejemplo
Anchor link to
{
"message_code": "XXXXX-XXXXXXXXX-XXXXXXXX", // requerido. Identificador único del mensaje
"platforms": [1, 3, 7, 10, 11, 12] // opcional. Lista de códigos de plataforma
}
Campos de respuesta
Anchor link to
NombreTipoDescripción
metricsarrayContiene un array de métricas de mensajes
timestampstringLa hora de la métrica.
platformintEl código de la plataforma (p. ej., iOS, Android).
sendsstringEl número de mensajes enviados.
opensstringEl número de mensajes abiertos.
deliveriesstringEl número de mensajes entregados.
inbox_opensstringEl número de aperturas de la bandeja de entrada.
unshowable_sendsstringEl número de mensajes aceptados para dispositivos con las notificaciones desactivadas en la configuración del sistema operativo. No se muestra ningún banner, pero el mensaje llega a la aplicación y aparece en la Bandeja de entrada de mensajes si el envío tiene activada la opción Guardar mensaje en la bandeja de entrada. Se cuentan como envíos exitosos, no como errores.
errorsstringEl número de errores.
conversionobjectContiene datos de conversión
sendsstringEl número total de mensajes enviados.
opensstringEl número total de mensajes abiertos.
eventsarrayUn array de eventos con sus estadísticas
namestringEl nombre del evento (p. ej., añadir al carrito).
hitsstringEl número de hits.
conversionfloatLa tasa de conversión relativa a las aperturas.
revenuefloatLos ingresos (solo para eventos con atributos __amount y __currency).
Respuesta de ejemplo
Anchor link to
{
"metrics": [{
"timestamp": "2024-08-03 15:00:00", // Marca de tiempo de las métricas en formato "YYYY-MM-DD HH:MM:SS"
"platform": 3, // Código de plataforma
"sends": "55902", // Número de mensajes enviados
"opens": "382", // Número de mensajes abiertos
"deliveries": "22931", // Número de mensajes entregados
"inbox_opens": "0", // Número de mensajes abiertos en la bandeja de entrada
"unshowable_sends": "2", // Enviado a dispositivos con notificaciones desactivadas, no se muestra ningún banner
"errors": "0" // Número de errores encontrados
}],
"conversion": {
"sends": "55902", // Número total de mensajes enviados
"opens": "772", // Número total de mensajes abiertos
"events": [{
"name": "cart_add", // Nombre del evento
"hits": "96", // Número de hits para el evento
"conversion": 0.12, // Tasa de conversión relativa a las aperturas
"revenue": 0 // Ingresos generados por el evento (solo para eventos con atributos de cantidad/moneda)
}]
}
}

Embudo de entrega

Anchor link to

Use el embudo de entrega para ver en qué etapa un mensaje o campaña perdió audiencia (errores, sin entrega, sin apertura) y por qué. A diferencia de totalsByIntervals, que devuelve totales por hora, el embudo desglosa la audiencia por etapa y motivo de abandono, una entrada por canal, con un desglose por plataforma. La secuencia de etapas difiere según el canal: consulte stage en Campos de GetDeliveryFunnelResponse más abajo para ver qué etapas incluye cada canal. Ambos métodos requieren un token de API de servidor.

Ambos métodos devuelven la misma forma de respuesta, GetDeliveryFunnelResponse, descrita una sola vez a continuación.

getDeliveryFunnel

Anchor link to

Devuelve el embudo de un mensaje.

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

Encabezados
Anchor link to
Nombre
Requerido
Descripción
AuthorizationSíToken de API de servidor. Debe proporcionarse en el siguiente formato: Authorization: Api <Server Key>.
Parámetros del cuerpo de la solicitud
Anchor link to
Nombre
Requerido
Tipo
Descripción
message_codeSíCadenaCódigo de mensaje obtenido de las respuestas de la API /createMessage.
platformsNoArray de enterosCódigos de plataforma para filtrar el embudo. Omita para devolver todas las plataformas a las que se envió el mensaje.
Ejemplo de solicitud
Anchor link to
{
"message_code": "A444-AAABBBCC-00112233", // Código de mensaje de /createMessage
"platforms": [1, 14] // Opcional. iOS, Email
}
Campos de GetDeliveryFunnelResponse
Anchor link to
Nombre
TipoDescripción
channelsArrayUna entrada por cada canal en el que se envió el mensaje.
window_from, window_toCadena o nullEl período que cubre el embudo, según los datos disponibles. null cuando funnel_state no es FUNNEL_STATE_READY.
funnel_stateCadenaFUNNEL_STATE_READY: el embudo de abajo está completo. FUNNEL_STATE_NO_EVENTS: todavía no ha ocurrido nada para este mensaje. FUNNEL_STATE_EXPIRED: el mensaje se envió hace demasiado tiempo. Sus datos de embudo ya no están disponibles. channels está vacío en ambos casos que no sean READY. Un message_code desconocido, de otra cuenta o eliminado no es uno de estos estados; vea la respuesta 404 a continuación.

channels[]

NombreTipoDescripción
channelCadenaCHANNEL_MOBILE_PUSH (iOS, macOS, Android, Amazon, Huawei), CHANNEL_WEB_PUSH (Safari, Chrome, Firefox), CHANNEL_EMAIL, CHANNEL_OTHER (SMS, mensajería, Wallet, Windows, Baidu, Xiaomi), CHANNEL_APP_INBOX.
funnelArrayEtapas del embudo para este canal, vea funnel[] abajo.
deliveries_formCadenaQué desglose lleva la etapa STAGE_DELIVERIES: DELIVERIES_FORM_PER_DEVICE (cuatro filas disjuntas, divididas según si el dispositivo mostraría una alerta y si confirmó) o DELIVERIES_FORM_BASIC (dos filas, sin división por estado de alerta).
basic_form_reasonCadenaSolo tiene sentido cuando deliveries_form es DELIVERIES_FORM_BASIC: BASIC_FORM_REASON_RETENTION (el mensaje es demasiado antiguo para un desglose por dispositivo), BASIC_FORM_REASON_UNAVAILABLE (un desglose por dispositivo no está disponible para esta cuenta o mensaje, por ejemplo un mensaje del sistema), BASIC_FORM_REASON_NO_DELIVERIES (nada aceptado todavía), BASIC_FORM_REASON_NOT_APPLICABLE (el canal no tiene ningún estado de alerta, por ejemplo email o App Inbox). De lo contrario BASIC_FORM_REASON_UNSPECIFIED: ignore este campo a menos que deliveries_form sea DELIVERIES_FORM_BASIC.
confirmed_deliveriesObjetocount y un desglose por platforms de las entregas confirmadas. No está limitado al conteo de STAGE_DELIVERIES, por lo que puede diferir de él.

funnel[] (una etapa)

NombreTipoDescripción
stageCadenaSTAGE_AUDIENCE (todos a quienes se dirigió el mensaje), STAGE_SENT (aceptado por el servicio de push o proveedor de email), STAGE_ERRORS (rechazado antes de ser aceptado), STAGE_DELIVERIES (aceptado, dividido por confirmación), STAGE_OPENED (dispositivos únicos que abrieron, o para App Inbox las entradas que el usuario tocó para abrir), STAGE_INTERACTIONS (solo email: clic, cancelación de suscripción, queja), STAGE_REACHED/STAGE_READ (solo App Inbox, reemplazan a STAGE_DELIVERIES).
countCadenaTotal de la etapa, como cadena numérica.
piecesArrayDesglose propio de la etapa. Vacío en STAGE_ERRORS, que usa errors en su lugar. Cada elemento tiene kind (KIND_PASSED pasó a la siguiente etapa, KIND_REASON no lo hizo, KIND_SUBSET se superpone con los otros dos y nunca se suma), category (vea la lista de valores abajo de cada etapa), count y un desglose por platforms.
errorsArraySolo STAGE_ERRORS: category (vea la lista de valores abajo), count, platforms, y codes: los códigos de error del proveedor sin procesar agrupados en esta categoría (platform, code, name, count). Para saber qué significa cada name y cómo solucionarlo, consulte Errores de envío.
platformsArrayEl total de la etapa, dividido por plataforma.

Valores de category

STAGE_AUDIENCE:

  • ELIGIBLE_AUDIENCE (pasó): no excluido por ninguno de los motivos siguientes.
  • FREQUENCY_CAPPING: omitido por límite de frecuencia.
  • CONTROL_GROUP: retenido como grupo de control.
  • UNSUBSCRIBED: el destinatario se había dado de baja.
  • BOUNCED: la dirección del destinatario había rebotado previamente.
  • COMPLAINT: el destinatario había marcado previamente un mensaje como spam.
  • FILTERED_BY_CATEGORY: el destinatario se había excluido de esta categoría de mensaje.

STAGE_ERRORS:

  • NO_TOKEN: el dispositivo no tenía token de push ni dirección para enviar.
  • NO_DEVICE: no se encontró ningún dispositivo coincidente.
  • PLATFORM_DISABLED: la plataforma está deshabilitada para esta app.
  • INVALID_TOKEN: el proveedor rechazó el token del dispositivo o la dirección por inválido.
  • QUOTA_EXCEEDED: el proveedor limitó la velocidad de envío.
  • INVALID_CONTENT: el mensaje no pudo enviarse tal como se compuso. Con mayor frecuencia, la plantilla misma no logró construirse, por ejemplo un bloque de Connected Content o Liquid roto, en lugar de ser rechazado por el proveedor.
  • INVALID_CONFIGURATION: la configuración propia del proveedor de la cuenta está rota, por ejemplo credenciales incorrectas, un proyecto de Firebase eliminado, o un topic de APNs no permitido.
  • PROVIDER_ERROR: el proveedor devolvió un error fuera de las categorías anteriores.
  • INTERNAL_ERROR: Pushwoosh no pudo procesar el envío.
  • UNCLASSIFIED_ERROR: un abandono que no coincide con ninguna de las categorías anteriores. Se espera que sea poco frecuente.

STAGE_DELIVERIES, DELIVERIES_FORM_PER_DEVICE:

  • DISPLAYABLE_CONFIRMED (pasó): el dispositivo mostró una alerta y confirmó la recepción.
  • DISPLAYABLE_NO_CONFIRMATION: el dispositivo mostraría una alerta pero aún no ha confirmado la recepción.
  • NOT_DISPLAYABLE_CONFIRMED (pasó): un push silencioso confirmó la recepción.
  • NOT_DISPLAYABLE_NO_CONFIRMATION: un push silencioso aún no ha confirmado la recepción.

STAGE_DELIVERIES, DELIVERIES_FORM_BASIC:

  • CONFIRMED_BY_DEVICE (pasó): el dispositivo confirmó la recepción.
  • NO_CONFIRMATION: aún no confirmado.

El email además añade, como subconjunto que se superpone con CONFIRMED_BY_DEVICE:

  • BOUNCED_HARD (subconjunto): la dirección no se puede entregar de forma permanente.
  • BOUNCED_SOFT (subconjunto): la dirección no se puede entregar temporalmente, por ejemplo un buzón lleno.

BOUNCED_HARD también puede dividirse en estas filas de subconjunto:

  • BOUNCED_HARD_GENERAL: no se puede entregar de forma permanente, sin motivo más específico disponible.
  • BOUNCED_HARD_MAILBOX_FULL: el buzón del destinatario está lleno.
  • BOUNCED_HARD_MAILBOX_INACTIVE: el buzón del destinatario ya no existe.
  • BOUNCED_HARD_SUPPRESSED: el proveedor tiene la dirección en una lista de bloqueo.
  • BOUNCED_HARD_UNDETERMINED: no se puede entregar de forma permanente, motivo no determinado.

BOUNCED_SOFT también puede dividirse en estas filas de subconjunto:

  • BOUNCED_SOFT_GENERAL: no se puede entregar temporalmente, sin motivo más específico disponible.
  • BOUNCED_SOFT_MAILBOX_FULL: el buzón del destinatario estaba lleno en el momento del envío.
  • BOUNCED_SOFT_CONTENT_REJECTED: el servidor de correo del destinatario rechazó el contenido del mensaje.
  • BOUNCED_SOFT_SPAM: el servidor de correo del destinatario marcó el mensaje como spam.
  • BOUNCED_SOFT_MESSAGE_TOO_LARGE: el mensaje era demasiado grande para el buzón del destinatario.
  • BOUNCED_SOFT_ATTACHMENT_REJECTED: el servidor de correo del destinatario rechazó un adjunto.
  • BOUNCED_SOFT_CUSTOM_TIMEOUT_EXCEEDED: el servidor de correo del destinatario tardó demasiado en responder.
  • BOUNCED_SOFT_UNDETERMINED: no se puede entregar temporalmente, motivo no determinado.
  • BOUNCED_UNDETERMINED: el servidor del destinatario aceptó el email pero nunca confirmó la entrega; el resultado es desconocido y la dirección no está suprimida. Cuenta como rebote suave.

BOUNCED_UNCLASSIFIED es un rebote, duro o suave, que no coincide con ningún subtipo anterior. Se espera que sea poco frecuente, y no es un valor sobre el que construir lógica.

STAGE_OPENED, solo email (otros canales reportan el count de la etapa sin piezas):

  • OPENED_BY_RECIPIENT (pasó): abierto por una persona.
  • MACHINE_OPENS_ONLY: abierto solo por un escáner automatizado.
  • OPEN_TYPE_UNKNOWN: no se pudo clasificar como persona o escáner.
  • MACHINE_OPENS_AMPP (subconjunto): reemplaza a las tres filas anteriores cuando la división persona/escáner no está disponible para este mensaje. En su lugar cuenta el propio número de aperturas automáticas de Apple Mail Privacy Protection, y se superpone con el total de la etapa.

STAGE_INTERACTIONS, solo email:

  • CLICKED_ONLY (pasó): hizo clic en un enlace, se mantuvo suscrito.
  • CLICKED_AND_UNSUBSCRIBED: hizo clic en un enlace y se dio de baja.
  • CLICKED_AND_COMPLAINED: hizo clic en un enlace y marcó el mensaje como spam.
  • UNSUBSCRIBED_WITHOUT_CLICK: se dio de baja sin hacer clic.
  • COMPLAINED_WITHOUT_CLICK: marcó el mensaje como spam sin hacer clic.

STAGE_REACHED, solo App Inbox:

  • REACHED (pasó): la entrada fue obtenida por la app al menos una vez.
  • NOT_FETCHED_YET: aún no obtenida.

STAGE_READ, solo App Inbox:

  • READ (pasó): marcada como leída.
  • DISMISSED_UNREAD: eliminada por el usuario sin ser leída.
  • UNREAD: todavía sin leer en la bandeja de entrada.
  • EXPIRED_UNREAD: igual que UNREAD, pero la entrada desde entonces ha expirado y salió de la bandeja de entrada.
  • DISMISSED (subconjunto): cada entrada eliminada, leída o no. Se superpone con READ y DISMISSED_UNREAD.
Códigos de respuesta
{
"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 array channels vacío con funnel_state: "FUNNEL_STATE_NO_EVENTS" significa que todavía no ha ocurrido nada para este mensaje. Esto no es un error. Un message_code enviado hace demasiado tiempo para que los datos del embudo estén disponibles también devuelve 200, con un array channels vacío y funnel_state: "FUNNEL_STATE_EXPIRED".

getCampaignDeliveryFunnel

Anchor link to

Suma getDeliveryFunnel sobre los mensajes de una campaña. Los conteos únicos se calculan por mensaje: un suscriptor alcanzado por varios mensajes de la campaña se cuenta una vez por cada mensaje.

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

Encabezados
Anchor link to
Nombre
Requerido
Descripción
AuthorizationSíToken de API de servidor. Debe proporcionarse en el siguiente formato: Authorization: Api <Server Key>.
Parámetros del cuerpo de la solicitud
Anchor link to
Nombre
Requerido
Tipo
Descripción
campaign_codeSíCadenaCódigo de campaña.
platformsNoArray de enterosCódigos de plataforma para filtrar el embudo. Omita para devolver todas las plataformas a las que se envió la campaña.
Ejemplo de solicitud
Anchor link to
{
"campaign_code": "AAAAA-XXXXX", // Código de campaña
"platforms": [1, 14] // Opcional. iOS, Email
}

Misma forma que GetDeliveryFunnelResponse arriba.

Códigos de respuesta

Una audiencia vacía para el campaign_code y platforms dados también devuelve 200 con un array channels vacío y funnel_state: "FUNNEL_STATE_NO_EVENTS". Una campaña enviada hace demasiado tiempo para que los datos del embudo estén disponibles también devuelve 200, con un array channels vacío y funnel_state: "FUNNEL_STATE_EXPIRED". Ninguno de los dos es un error.

getMessageLog

Anchor link to

Muestra información detallada sobre los mensajes enviados.

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

Nombre
Requerido
Descripción
AuthorizationRequeridoToken de acceso a la API del Panel de Control de Pushwoosh.
Parámetros del cuerpo de la solicitud
Anchor link to
Nombre
Requerido
Tipo
Descripción
message_idNoIntegerSelecciona eventos de mensajes por ID de mensaje obtenido del historial de mensajes. Ejemplo: 12345678900.
message_codeNoStringSelecciona eventos de mensajes por Código de mensaje obtenido de las respuestas de la API /createMessage. Ejemplo: "A444-AAABBBCC-00112233".
campaign_codeNoStringSelecciona eventos de mensajes por Código de campaña especificado en la carga útil de tu mensaje. Ejemplo: "AAAAA-XXXXX".
hwidNoString o ArraySelecciona eventos de mensajes por HWID (Hardware ID) o un array de HWIDs.
date_fromRequerido si no se proporciona message_id, message_code o campaign_codeDatetimeFecha de inicio para filtrar mensajes. Formato: "YYYY-MM-DD HH:MM:SS". Ejemplo: "2000-01-25 00:00:00".
date_toRequerido si no se proporciona message_id, message_code o campaign_codeDatetimeFecha de fin para filtrar mensajes. Formato: "YYYY-MM-DD HH:MM:SS". Ejemplo: "2000-01-26 00:00:00".
limitNoIntegerNúmero máximo de eventos de mensaje devueltos en una sola respuesta. Valor máximo: 100000.
pagination_tokenNoStringToken de paginación obtenido de una respuesta /getMessageLog anterior. Úsalo para recuperar resultados adicionales.
user_idNoStringSelecciona eventos de mensajes por un ID de usuario personalizado. Consulta /registerUser para más detalles.
application_codeSíStringSelecciona eventos de mensajes por código de aplicación de Pushwoosh
actionsNoArrayFiltra los resultados por acciones de mensaje específicas. Valores posibles: "sent", "delivered", "opened", "reject", "create", "inbox_delivered", "inbox_read", "inbox_opened", "inbox_deleted". Los eventos "create" se excluyen de la respuesta por defecto. Incluye "create" en este array para verlos. Los eventos "delivered" requieren adicionalmente que las estadísticas de entrega estén habilitadas en la cuenta.
platformsNoArrayArray de plataformas de destino para filtrar los resultados. Valores posibles: "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_typeNoStringFiltra los resultados por flujo de mensajes. "all" (predeterminado si se omite) devuelve todo, "broadcast" devuelve solo mensajes masivos (message_id != 0), "transactional" devuelve solo mensajes con message_id = 0, incluidos los enviados desde Customer Journey.
Solicitud de ejemplo
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", // opcional, token para paginación
"limit": 1000, // opcional, el número máximo de entradas para una sola respuesta
"application_code": "XXXXX-XXXXX", // Código de aplicación de Pushwoosh
"message_code": "A444-AAABBBCC-00112233", // opcional, código de mensaje obtenido de la solicitud /createMessaage
"message_id": 1234567890, // opcional, ID de mensaje obtenido del Panel de Control de Pushwoosh
"campaign_code": "AAAAA-XXXXX", // opcional, código de una campaña para obtener el registro
"hwid": "aaazzzqqqqxxx", // opcional, ID de hardware de un dispositivo específico al que se dirige un mensaje
"user_id": "user_123", // opcional, ID de un usuario al que se dirige el mensaje
"date_from": "2000-01-25 00:00:00", // opcional, inicio del período de estadísticas
"date_to": "2000-02-10 23:59:59", // opcional, fin del período de estadísticas
"actions": ["opened", "inbox_opened"], // opcional, utilizado para la filtración de resultados. Valores posibles: "sent", "delivered", "opened", "reject", "create", "inbox_delivered", "inbox_read", "inbox_opened", "inbox_deleted". La respuesta incluirá todos los mensajes con la(s) acción(es) especificada(s).
"platforms": ["ios", "chrome"], // opcional, utilizado para la filtración de resultados, solo en minúsculas. Valores posibles: "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" // opcional, "all" (predeterminado), "broadcast" (message_id != 0), o "transactional" (message_id = 0, incluye envíos de Customer Journey)
}'
Códigos de respuesta y ejemplos
{
"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"
}]
}

Cada entrada en data también lleva error_reason (string, poblado con la razón del fallo cuando status es "failed") y un payload opcional (string).

Una página de respuesta puede ser más corta que el limit solicitado. Eso por sí solo no significa que la exportación haya terminado.

Estadísticas de correo electrónico

Anchor link to

linksInteractions

Anchor link to

Muestra estadísticas sobre los clics en enlaces en los correos electrónicos

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

Nombre
Requerido
Descripción
AuthorizationSíToken de acceso a la API del Panel de Control de Pushwoosh.
Parámetros del cuerpo de la solicitud
Anchor link to
Nombre
Requerido
TipoDescripción
date_rangeNoObjectDefine el período de informe. Contiene date_from y date_to.
filtersSíObjectFiltros de correo electrónico.
applicationSíStringCódigo de aplicación de Pushwoosh (alternativamente, especifica campaign, messages_ids o message_codes).
messages_codesSíArrayCódigos de mensaje (alternativamente, especifica application, campaign o messages_ids).
campaignSíStringCódigo de campaña (alternativamente, especifica application, messages_ids o message_codes).
messages_idsSíArrayIDs de mensaje (alternativamente, especifica application, campaign o message_codes).
link_templateRequerido si se especifica application o campaign.StringFiltra las interacciones de enlaces de correo electrónico por palabra clave. Solo los enlaces que incluyan el texto especificado en su URL se devolverán en la respuesta de la API. Por ejemplo, si tu correo electrónico contiene enlaces como https://example.com/news y https://example.com/shop, establecer “link_template”: “shop” devolverá interacciones solo para https://example.com/shop.
email_content_codeNoStringIdentificador único para el contenido del correo electrónico.
paramsNoObjectDefine opciones de respuesta adicionales. Incluye with_full_links, que añade una lista de enlaces completos con estadísticas.
Solicitud de ejemplo
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", // Formato requerido: 2000-01-01
"date_to": "string" // Formato requerido: 2000-01-01
},
"campaign": "string", // Código de campaña (puedes especificar application, messages_ids o message_codes en su lugar)
"application": "string", // Código de aplicación (puedes especificar campaign, messages_ids o message_codes en su lugar)
"messages_ids": [], // IDs de mensaje (puedes especificar application, campaign o message_codes en su lugar)
"messages_codes": [], // Códigos de mensaje (puedes especificar application, campaign o message_ids en su lugar)
"link_template": "string", // Plantilla de enlace (requerida si se especifica application o campaign)
"email_content_code": "string" // Identificador único para el contenido del correo electrónico.
},
"params": {
"with_full_links": true // Especifica si se deben mostrar estadísticas detalladas. Se pasará una lista de enlaces completos con estadísticas en el array full_links.
}
}'
Códigos de respuesta y ejemplos
Anchor link to
{
"items": [{
"template": "string",
"link": "string",
"title": "string",
"clicks": 0,
"full_links": [{
"full_link": "string",
"clicks": 0
}]
}]
}

linksInteractionsDevices

Anchor link to

Muestra los usuarios que hicieron clic en los enlaces de los correos electrónicos

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

Nombre
Requerido
Descripción
AuthorizationSíToken de acceso a la API del Panel de Control de Pushwoosh.
Parámetros del cuerpo de la solicitud
Anchor link to
Nombre
Requerido
TipoDescripción
date_rangeNoObjectDefine el período de informe. Contiene date_from y date_to.
filtersSíObjectFiltros de correo electrónico.
applicationSíStringCódigo de aplicación de Pushwoosh (alternativamente, especifica campaign, messages_ids o message_codes).
messages_codesSíArrayCódigos de mensaje (alternativamente, especifica application, campaign o messages_ids).
campaignSíStringCódigo de campaña (alternativamente, especifica application, messages_ids o message_codes).
messages_idsSíArrayIDs de mensaje (alternativamente, especifica application, campaign o message_codes).
link_templateRequerido si se especifica application o campaign.StringFiltra las interacciones de enlaces de correo electrónico por palabra clave. Solo los enlaces que incluyan el texto especificado en su URL se devolverán en la respuesta de la API. Por ejemplo, si tu correo electrónico contiene enlaces como https://example.com/news y https://example.com/shop, establecer “link_template”: “shop” devolverá interacciones solo para https://example.com/shop.
email_content_codeNoStringIdentificador único para el contenido del correo electrónico.
pageNoIntegerNúmero de página para la paginación.
per_pageNoIntegerNúmero de resultados por página (≤ 1000).
Solicitud de ejemplo
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", // Formato requerido: 2000-01-01
"date_to": "string" // Formato requerido: 2000-01-01
},
"campaign": "string", // Código de campaña (puedes especificar application, messages_ids o message_codes en su lugar)
"application": "string", // Código de aplicación (puedes especificar campaign, messages_ids o message_codes en su lugar)
"messages_ids": [], // IDs de mensaje (puedes especificar application, campaign o message_codes en su lugar)
"messages_codes": [], // Códigos de mensaje (puedes especificar application, campaign o message_ids en su lugar)
"link_template": "string", // Plantilla de enlace (requerida si se especifica application o campaign)
"email_content_code": "string" // Identificador único para el contenido del correo electrónico.
},
"per_page": 100,
"page": 0
}'
Códigos de respuesta y ejemplos
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

Proporciona datos sobre quejas de correo electrónico, rebotes suaves y rebotes duros, incluyendo la fecha, la dirección de correo electrónico y la razón de cada rebote.

Autorización
Anchor link to

La autorización se maneja a través del Token de Acceso a la API en la cabecera de la solicitud.

Parámetros del cuerpo de la solicitud
Anchor link to
Nombre del parámetroTipoDescripciónRequerido
applicationstringCódigo de aplicación de PushwooshSí
message_codestringCódigo de mensaje.Requerido si no se proporciona date range o campaign
campaignstringCódigo de campaña.Requerido si no se proporciona message_code o date range
date_fromstringLa fecha de inicio para los datos en el formato YYYY-MM-DDTHH:MM:SS.000Z (estándar ISO 8601).Requerido si no se proporciona message_code o campaign
date_tostringLa fecha de fin para los datos en el formato YYYY-MM-DDTHH:MM:SS.000Z (estándar ISO 8601).Requerido si no se proporciona message_code o campaign
per_pageintEl número de filas por página, máximo 5000.Sí
pageintEl número de página, comenzando desde cero.Sí
typestringEl tipo de rebote: Complaint, Softbounce, Hardbounce.No
Solicitud de ejemplo
Anchor link to
{
"application": "XXXXX-XXXXX", // requerido. Código de aplicación de Pushwoosh
"message_code": "XXXXX-XXXXXXXXX-XXXXXXXX", // requerido si no se proporciona campaign o date range.
// Identificador único del mensaje
"campaign": "XXXXX-XXXXX", // requerido si no se proporciona message_code o date range.
// Código de campaña
"date_from": "2024-07-20T00:00:00.000Z", // requerido si no se proporciona message_code o campaign.
// Fecha de inicio en formato ISO 8601 "YYYY-MM-DDTHH:MM:SS.SSSZ"
"date_to": "2024-07-20T00:00:00.000Z", // requerido si no se proporciona message_code o campaign.
// Fecha de fin en formato ISO 8601 "YYYY-MM-DDTHH:MM:SS.SSSZ"
"per_page": 1000, // requerido. Número de resultados por página, máximo 5000
"page": 5, // opcional. Número de página, comenzando desde cero
"type": "Softbounce" // opcional. El tipo de rebote: Complaint, Softbounce, Hardbounce
}
Campos de respuesta
Anchor link to
Nombre del campoTipoDescripción
totalintEl recuento total de filas.
bounced_emailsarrayUn array de detalles de correos electrónicos rebotados.
├── emailstringLa dirección de correo electrónico que rebotó.
├── datestringLa fecha del rebote (formato: YYYY-MM-DDTHH:MM:SS.000Z).
├── reasonstringLa razón del rebote.
└── typestringEl tipo de rebote: Complaint, Softbounce, Hardbounce.
Respuesta de ejemplo
Anchor link to
{
"total": 25, // Recuento total de filas.
"bounced_emails": [{
"email": "example@example.com", // Dirección de correo electrónico que rebotó
"date": "2024-07-20T00:00:00.000Z", // Fecha del rebote en formato ISO 8601
"reason": "Invalid recipient address", // Razón del rebote
"type": "Hardbounce" // Tipo de rebote: Complaint, Softbounce, Hardbounce
}]
}