API de estadísticas
info Esta es la versión más reciente de la API de estadísticas (Stats API). Las mejoras de la versión v4 son las siguientes:
- Se utiliza la autenticación básica HTTP (HTTP Basic Authentication) para autorizar el acceso. De este modo, toda la solicitud a la API se puede completar con herramientas HTTP comunes, como curl y complementos del navegador.
- El contenido del push está en formato JSON.
Visión general
Stats API v4 proporciona múltiples funciones de consulta de datos.
Validación de llamadas
Para obtener más información, consulte Método de autenticación
Estadísticas de mensajes
- Consultar las estadísticas de cada estado en el ciclo de vida (lifecycle) de message_id.
- Las estadísticas de cada mensaje push se pueden conservar como máximo durante un mes.
URI de la API de solicitud
GET v4/status/detail
Ejemplo de solicitud
curl -v https://webpushapi-sgp.engagelab.com/v4/status/detail?message_ids=1613113584,1229760629 -u "7d431e42dfa6a6d693ac2d04:5e987ac6d2e04d95a9d8f0d1"
< GET /v4/status/detail?message_ids=1613113584,1229760629 HTTP/1.1
< Authorization: Basic N2Q0MzFlNDJkZmE2YTZkNjkzYWMyZDA0OjVlOTg3YWM2ZDJlMDRkOTVhOWQ4ZjBkMQ==
curl -v https://webpushapi-sgp.engagelab.com/v4/status/detail?message_ids=1613113584,1229760629 -u "7d431e42dfa6a6d693ac2d04:5e987ac6d2e04d95a9d8f0d1"
< GET /v4/status/detail?message_ids=1613113584,1229760629 HTTP/1.1
< Authorization: Basic N2Q0MzFlNDJkZmE2YTZkNjkzYWMyZDA0OjVlOTg3YWM2ZDJlMDRkOTVhOWQ4ZjBkMQ==
Este bloque de código se muestra en una ventana flotante
Parámetros de solicitud
| Palabras clave | Tipo | Opción | Descripción |
|---|---|---|---|
| message_ids | String | Obligatorio | <li>ID de mensaje; varios message_ids se separan por ","<li>hasta 100 messages_ids |
Ejemplo de respuesta
< 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"
}
}
}
}
Este bloque de código se muestra en una ventana flotante
Parámetros de respuesta
| Palabras clave | Tipo | Opción | Descripción |
|---|---|---|---|
| targets | Int64 | Obligatorio | Objetivos efectivos. |
| sent | Int64 | Obligatorio | Cantidad enviada. |
| delivered | Int64 | Obligatorio | Cantidad entregada. |
| impressions | Int64 | Obligatorio | Cantidad de visualizaciones. |
| clicks | Int64 | Obligatorio | Número de clics. |
| sub | Object | Obligatorio | Indicadores desglosados de los datos estadísticos. |
| plan_id | String | Obligatorio | ID del plan de push. |
| pushContent | Object | Obligatorio | Detalles del contenido del push. |
Indicador
| Palabras clave | Tipo | Opción | Descripción |
|---|---|---|---|
| sub_web | Object | Opcional | Estadísticas resumidas de datos de varios canales de push en el canal Web |
| engageLab_web | Object | Opcional | Estadísticas resumidas de datos del canal Engagelab |
| chrome | Object | Opcional | Estadísticas resumidas de datos del canal Chrome |
| safari | Object | Opcional | Estadísticas resumidas de datos del canal Safari |
| firefox | Object | Opcional | Estadísticas resumidas de datos del canal Firefox |
| edge | Object | Opcional | Estadísticas resumidas de datos del canal Edge |
| other | Object | Opcional | Estadísticas resumidas de datos de otros canales |
Estadísticas de usuarios
- Proporciona estadísticas de usuarios de un periodo comprendido en los últimos 2 meses: usuarios nuevos, en línea y activos.
- Unidades de tiempo admitidas: HOUR (hora), DAY (día) y MONTH (mes).
URL de la API de solicitud
v4/status/users
v4/status/users
Este bloque de código se muestra en una ventana flotante
Ejemplo de solicitud
curl -v https://webpushapi-sgp.engagelab.com/v4/status/users?time_unit=DAY&start=2014-06-10&duration=3 -u "7d431e42dfa6a6d693ac2d04:5e987ac6d2e04d95a9d8f0d1"
< GET /v4/status/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/status/users?time_unit=&start=&duration= HTTP/1.1
< Authorization: Basic N2Q0MzFlNDJkZmE2YTZkNjkzYWMyZDA0OjVlOTg3YWM2ZDJlMDRkOTVhOWQ4ZjBkMQ==
Este bloque de código se muestra en una ventana flotante
Parámetros de solicitud
| Palabra clave | Tipo | Opción | Descripción |
|---|---|---|---|
| time_unit | String | Obligatorio | Unidad de tiempo: HOUR (hora), DAY (día) o MONTH (mes). |
| start | String | Obligatorio | Fecha u hora de inicio. |
| duration | String | Obligatorio | Duración en la unidad seleccionada; por ejemplo, número de días para DAY. |
Ejemplo de respuesta
< HTTP/1.1 200 OK
< Content-Type: application/json
{
"TimeUnit": "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
{
"TimeUnit": "DAY",
"start": "2014-06-10",
"duration": 3,
"items": [{
"time": "2014-06-12",
"web": {
"new": 1,
"active": 1,
"online": 2
}
}]
}
Este bloque de código se muestra en una ventana flotante
Parámetros de respuesta
La respuesta correcta es un objeto JSON:
| Palabra clave | Tipo | Opción | Descripción |
|---|---|---|---|
| TimeUnit | String | Obligatorio | Unidad de tiempo: HOUR (hora), DAY (día) o MONTH (mes). |
| start | String | Obligatorio | Fecha u hora de inicio. |
| duration | Integer | Obligatorio | Duración en la unidad seleccionada; por ejemplo, número de días para DAY. |
| items | JSON Array | Obligatorio | Resultados estadísticos del intervalo consultado. |
Formato de items:
- web: estadísticas agregadas de la plataforma web.
| Palabra clave | Tipo | Opción | Descripción |
|---|---|---|---|
| new | Int64 | Opcional | Usuarios nuevos. |
| online | Int64 | Opcional | Usuarios en línea. |
| active | Int64 | Opcional | Usuarios activos. |
Consultar el estado del ciclo de vida del mensaje
- Consulta el estado del ciclo de vida del mensaje para los dispositivos asociados a message_id.
- Las estadísticas de cada mensaje push se conservan durante un máximo de un mes.
URL de la API de solicitud
GET v4/status/message
Ejemplo de solicitud
curl -v https://webpushapi-sgp.engagelab.com/v4/status/message?message_id=1613113584®istration_ids=1507bfd3a7c568d4761,1618cfd3a7c568d4761,17259fd3a7c568d4371 -u "7d431e42dfa6a6d693ac2d04:5e987ac6d2e04d95a9d8f0d1"
< GET /v4/status/message?message_id=®istration_ids= HTTP/1.1
< Authorization: Basic N2Q0MzFlNDJkZmE2YTZkNjkzYWMyZDA0OjVlOTg3YWM2ZDJlMDRkOTVhOWQ4ZjBkMQ==
curl -v https://webpushapi-sgp.engagelab.com/v4/status/message?message_id=1613113584®istration_ids=1507bfd3a7c568d4761,1618cfd3a7c568d4761,17259fd3a7c568d4371 -u "7d431e42dfa6a6d693ac2d04:5e987ac6d2e04d95a9d8f0d1"
< GET /v4/status/message?message_id=®istration_ids= HTTP/1.1
< Authorization: Basic N2Q0MzFlNDJkZmE2YTZkNjkzYWMyZDA0OjVlOTg3YWM2ZDJlMDRkOTVhOWQ4ZjBkMQ==
Este bloque de código se muestra en una ventana flotante
Parámetros de solicitud
| Palabra clave | Tipo | Opción | Descripción |
|---|---|---|---|
| message_id | String | Obligatorio | ID del mensaje. |
| registration_ids | String | Obligatorio | IDs de los dispositivos. Separe varios registration_id con comas. Se admiten hasta 1000 registration_id. |
Ejemplo de respuesta
< HTTP/1.1 200 OK
< Content-Type: application/json
{
"1507bfd3a7c568d4761": {
"itime": 1762331775,
"channel": "FCM",
"status": "delivered"
},
"17259fd3a7c568d4371": {
"error_code": 21003,
"error_message": "The `registration_id` does not belong to the appkey"
},
"17259fd3a7c568d4787":{
"itime": 1762331775,
"status": "sent_failed",
"error_code": 401,
"error_message": "token is invalid",
"channel": "FCM"
},
"17259fd3a7c568d4372": {
"error_code": 21061,
"error_message": "no effect status"
}
}
< HTTP/1.1 200 OK
< Content-Type: application/json
{
"1507bfd3a7c568d4761": {
"itime": 1762331775,
"channel": "FCM",
"status": "delivered"
},
"17259fd3a7c568d4371": {
"error_code": 21003,
"error_message": "The `registration_id` does not belong to the appkey"
},
"17259fd3a7c568d4787":{
"itime": 1762331775,
"status": "sent_failed",
"error_code": 401,
"error_message": "token is invalid",
"channel": "FCM"
},
"17259fd3a7c568d4372": {
"error_code": 21061,
"error_message": "no effect status"
}
}
Este bloque de código se muestra en una ventana flotante
Respuesta de error
{
"error": {
"code": 21003,
"message": "Parameter value is invalid"
}
}
{
"error": {
"code": 21003,
"message": "Parameter value is invalid"
}
}
Este bloque de código se muestra en una ventana flotante
Consulta por lotes del estado del ciclo de vida del mensaje
- Consulta en lote el estado del ciclo de vida de los mensajes asociados a un único registration_id por message_id. Si un message_id no corresponde a un único registration_id, se devuelve un resultado de error para ese message_id.
- Las estadísticas de cada mensaje push se conservan durante un máximo de un mes.
URL de la API de solicitud
GET v4/status/batch/message
Ejemplo de solicitud
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==
Este bloque de código se muestra en una ventana flotante
Parámetros de solicitud
| Palabra clave | Tipo | Opción | Descripción |
|---|---|---|---|
| message_ids | String | Obligatorio | IDs de los mensajes separados por comas. Se admiten hasta 100 message_id. |
Descripción de los parámetros de respuesta
La respuesta contiene el estado actual del único registration_id asociado a cada message_id. Si se produce un error, su descripción se incluye en error_message.
| Palabra clave | Tipo | Opción | Descripción |
|---|---|---|---|
| message_id | String | Obligatorio | message_id del mensaje. |
| registration_id | String | Opcional | El único registration_id asociado. |
| status | String | Opcional | Valores: plan (destino planificado), target_valid (destino válido), target_invalid (destino no válido), sent (enviado), sent_failed (error de envío), delivered (entregado), delivered_failed (error de entrega), Impression (visualización) y click (clic). |
| error_message | String | Opcional | Descripción del error; solo aparece en determinados estados. |
| error_code | Int64 | Opcional | Código de error; solo aparece en determinados estados. |
| itime | Int64 | Opcional | Hora de actualización del estado, con precisión de segundos. |
| channel | String | Opcional | Canal por el que se envió el mensaje push. |
Ejemplo de respuesta
Respuesta correcta
< HTTP/1.1 200 OK
< Content-Type: application/json
[
{
"message_id": "261585110",
"error_message": "Multiple `registration_id` found under the same `message_id`.",
"error_code": 21003
},
{
"message_id": "261585123",
"registration_id": "170976fa8ab73279b2f",
"status": "click",
"itime": 1766047747,
"channel": "EngageLab"
},
{
"message_id": "1613113585",
"error_message": "The `message_id` is invalid or does not exist.",
"error_code": 21003
}
]
< HTTP/1.1 200 OK
< Content-Type: application/json
[
{
"message_id": "261585110",
"error_message": "Multiple `registration_id` found under the same `message_id`.",
"error_code": 21003
},
{
"message_id": "261585123",
"registration_id": "170976fa8ab73279b2f",
"status": "click",
"itime": 1766047747,
"channel": "EngageLab"
},
{
"message_id": "1613113585",
"error_message": "The `message_id` is invalid or does not exist.",
"error_code": 21003
}
]
Este bloque de código se muestra en una ventana flotante
Parámetros de respuesta
Los resultados incluyen el estado actual de los registration_id correspondientes. Si se produce un error, su descripción se incluye en error_message.
| Palabra clave | Tipo | Opción | Descripción |
|---|---|---|---|
| status | String | Opcional | Valores: plan (destino planificado), target_valid (destino válido), target_invalid (destino no válido), sent (enviado), sent_failed (error de envío), delivered (entregado), delivered_failed (error de entrega), Impression (visualización) y click (clic). |
| error_message | String | Opcional | Descripción del error. |
Resultado de la solicitud
Códigos de estado HTTP
Consulte HTTP-Status-Code.
Códigos de error
| Code | Descripción | Explicación detallada | HTTP Status Code |
|---|---|---|---|
| 0 | success | Operación correcta. | 200 |
| 21001 | Only support http POST request | Solo se admiten solicitudes HTTP POST. | 405 |
| 21003 | Parameter value is invalid | Valor de parámetro no válido. | 400 |
| 23001 | Basic authentication failed | Error de autorización HTTP Basic. | 401 |
| 23002 | Missing parameter! | Falta un parámetro obligatorio. | 400 |
| 23004 | time_unit value does not match with start! | El valor de time_unit no coincide con el formato de start. | 400 |
| 23007 | Only support quering the message_id within 30 days! | Solo se pueden consultar mensajes de los últimos 30 días. | 400 |
| 23100 | server error | Error interno del sistema. | 400 |
| 27000 | Server response time out, please try again later | Error interno del sistema. | 500 |
| 27201 | El msgid no existe o no pertenece a esta app | El msgid no existe o no pertenece a esta app. | 400 |










