Analítica

Veja o que o operador viu.

Configure em:
Cursor

Cada envio produz um recibo de entrega do operador. A Bird transforma esses recibos em métricas de entrega, falha e latência, desdobradas por país, operador e remetente, no dashboard e através de uma API de estatísticas que pode consultar a partir do seu próprio código.

send-otp.ts
200 · 0.4s
import { BirdClient } from "@messagebird/sdk";

const bird = new BirdClient({ apiKey: process.env.BIRD_API_KEY! });

const code = generateOtp();

const { data, error } = await bird.sms.send({
  from: "Bird",
  to:   "+15005550006",
  text: `Your Bird verification code is ${code}. Reply STOP to opt out.`,
}).safe();

if (error) throw error;
console.log(data.id);
// → "sms_4kT01Lq2m..."

Today at 2:14 PM

Hey Ada — your Bird sign-in code is 482917. It'll expire in 10 minutes. Don't share it with anyone.
482917
Delivered

O lado de relatórios da mesma API.

Nada de novo para instrumentar.

A analítica é o lado de relatórios da API de SMS da Bird. Já envia através dela e já recebe um webhook de entrega em cada mudança de estado; a analítica é a Bird a manter a contagem por si, para que possa perguntar como uma campanha foi entregue sem montar um armazém de dados para guardar os eventos primeiro.

O que um recibo de entrega lhe diz.

Medido a partir do operador, não inferido.

  1. 01

    Taxa de entrega.

    A proporção de envios que o operador confirmou entregues, face ao que foi submetido. Acompanhe-a por país e por remetente, não apenas como um único número global que esconde a rota que está discretamente a perder mensagens.

  2. 02

    Motivos de falha por operador.

    Os envios falhados trazem o código de motivo do operador, agrupados por operador de destino (MCC/MNC). Um pico costuma ser um operador a rejeitar um sender ID, o que é uma correção de registo, não uma falha de plataforma.

  3. 03

    Segmentos e custo.

    Cada mensagem reporta a sua codificação e contagem de segmentos, por isso o volume agrega-se nos segmentos que foram de facto faturados. Um envio que passou a Unicode e duplicou os seus segmentos aparece aqui, não na fatura.

  4. 04

    Latência até à entrega.

    O tempo desde a submissão até ao recibo de entrega, como distribuição em vez de média. Globalmente, cerca de 95% das mensagens confirmam em menos de 2,5 segundos; a cauda é onde uma rota degradada se anuncia.

Consulte os números a partir do seu próprio código.

A API de estatísticas aceita um intervalo de tempo e um groupBy, e devolve as contagens agregadas. Agrupe por país e operador para encontrar a rota com mau desempenho, por remetente para ver em qual dos seus IDs um operador confia. A mesma agregação suporta os gráficos do dashboard, por isso um número de que tira captura de ecrã corresponde a um número que pode extrair de forma agendada.

delivery-by-route.ts
200 · stats
const { data, error } = await bird.sms.stats
  .query({
    from:    "2026-06-01",
    to:      "2026-06-26",
    groupBy: ["country", "carrier"],
    metrics: ["sent", "delivered", "failed", "p95_latency_ms"],
  })
  .safe();

if (error) throw error;

console.log(data.rows[0]);
// → {
//     country:        "BR",
//     carrier:        "Vivo",          // MCC/MNC 724/06
//     sent:           48213,
//     delivered:      47190,
//     failed:         1023,
//     p95_latency_ms: 2310,
//   }

Extraia a cronologia de uma mensagem.

Os agregados respondem a como uma campanha correu; um pedido de suporte pergunta por um texto. Passe um único ID de mensagem ao endpoint de eventos e obtém toda a sua vida por ordem — em fila, enviada, o recibo de entrega do operador ou a falha, cada um marcado com uma hora e, quando falhou, o próprio código de motivo do operador.

message-timeline.ts
200 · events
const { data } = await bird.sms
  .events("sms_4kT01Lq2m...")
  .safe();

console.log(data.events);
// → [
//     { type: "sms.queued",    at: "2026-06-26T10:00:00.110Z" },
//     { type: "sms.sent",      at: "2026-06-26T10:00:00.640Z" },
//     { type: "sms.delivered", at: "2026-06-26T10:00:02.300Z" },
//   ]

Fatie os mesmos envios da forma que a pergunta tiver.

Cada desdobramento lê dos mesmos recibos de entrega; o groupBy apenas muda a lente.

DimensãoO que lhe diz
PaísOnde a entrega se mantém e onde um destino está a arrastar a taxa global para baixo.
Operador (MCC/MNC)Que operador dentro de um país está a rejeitar tráfego, até ao código de rede.
RemetenteQuão fiável é cada um dos seus sender IDs ou números, já que a reputação é por remetente.
Intervalo de tempoQuando uma taxa mudou, para que uma queda se alinhe com um deploy, uma alteração de registo ou uma falha.

Aprofunde na documentação.

Construa o seu próprio armazenamento a partir dos webhooks de entrega, leia o guia de entregabilidade para perceber o que os códigos de falha significam, e reconcilie contagens com faturação e utilização.

Os recibos vêm da camada de encaminhamento.

Um recibo de entrega só é tão bom quanto o caminho que o produziu: o encaminhamento escolhe a ligação de operador que cada mensagem toma e devolve o DLR a partir do qual estas métricas são construídas. Se usar números bidirecionais, as mensagens recebidas também são contadas aqui, por isso um volume de respostas fica ao lado da taxa de entrega que o conquistou.

Perguntas frequentes sobre analítica de SMS

De onde vêm os números de entrega?+
Do recibo de entrega do operador (DLR) de cada envio. A Bird regista o recibo na mensagem e depois agrega esses recibos em números de entrega, falha e latência. Uma contagem de entregues é o operador a confirmar a receção, não a Bird a adivinhar.
Posso desdobrar um relatório por operador?+
Sim. A API de estatísticas aceita um groupBy de país, operador (por MCC/MNC), remetente e intervalo de tempo, em qualquer combinação. Uma taxa de falha que parece bem a nível nacional revela-se muitas vezes ser um operador a rejeitar um sender ID.
Tenho de fazer polling à API ou posso receber eventos em streaming?+
Qualquer um. Cada estado de entrega já chega como webhook, por isso pode construir o seu próprio armazenamento a partir do fluxo de eventos. A API de estatísticas existe para quando quer que a Bird faça a agregação em vez de manter um contador você mesmo.
Posso consultar o que aconteceu a uma mensagem específica?+
Passe o ID da mensagem ao endpoint de eventos e obtém a sua cronologia completa — em fila, enviada, entregue ou falhada, cada uma com um timestamp e, em caso de falha, o código de motivo do operador. É esse o relatório que precisa de facto quando um cliente diz que um texto nunca chegou.

As métricas vêm com a API que as produz.

A analítica não é um produto separado para comprar. Envie através da API de SMS da Bird e os relatórios de entrega, falha e latência já lá estão, sobre infraestrutura que transporta cerca de 40% do SMS comercial do mundo.

Comece com um canal.
Adicione os outros quando estiver pronto.

Uma chave API de teste é sua imediatamente. A produção é desbloqueada quando você adiciona um método de pagamento e verifica um remetente.

Usa Claude Code, Cursor ou Codex? Copie um prompt de configuração e o seu agente instala o Bird CLI e as skills por si. Escolha o seu:

Cursor