Analisi
Vedi ciò che ha visto il carrier.
Ogni invio produce una ricevuta di consegna del carrier. Bird trasforma quelle ricevute in metriche di consegna, fallimento e latenza, suddivise per paese, carrier e mittente, nel dashboard e tramite una stats API che puoi interrogare dal tuo codice.
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
Il lato reporting della stessa API.
Niente di nuovo da strumentare.
L'analisi è il lato reporting dell'API SMS di Bird. Invii già attraverso di essa e ricevi già un webhook di consegna a ogni cambio di stato; l'analisi è Bird che tiene il conto per te, così puoi sapere com'è stata consegnata una campagna senza dover prima allestire un warehouse per conservare gli eventi.
Cosa ti dice una ricevuta di consegna.
Misurata dal carrier, non dedotta.
- 01
Tasso di consegna.
La quota di invii che il carrier ha confermato come consegnati, rispetto a ciò che è stato sottoposto. Monitoralo per paese e per mittente, non solo come un unico numero a livello di sito che nasconde la rotta che sta silenziosamente perdendo messaggi.
- 02
Motivi di fallimento per carrier.
Gli invii falliti riportano il reason code del carrier, raggruppati per carrier di destinazione (MCC/MNC). Un picco di solito è un singolo operatore che rifiuta un singolo sender ID, che è una correzione di registrazione, non un'interruzione della piattaforma.
- 03
Segmenti e costo.
Ogni messaggio riporta la propria codifica e il numero di segmenti, così il volume si aggrega nei segmenti che ti sono stati effettivamente fatturati. Un invio passato a Unicode che ha raddoppiato i suoi segmenti compare qui, non sulla fattura.
- 04
Latenza fino alla consegna.
Il tempo dalla sottomissione alla ricevuta di consegna, come distribuzione anziché come media. A livello globale circa il 95% dei messaggi viene confermato in meno di 2,5 secondi; la coda è dove una rotta degradata si fa notare.
Interroga i numeri dal tuo codice.
La stats API accetta un intervallo temporale e un groupBy e restituisce i conteggi aggregati. Raggruppa per paese e carrier per trovare la rotta che rende meno, per mittente per vedere quali dei tuoi ID un carrier ritiene affidabili. La stessa aggregazione alimenta i grafici del dashboard, così un numero di cui fai uno screenshot corrisponde a un numero che puoi estrarre in modo programmato.
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,
// }Estrai la timeline di un singolo messaggio.
Gli aggregati rispondono a come è andata una campagna; un ticket di supporto chiede di un singolo messaggio. Passa un singolo message ID all'endpoint degli eventi e ne ottieni l'intera vita in ordine — in coda, inviato, la ricevuta di consegna del carrier o il fallimento, ognuno marcato con un orario e, quando è fallito, il reason code del carrier stesso.
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" },
// ]Affetta gli stessi invii in base a come è formulata la domanda.
Ogni suddivisione legge dalle stesse ricevute di consegna; il groupBy cambia solo la lente.
| Dimensione | Cosa ti dice |
|---|---|
| Paese | Dove la consegna regge e dove una destinazione sta abbassando il tasso globale. |
| Carrier (MCC/MNC) | Quale operatore all'interno di un paese sta rifiutando il traffico, fino al network code. |
| Mittente | Quanto è affidabile ciascuno dei tuoi sender ID o numeri, dato che la reputazione è per mittente. |
| Intervallo temporale | Quando un tasso è cambiato, così un calo si allinea con un deploy, una modifica di registrazione o un'interruzione. |
Approfondisci nella documentazione.
Costruisci il tuo store dai webhook di consegna, leggi la guida alla deliverability per capire cosa significano i codici di fallimento e riconcilia i conteggi con fatturazione e utilizzo.
Le ricevute provengono dal layer di routing.
Una ricevuta di consegna vale solo quanto il percorso che l'ha prodotta: il routing sceglie il collegamento carrier che ogni messaggio prende e restituisce il DLR da cui sono costruite queste metriche. Se usi numeri bidirezionali, anche i messaggi in entrata vengono conteggiati qui, così un volume di risposte sta accanto al tasso di consegna che lo ha generato.
FAQ sull'analisi SMS
Da dove provengono i numeri di consegna?+
Posso suddividere un report per carrier?+
Devo fare polling sull'API o posso ricevere gli eventi in streaming?+
Posso verificare cosa è successo a un messaggio specifico?+
Il resto della piattaforma SMS
Un'unica API, un unico set di chiavi. Esplora le altre funzionalità.
Le metriche arrivano con l'API che le produce.
L'analisi non è un prodotto separato da acquistare. Invia tramite l'API SMS di Bird e il reporting di consegna, fallimento e latenza è già lì, su un'infrastruttura che trasporta circa il 40% degli SMS commerciali del mondo.