Introducción
El módulo Analytics trae las estadísticas que entrega Meta para un número: mensajes enviados, entregados y recibidos, gratis frente a pagados, costo por categoría y el rendimiento de cada plantilla. Son los mismos datos de Reportes > WhatsApp. Disponible desde la versión 2.4.0.
Inicialización
Plazbot (recomendado)·ts
01import { Plazbot } from 'plazbot';0203const plazbot = new Plazbot({04 workspaceId: "YOUR_WORKSPACE_ID",05 apiKey: "YOUR_API_KEY",06 zone: "LA"07});0809// Usar: plazbot.analytics.messages()
Mensajes y costos
ts
01const stats = await plazbot.analytics.messages({02 from: "2026-10-01",03 to: "2026-10-31",04 number: "+51912345678" // opcional si el workspace tiene un solo número05});0607console.log(stats.totals.sent, stats.totals.cost);08console.log(stats.byCategory.marketing); // { messages, cost }
| Campo | Descripción |
|---|---|
totals | messages, sent, delivered, received, free, paid y cost. |
byCategory | marketing, utility, authentication y service, cada una con messages y cost. |
free | Gratis por ventana de servicio (customerServiceWindow) y por anuncio de 72 h (entryPoint), si Meta los entrega. |
costEstimated | El costo es estimado (cuentas que facturan a través de un BSP). |
costNotAvailableMessage | Por qué no hay costo, si no lo hay. |
El costo está en la moneda de la cuenta de WhatsApp en Meta.
Rendimiento de plantillas
ts
01const report = await plazbot.analytics.templates({ from: "2026-10-01", to: "2026-10-31" });0203if (report.analyticsUnavailable) {04 await plazbot.analytics.enableTemplateInsights(); // Meta empieza a contar desde ahora05} else {06 for (const t of report.templates) console.log(t.name, t.sent, t.read, t.clicks, t.spent);07}
Cada fila trae sent, delivered, read, clicks, los clics por botón (buttons) y el gasto (spent, null si Meta no entrega costos). Meta guarda 90 días: si pides más, startClamped viene en true.