En este documento, se describe cómo obtener estadísticas de mensajes, conversaciones y plantillas, como el número de mensajes enviados desde un número de teléfono comerciales, la cantidad de conversaciones y sus costos para una cuenta de WhatsApp Business, o la cantidad de veces que se leyó una determinada plantilla.
En las respuestas, solo se incluirán las métricas de números de teléfono comerciales y plantillas que se asociaron a tu WABA en el momento de la solicitud.
Usa el punto de conexión cuenta de WhatsApp Business para obtener estadísticas.
GET /<WHATSAPP_BUSINESS_ACCOUNT_ID> ?fields=<FIELDS>.<FILTERING_PARAMETER>
Marcador de posición | Descripción | Valor de ejemplo |
---|---|---|
| Obligatorio. Métrica. El valor puede ser alguna de estas opciones: |
|
| Obligatorio. Parámetro de filtrado métrico. Agrega parámetros de filtrado adicionales usando puntos. Para ver los posibles valores, consulta: |
|
El campo analytics
proporciona la cantidad y el tipo de mensajes enviados y entregados por los números de teléfono asociados con una cuenta de WhatsApp Business específica. Si quieres ver las métricas relacionadas con las conversaciones, consulta Estadísticas de conversaciones. Cuando llamas a /{whatsapp-business-account-ID}?fields=analytics.{filtering-parameters}
, puedes adjuntar los siguientes parámetros:
Nombre | Descripción (haz clic en la flecha de la columna izquierda para ver las opciones compatibles) |
---|---|
Tipo: marca de tiempo de UNIX | Obligatorio. La fecha de inicio del intervalo de fechas cuya estadística quieres recuperar. |
Tipo: marca de tiempo de UNIX | Obligatorio. La fecha de finalización del intervalo de fechas cuyas estadísticas quieres recuperar. |
Tipo: cadena | Obligatorio. La granularidad de las estadísticas que quieres recuperar. |
Tipo: matriz | Opcional. Una matriz de los números de teléfono cuyas estadísticas quieres recuperar. Si no se define uno específico, se incluyen todos los números de teléfono agregados a la cuenta de WhatsApp Business. |
Tipo: matriz | Opcional. Los tipos de mensajes (mensajes de notificación o mensajes del servicio de atención al cliente) cuyas notificaciones quieras recuperar. Debes proporcionar una matriz e incluir |
Tipo: matriz | Opcional. Los países cuyos estadísticas quieras recuperar. Debes proporcionar una matriz con códigos de país de dos letras correspondientes a los países que quieras incluir. Se devuelven las estadísticas de todos los países con los que te comunicaste si no se define una específica. |
Situación: necesitas obtener la cantidad de mensajes enviados y entregados desde todos los números de teléfono asociados con tu cuenta de WhatsApp Business.
Solución sugerida:formula la URL a la que quieres llamar e incluye los siguientes parámetros de filtrado: start
, end
, granularity
. Luego, realiza una solicitud GET
a esa URL:
curl -i -X GET \
"https://graph.facebook.com/v20.0
/{whatsapp-business-account-ID}
?fields=analytics
.start(1543543200)
.end(1544148000)
.granularity(DAY)
&access_token={access-token}"
Si la respuesta es correcta, devuelve un objeto analytics
con los datos que solicitaste:
{ "analytics": { "phone_numbers": [ "16505550111", "16505550112", "16505550113" ], "country_codes": [ "US", "BR" ], "granularity": "DAY", "data_points": [ { "start": 1543543200, "end": 1543629600, "sent": 196093, "delivered": 179715 }, { "start": 1543629600, "end": 1543716000, "sent": 147649, "delivered": 139032 }, { "start": 1543716000, "end": 1543802400, "sent": 61988, "delivered": 58830 }, { "start": 1543802400, "end": 1543888800, "sent": 132465, "delivered": 124392 } # more data points ] }, "id": "102290129340398" }
El campo conversation_analytics
proporciona información sobre conversaciones y costos de una cuenta de WhatsApp Business específica. Cuando llamas a /{whatsapp-business-account-ID}?fields=conversation_analytics.{filtering-parameters}
, puedes adjuntar los siguientes parámetros:
Nombre | Descripción (haz clic en la flecha de la columna izquierda para ver las opciones compatibles) |
---|---|
Tipo: marca de tiempo de UNIX | Obligatorio. La fecha de inicio del intervalo de fechas cuya estadística quieres recuperar. |
Tipo: marca de tiempo de UNIX | Obligatorio. La fecha de finalización del intervalo de fechas cuyas estadísticas quieres recuperar. |
Tipo: cadena | Obligatorio. La granularidad de las estadísticas que quieres recuperar. |
Tipo: matriz | Opcional. Una matriz de los números de teléfono cuyas estadísticas quieres recuperar. Se incluyen todos los números de teléfono agregados a la cuenta de WhatsApp Business si no se define uno específico. |
| Opcional. Lista de métricas que quieres recibir. Si envías una lista vacía, devolveremos resultados de todos los tipos de métricas. |
| Opcional. Lista de categorías de conversación. Si envías una lista vacía, devolveremos resultados de todas las categorías de conversaciones. |
| Opcional. Lista de tipos de conversación. Si envías una lista vacía, devolveremos resultados de todos los tipos de conversaciones. |
| Opcional. Lista de direcciones de conversación. Si envías una lista vacía, devolveremos resultados de todas las direcciones de conversaciones. |
| Opcional. Lista de los desgloses que quieres aplicar a tus métricas. Si envías una lista vacía, devolvemos resultados sin ningún desglose. |
Los datos de las estadísticas son aproximados y podrían diferir de lo que aparece en las facturas debido a pequeñas variaciones que se producen durante el procesamiento de datos.
En un intervalo de tiempo determinado, puedes obtener información sobre conversaciones y costos relacionada con tu cuenta de WhatsApp Business. Si lo deseas, puedes filtrar y desglosar los resultados. Consulta las muestras de código que aparecen a continuación para ver ejemplos.
Situación: quieres recuperar toda la información de costos y conversaciones de todos los números de teléfono asociados con una cuenta de WhatsApp Business de un mes determinado.
Solución sugerida:formula la URL a la que quieres llamar e incluye los siguientes parámetros de filtrado:
start
: inicio del intervalo de tiempo. En este caso, es el inicio del mes del que quieres ver métricas.end
: fin del intervalo de tiempo. En este caso, es el final del mes del que quieres ver métricas.granularity
: nivel de granularidad que quieres que tengan los puntos de datos. En el siguiente ejemplo, usamos MONTHLY
, por lo que cada uno de datos representa los datos correspondientes a un mes.phone_numbers
: envía una matriz vacía y devolveremos información de todos los números de teléfono asociados con la cuenta de WhatsApp Business.dimensions
: configúralo para todos los desgloses disponibles: "CONVERSATION_CATEGORY"
, "CONVERSATION_TYPE"
, "COUNTRY"
y "PHONE"
.En este caso, no es necesario que especifiques country_codes
, metric_types
, conversation_types
y conversation_categories
. Si no nos envías ninguna información para esos campos, devolveremos todas las opciones disponibles. Cuando hayas configurado la URL, realiza una solicitud GET:
curl -i -X GET
"https://graph.facebook.com/v20.0
/{whatsapp-business-account-id}
?fields=conversation_analytics
.start(1685602800).end(1688194800)
.granularity(MONTHLY)
.phone_numbers([])
.dimensions(["CONVERSATION_CATEGORY","CONVERSATION_TYPE","COUNTRY","PHONE"])
&access_token={access-token}"
Si la respuesta es correcta, devuelve un objeto conversation_analytics
con los datos que solicitaste. En el siguiente ejemplo, la cuenta de WhatsApp Business contiene solo un número de teléfono.
{ "conversation_analytics": { "data": [ { "data_points": [ { "start": 1685602800, "end": 1688194800, "conversation": 1558, "phone_number": "15550458206", "country": "US", "conversation_type": "REGULAR", "conversation_direction": "UNKNOWN", "conversation_category": "AUTHENTICATION", "cost": 15.58 }, { "start": 1685602800, "end": 1688194800, "conversation": 2636, "phone_number": "15550458206", "country": "US", "conversation_type": "REGULAR", "conversation_category": "MARKETING", "cost": 26.36 }, { "start": 1685602800, "end": 1688194800, "conversation": 2238, "phone_number": "15550458206", "country": "US", "conversation_type": "REGULAR", "conversation_category": "SERVICE", "cost": 22.38 }, { "start": 1685602800, "end": 1688194800, "conversation": 1782, "phone_number": "15550458206", "country": "US", "conversation_type": "REGULAR", "conversation_category": "UTILITY", "cost": 17.82 }, { "start": 1685602800, "end": 1688194800, "conversation": 1568, "phone_number": "15550458206", "country": "US", "conversation_type": "FREE_TIER", "conversation_category": "AUTHENTICATION", "cost": 15.68 }, { "start": 1685602800, "end": 1688194800, "conversation": 2716, "phone_number": "15550458206", "country": "US", "conversation_type": "FREE_TIER", "conversation_category": "MARKETING", "cost": 27.16 }, { "start": 1685602800, "end": 1688194800, "conversation": 2180, "phone_number": "15550458206", "country": "US", "conversation_type": "FREE_TIER", "conversation_category": "SERVICE", "cost": 21.8 }, { "start": 1685602800, "end": 1688194800, "conversation": 1465, "phone_number": "15550458206", "country": "US", "conversation_type": "FREE_TIER", "conversation_category": "UTILITY", "cost": 14.65 }, { "start": 1685602800, "end": 1688194800, "conversation": 1433, "phone_number": "15550458206", "country": "US", "conversation_type": "FREE_ENTRY_POINT", "conversation_category": "SERVICE", "cost": 14.33 } ] } ] }, "id": "102290129340398", }
Situación: quieres recuperar toda la información de costos y conversaciones de un número de teléfono específico asociado a una cuenta de WhatsApp Business de un intervalo de tiempo determinado. En los resultados, quieres usar todos los desgloses posibles. Necesitas que cada punto de datos represente media hora de datos.
Solución sugerida: formula la URL a la que quieres llamar e incluye los siguientes parámetros de filtrado:
start
: inicio del intervalo de tiempo. end
: fin del intervalo de tiempo.granularity
: nivel de granularidad que quieres que tengan los puntos de datos. En el siguiente ejemplo, usamos HALF_HOUR
, por lo que cada punto de datos representa los datos correspondientes a media hora.phone_numbers
: el número de teléfono del que necesitas información.dimensions
: configúralo para todos los desgloses disponibles: CONVERSATION_CATEGORY
, CONVERSATION_TYPE
, COUNTRY
y PHONE
.En este caso, no es necesario que especifiques country_codes
, metric_types
, conversation_types
o conversation_categories
. Si no nos envías ninguna información para esos campos, devolveremos todas las opciones disponibles. Cuando hayas configurado la URL, realiza una solicitud GET:
curl -i -X GET \
"https://graph.facebook.com/v20.0
/{whatsapp-business-account-id}
?fields=conversation_analytics
.start(1685602800)
.end(1685689200)
.granularity(HALF_HOUR)
.phone_numbers(["19195552584"])
.dimensions(["CONVERSATION_CATEGORY","CONVERSATION_TYPE","COUNTRY,PHONE"])
&access_token=your-access-token"
Si la respuesta es correcta, devuelve un objeto conversation_analytics
con los datos que solicitaste.
{ "conversation_analytics": { "data": [ { "data_points": [ { "start": 1685602800, "end": 1685604600, "conversation": 4, "phone_number": "19195552584", "country": "US", "conversation_type": "REGULAR", "conversation_direction": "UNKNOWN", "conversation_category": "SERVICE", "cost": 0.0232 }, { "start": 1685602800, "end": 1685604600, "conversation": 4, "phone_number": "19195552584", "country": "US", "conversation_type": "REGULAR", "conversation_direction": "UNKNOWN", "conversation_category": "MARKETING", "cost": 0.0232 }, # ... more data points ] } ] }, "id": "102290129340398" }
Situación: quieres recuperar toda la información de costos y conversaciones de todos los números de teléfono asociados con una cuenta de WhatsApp Business de un período determinado. En los resultados, quieres ver un desglose por tipo de conversación.
Solución sugerida: formula la URL a la que quieres llamar e incluye los siguientes parámetros de filtrado:
start
: inicio del intervalo de tiempo. end
: fin del intervalo de tiempo.granularity
: nivel de granularidad que quieres que tengan los puntos de datos. En el siguiente ejemplo, usamos MONTHLY
, por lo que cada punto de datos representa los datos correspondientes a medio mes.phone_numbers
: envía una matriz vacía y devolveremos información de todos los números de teléfono asociados con la cuenta de WhatsApp Business.dimensions
: configúralo en CONVERSATION_TYPE
.En este caso, no es necesario que especifiques country_codes
, metric_types
, conversation_types
, conversation_directions
o conversation_categories
. Si no nos envías ninguna información relacionada con esos campos, devolveremos todas las opciones disponibles. Cuando hayas configurado la URL, realiza una solicitud GET:
curl -i -X GET
"https://graph.facebook.com/v20.0
/{whatsapp-buiness-account-id}
?fields=conversation_analytics
.start(1643702400).end(1646121600)
.granularity(MONTHLY)
.phone_numbers([])
.dimensions([CONVERSATION_TYPE])
&access_token={access-token}"
Si la respuesta es correcta, devuelve un objeto conversation_analytics
con los datos que solicitaste:
{ "data": [ { "data_points": [ { "start": 1643702400, "end": 1646121600, "conversation": 8500, "conversation_type": "REGULAR", "cost": 88.1010 }, { "start": 1643702400, "end": 1646121600, "conversation”: 1000, "conversation_type": "FREE_TIER", "cost": 0.0000 } { "start": 1643702400, "end": 1646121600, "conversation”: 250, "conversation_type": "FREE_ENTRY_POINT", "cost": 0.0000 } ] } ] }
Solicitud:
curl -i -X GET \
"https://graph.facebook.com/v20.0
/{whatsapp-buiness-account-id}
?fields=conversation_analytics
.start(1685527200)
.end(1685613600)
.granularity(HALF_HOUR)
.conversation_categories(["MARKETING","AUTHENTICATION"])
.dimensions(["CONVERSATION_CATEGORY"])
&access_token={access-token}"
Respuesta:
{ "conversation_analytics": { "data": [ { "data_points": [ { "start": 1685529000, "end": 1685530800, "conversation": 2, "conversation_category": "AUTHENTICATION", "cost": 0.0128 }, { "start": 1685527200, "end": 1685529000, "conversation": 3, "conversation_category": "MARKETING", "cost": 0.0432 } ] } ] }, "id": "102290129340398" }
Solicitud:
curl -i -X GET \
"https://graph.facebook.com/v20.0
/{whatsapp-buiness-account-id}
?fields=conversation_analytics
.start(1685527200)
.end(1685613600)
.granularity(HALF_HOUR)
.conversation_categories(["MARKETING","AUTHENTICATION"])
.dimensions(["CONVERSATION_CATEGORY","CONVERSATION_TYPE"])
&access_token={access-token}"
Respuesta:
{ "conversation_analytics": { "data": [ { "data_points": [ { "start": 1685527200, "end": 1685529000, "conversation": 3, "conversation_type": "REGULAR", "conversation_category": "MARKETING", "cost": 0.0432 }, { "start": 1685529000, "end": 1685530800, "conversation": 2, "conversation_type": "REGULAR", "conversation_category": "AUTHENTICATION", "cost": 0.0128 } ] } ] }, "id": "102290129340398" }
Las estadísticas de la plantilla describen la cantidad de veces que se envió, entregó y leyó una plantilla, y la cantidad de veces que se hizo clic en los botones de URL o el botón de respuesta rápida en la plantilla.
Los datos se devuelven con una granularidad diaria en la zona horaria UTC con datos pasados de hasta hace 90 días. Las estadísticas de la plantilla también se pueden encontrar en Administrador de WhatsApp > Plantillas de mensajes > Detalles de la plantilla > Estadísticas.
MARKETING
o UTILITY
.Para notificar errores de estadísticas de plantillas, envía un ticket de asistencia directa con las siguientes selecciones:
Debes confirmar las estadísticas de plantillas en tu cuenta de WhatsApp Business para poder obtener estadísticas de plantillas. Puedes confirmar las estadísticas de plantillas mediante el administrador de WhatsApp o la API. Para confirmar a través de la API, envía la siguiente solicitud:
POST /<WHATSAPP_BUSINESS_ACCOUNT_ID>?is_enabled_for_insights=true
Una vez dada la confirmación, comenzaremos a capturar estadísticas de plantillas referidas a la cuenta de WhatsApp Business. Una vez dada la confirmación, las estadísticas de plantillas no se pueden desactivar.
Si la solicitud se procesa correctamente, la API responderá con el identificador de la cuenta de WhatsApp Business. Por ejemplo:
{ "id": 102290129340398 }
Nombre | Descripción | Valor de ejemplo |
---|---|---|
Marca de tiempo de UNIX | Obligatorio. La marca de tiempo de inicio del intervalo de fechas cuya estadística quieres recuperar. Dado que las estadísticas de plantillas se proporcionan con granularidad diaria en la zona horaria UTC, una marca de tiempo de inicio que no sea 0:00 UTC se corregiría a su valor 0:00 UTC anterior. |
|
Marca de tiempo de UNIX | Obligatorio. La fecha de finalización del intervalo de fechas cuya estadística quieres recuperar. Dado que las estadísticas de plantillas se proporcionan con granularidad diaria en la zona horaria UTC, una marca de tiempo de finalización que no sea 0:00 UTC se corregiría a su valor 0:00 UTC más cercano. |
|
Enumeración | Obligatorio. La granularidad de las estadísticas que quieres recuperar. El valor debe ser |
|
Matriz de ID | Obligatorio. Una matriz de ID de plantillas cuyas estadísticas quieres recuperar. Cantidad máxima de 10. |
|
Matriz de enumeraciones | Opcional. Los negocios que realicen su facturación mediante un socio de soluciones NO pueden acceder al nodo Los tipos de métricas que quieres recuperar. Si se omite o es una matriz vacía, se devolverán las estadísticas de todos los tipos de métricas. Valores posibles:
Los clics solo se devuelven en el caso de botones de URL y botones de respuesta rápida en plantillas con categoría Las métricas de costo se devuelven en forma de matriz de objetos de costo, cada uno con un tipo y valor. Los tipos pueden ser los siguientes:
|
|
Situación: en un intervalo de 1 día, debes obtener todos los tipos de métricas de estadísticas de la plantilla correspondientes a una plantilla de autenticación y una plantilla de marketing con un botón de URL.
Ejemplo de solicitud:
curl -g 'https://graph.facebook.com/v20.0
/109259195336416/template_analytics?start=1718064000&end=1718122745&granularity=daily&metric_types=cost%2Cclicked%2Cdelivered%2Cread%2Csent&template_ids=[1421988012088524%2C2632273056924580]' \
-H 'Authorization: Bearer EAAJB...'
Ejemplo de respuesta:
{ "data": [ { "granularity": "DAILY", "product_type": "cloud_api", // Only available to businesses in Marketing Messages Lite API alpha "data_points": [ { "template_id": "1421988012088524", "start": 1718064000, "end": 1718150400, "sent": 1, "delivered": 1, "read": 1, "cost": [ { "type": "amount_spent", "value": 0.01 }, { "type": "cost_per_delivered", "value": 0.01 } ] }, { "template_id": "2632273056924580", "start": 1718064000, "end": 1718150400, "sent": 1, "delivered": 1, "read": 1, "clicked": [ { "type": "url_button", "button_content": "Contact Support", "count": 1 } ], "cost": [ { "type": "amount_spent", "value": 0.03 }, { "type": "cost_per_delivered", "value": 0.03 }, { "type": "cost_per_url_button_click", "value": 0.03 } ] } ] } ], "paging": { "cursors": { "before": "MAZDZD", "after": "MjQZD" } } }
Puedes desactivar el seguimiento de los clics en el botón en una plantilla individual. Para ello, debes configurar el campo cta_url_link_tracking_opted_out
en true
. Una vez desactivada la función, la API dejará de devolver la propiedad de clics en las estadísticas de la plantilla y de mostrar los clics o la interacción con el botón en el administrador de WhatsApp cuando se visualicen las estadísticas de la plantilla.
POST /<TEMPLATE_ID> ?cta_url_link_tracking_opted_out=<OPT_OUT> &category=<TEMPLATE_CATEGORY>
Marcador de posición | Descripción | Valor de ejemplo |
---|---|---|
ID de plantilla | Obligatorio. Identificador de la plantilla. |
|
Booleano | Obligatorio. Indica si el seguimiento de clics en el botón de la plantilla está desactivado. Configúralo en Este se configura en |
|
Cadena | Obligatorio. Categoría actual de la plantilla. Si configuras la categoría de la plantilla en un valor distinto al de su categoría actual, el estado de la plantilla se configurará en |
|
curl -X POST 'https://graph.facebook.com/v20.0
/245435364965041?cta_url_link_tracking_opted_out=true&category=marketing' \
-H 'Authorization: Bearer EAAJB...'
Si la solicitud se procesa correctamente, la API responderá con los siguientes elementos:
{ "success": true }
Si deseas obtener una lista de todos los valores posibles de cada campo, consulta la referencia de la API Graph del campo de estadísticas de la cuenta de WhatsApp Business.