Analytics

Sehen Sie, was der Carrier sah.

Eingerichtet in:
Cursor

Jeder Versand erzeugt eine Carrier-Zustellbestätigung. Bird verwandelt diese Bestätigungen in Zustell-, Fehler- und Latenzmetriken, aufgeschlüsselt nach Land, Carrier und Absender, im Dashboard und über eine Stats-API, die Sie aus Ihrem eigenen Code abfragen können.

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

Die Reporting-Seite derselben API.

Nichts Neues zu instrumentieren.

Analytics ist die Reporting-Seite der Bird SMS-API. Sie senden bereits darüber und erhalten bei jeder Statusänderung bereits einen Zustellungs-Webhook; Analytics ist Bird, das den Zähler für Sie führt, sodass Sie fragen können, wie eine Kampagne zugestellt wurde, ohne erst ein Data Warehouse für die Ereignisse aufbauen zu müssen.

Was eine Zustellbestätigung Ihnen verrät.

Vom Carrier gemessen, nicht abgeleitet.

  1. 01

    Zustellrate.

    Der Anteil der Sendungen, deren Zustellung der Carrier bestätigt hat, gemessen an dem, was eingereicht wurde. Verfolgen Sie sie pro Land und pro Absender, nicht nur als eine seitenweite Zahl, die die Route verbirgt, die still und leise Nachrichten verliert.

  2. 02

    Fehlerursachen nach Carrier.

    Fehlgeschlagene Sendungen tragen den Fehlercode des Carriers, gruppiert nach Ziel-Carrier (MCC/MNC). Ein Anstieg ist meist ein einzelner Betreiber, der eine Sender-ID ablehnt — eine Korrektur der Registrierung, kein Plattformausfall.

  3. 03

    Segmente und Kosten.

    Jede Nachricht meldet ihre Kodierung und Segmentanzahl, sodass das Volumen sich zu den Segmenten aufsummiert, die Ihnen tatsächlich berechnet wurden. Ein Lauf, der auf Unicode umstieg und seine Segmente verdoppelte, zeigt sich hier, nicht erst auf der Rechnung.

  4. 04

    Latenz bis zur Zustellung.

    Die Zeit von der Einreichung bis zur Zustellbestätigung, als Verteilung statt als Durchschnitt. Weltweit bestätigen etwa 95% der Nachrichten in unter 2.5 Sekunden; im Ausläufer kündigt sich eine verschlechterte Route an.

Fragen Sie die Zahlen aus Ihrem eigenen Code ab.

Die Stats-API nimmt einen Zeitraum und ein groupBy entgegen und liefert die aggregierten Zählungen zurück. Gruppieren Sie nach Land und Carrier, um die unterdurchschnittliche Route zu finden, nach Absender, um zu sehen, welcher Ihrer IDs ein Carrier vertraut. Dieselbe Aggregation liegt den Dashboard-Diagrammen zugrunde, sodass eine Zahl, von der Sie einen Screenshot machen, einer Zahl entspricht, die Sie geplant abrufen können.

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,
//   }

Rufen Sie die Timeline für eine einzelne Nachricht ab.

Aggregate beantworten, wie eine Kampagne lief; ein Support-Ticket fragt nach einer einzelnen Nachricht. Übergeben Sie eine einzelne Message-ID an den Events-Endpunkt und Sie erhalten ihr gesamtes Leben der Reihe nach — in Warteschlange, gesendet, die Carrier-Zustellbestätigung oder den Fehlschlag, jeweils mit einem Zeitstempel versehen und, wenn sie fehlschlug, dem Fehlercode des Carriers selbst.

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" },
//   ]

Schneiden Sie dieselben Sendungen so zu, wie die Frage geformt ist.

Jede Aufschlüsselung liest aus denselben Zustellbestätigungen; das groupBy ändert nur die Perspektive.

DimensionWas sie Ihnen verrät
LandWo die Zustellung hält und wo ein Zielort die globale Rate nach unten zieht.
Carrier (MCC/MNC)Welcher Betreiber innerhalb eines Landes Traffic ablehnt, bis hinunter zum Netzcode.
AbsenderWie vertrauenswürdig jede Ihrer Sender-IDs oder Nummern ist, da Reputation pro Absender gilt.
ZeitfensterWann sich eine Rate bewegt hat, sodass ein Einbruch sich einem Deploy, einer Registrierungsänderung oder einem Ausfall zuordnen lässt.

Vertiefen Sie sich in der Dokumentation.

Bauen Sie aus den Zustellungs-Webhooks Ihren eigenen Speicher auf, lesen Sie den Zustellbarkeits-Leitfaden für die Bedeutung der Fehlercodes und gleichen Sie die Zählungen mit Abrechnung und Nutzung ab.

Die Bestätigungen stammen aus der Routing-Schicht.

Eine Zustellbestätigung ist nur so gut wie der Pfad, der sie erzeugt hat: Routing wählt die Carrier-Verbindung, die jede Nachricht nimmt, und liefert das DLR zurück, aus dem diese Metriken aufgebaut sind. Wenn Sie Zwei-Wege-Nummern betreiben, werden eingehende Nachrichten hier ebenfalls gezählt, sodass ein Antwortvolumen neben der Zustellrate steht, die es verdient hat.

SMS-Analytics-FAQ

Woher stammen die Zustellungszahlen?+
Aus der Carrier-Zustellbestätigung (DLR) für jeden Versand. Bird erfasst die Bestätigung zur Nachricht und aggregiert diese Bestätigungen dann zu Zustell-, Fehler- und Latenzkennzahlen. Eine Zustellungszahl ist die Bestätigung des Carriers über den Empfang, nicht eine Schätzung von Bird.
Kann ich einen Bericht nach Carrier aufschlüsseln?+
Ja. Die Stats-API akzeptiert ein groupBy nach Land, Carrier (per MCC/MNC), Absender und Zeitfenster, in beliebiger Kombination. Eine Fehlerrate, die landesweit unauffällig wirkt, entpuppt sich oft als ein einzelner Carrier, der eine Sender-ID ablehnt.
Muss ich die API abfragen, oder kann ich Ereignisse streamen?+
Beides. Jeder Zustellungsstatus trifft bereits als Webhook ein, sodass Sie aus dem Ereignis-Stream Ihren eigenen Speicher aufbauen können. Die Stats-API steht bereit, wenn Sie die Aggregation lieber Bird überlassen, statt selbst einen Zähler zu führen.
Kann ich nachschlagen, was mit einer bestimmten Nachricht passiert ist?+
Übergeben Sie die Message-ID an den Events-Endpunkt und Sie erhalten ihre vollständige Timeline — in Warteschlange, gesendet, zugestellt oder fehlgeschlagen, jeweils mit Zeitstempel und, bei Fehlschlag, dem Carrier-Fehlercode. Das ist der Bericht, den Sie wirklich brauchen, wenn ein Kunde sagt, eine Nachricht sei nie angekommen.

Die Metriken kommen mit der API, die sie erzeugt.

Analytics ist kein separates Produkt zum Kaufen. Senden Sie über die Bird SMS-API und das Zustell-, Fehler- und Latenz-Reporting ist bereits da, auf einer Infrastruktur, die etwa 40% der weltweiten kommerziellen SMS trägt.

Starten Sie mit einem Kanal.
Fügen Sie die anderen hinzu, wenn Sie bereit sind.

Ein Test-API-Key steht Ihnen sofort zur Verfügung. Der Produktivzugang wird freigeschaltet, sobald Sie eine Zahlungsmethode hinzufügen und einen Absender verifizieren.

Sie nutzen Claude Code, Cursor oder Codex? Kopieren Sie einen Setup-Prompt und Ihr Agent installiert die Bird CLI und Skills für Sie. Wählen Sie Ihren:

Cursor