Analitik

Lihat apa yang dilihat operator.

Siap dalam:
Cursor

Setiap pengiriman menghasilkan delivery receipt operator. Bird mengubah receipt itu menjadi metrik pengiriman, kegagalan, dan latensi, dipecah per negara, operator, dan pengirim, di dashboard dan melalui stats API yang dapat Anda kueri dari kode Anda sendiri.

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

Sisi pelaporan dari API yang sama.

Tak ada yang baru untuk diinstrumentasi.

Analitik adalah sisi pelaporan dari Bird SMS API. Anda sudah mengirim melaluinya dan sudah menerima delivery webhook pada setiap perubahan status; analitik adalah Bird yang menyimpan hitungannya untuk Anda, sehingga Anda bisa menanyakan bagaimana sebuah campaign terkirim tanpa harus menyiapkan warehouse untuk menampung event-nya lebih dulu.

Apa yang diberitahukan sebuah delivery receipt.

Diukur dari operator, bukan disimpulkan.

  1. 01

    Tingkat pengiriman.

    Porsi pengiriman yang dikonfirmasi terkirim oleh operator, terhadap yang dikirimkan. Lacak per negara dan per pengirim, bukan hanya sebagai satu angka menyeluruh yang menyembunyikan rute yang diam-diam menurun.

  2. 02

    Alasan kegagalan per operator.

    Pengiriman yang gagal membawa reason code operator, dikelompokkan per operator tujuan (MCC/MNC). Lonjakan biasanya berupa satu operator yang menolak satu sender ID, yang merupakan perbaikan registrasi, bukan gangguan platform.

  3. 03

    Segment dan biaya.

    Setiap pesan melaporkan encoding dan jumlah segment-nya, sehingga volume tergabung menjadi segment yang benar-benar ditagihkan kepada Anda. Pengiriman yang berubah ke Unicode dan menggandakan segment-nya muncul di sini, bukan di tagihan.

  4. 04

    Latensi hingga pengiriman.

    Waktu dari pengiriman hingga delivery receipt, sebagai distribusi alih-alih rata-rata. Secara global sekitar 95% pesan terkonfirmasi dalam waktu di bawah 2,5 detik; ekornya adalah tempat rute yang menurun menampakkan diri.

Kueri angka-angkanya dari kode Anda sendiri.

Stats API menerima rentang waktu dan groupBy, lalu mengembalikan hitungan yang sudah digabung. Kelompokkan per negara dan operator untuk menemukan rute yang berkinerja buruk, per pengirim untuk melihat ID mana yang dipercaya operator. Agregasi yang sama mendukung grafik dashboard, sehingga angka yang Anda tangkap layar cocok dengan angka yang bisa Anda tarik secara terjadwal.

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

Tarik linimasa untuk satu pesan.

Agregat menjawab bagaimana sebuah campaign berjalan; sebuah tiket dukungan menanyakan satu teks. Berikan satu message ID ke endpoint events dan Anda mendapatkan seluruh perjalanannya secara berurutan — queued, sent, delivery receipt operator atau kegagalannya, masing-masing dicap waktu dan, saat gagal, reason code milik operator.

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

Iris pengiriman yang sama sesuai bentuk pertanyaannya.

Setiap pemecahan membaca dari delivery receipt yang sama; groupBy hanya mengubah sudut pandangnya.

DimensiApa yang diberitahukannya
NegaraDi mana pengiriman bertahan dan di mana sebuah tujuan menyeret turun angka global.
Operator (MCC/MNC)Operator mana di dalam sebuah negara yang menolak trafik, hingga ke kode jaringannya.
PengirimSeberapa dipercaya masing-masing sender ID atau nomor Anda, karena reputasi bersifat per pengirim.
Rentang waktuKapan sebuah angka berubah, sehingga penurunan sejajar dengan sebuah deploy, perubahan registrasi, atau gangguan.

Pelajari lebih dalam di dokumentasi.

Bangun penyimpanan Anda sendiri dari delivery webhook, baca panduan deliverability untuk memahami arti kode kegagalan, dan rekonsiliasi hitungan dengan penagihan dan penggunaan.

Receipt-nya berasal dari layer routing.

Sebuah delivery receipt hanya sebaik jalur yang menghasilkannya: routing memilih tautan operator yang dilewati setiap pesan dan mengembalikan DLR yang menjadi dasar metrik ini. Jika Anda menjalankan nomor dua arah, pesan inbound juga dihitung di sini, sehingga volume balasan berada di samping tingkat pengiriman yang menghasilkannya.

FAQ analitik SMS

Dari mana angka pengiriman berasal?+
Dari delivery receipt (DLR) operator untuk setiap pengiriman. Bird mencatat receipt itu terhadap pesan, lalu menggabungkannya menjadi angka pengiriman, kegagalan, dan latensi. Hitungan terkirim adalah konfirmasi penerimaan dari operator, bukan tebakan Bird.
Bisakah saya memecah laporan per operator?+
Ya. Stats API menerima groupBy berupa negara, operator (berdasarkan MCC/MNC), pengirim, dan rentang waktu, dalam kombinasi apa pun. Tingkat kegagalan yang terlihat normal secara nasional sering ternyata adalah satu operator yang menolak satu sender ID.
Apakah saya harus polling API, atau bisakah saya melakukan streaming event?+
Keduanya bisa. Setiap status pengiriman sudah datang sebagai webhook, jadi Anda bisa membangun penyimpanan sendiri dari aliran event. Stats API tersedia saat Anda ingin Bird yang melakukan agregasi alih-alih memelihara penghitung sendiri.
Bisakah saya menelusuri apa yang terjadi pada satu pesan tertentu?+
Berikan message ID ke endpoint events dan Anda mendapatkan linimasa lengkapnya — queued, sent, delivered atau failed, masing-masing dengan timestamp dan, saat gagal, reason code operator. Itulah laporan yang sebenarnya Anda butuhkan saat pelanggan bilang sebuah teks tidak pernah sampai.

Metriknya hadir bersama API yang menghasilkannya.

Analitik bukan produk terpisah yang harus dibeli. Kirim melalui Bird SMS API dan pelaporan pengiriman, kegagalan, serta latensi sudah ada di sana, di atas infrastruktur yang membawa sekitar 40% SMS komersial dunia.

Mulai dengan satu channel.
Tambahkan yang lain saat Anda siap.

API key uji coba langsung tersedia untuk Anda. Akses produksi terbuka setelah Anda menambahkan metode pembayaran dan memverifikasi pengirim.

Menggunakan Claude Code, Cursor, atau Codex? Salin prompt pengaturan dan agen Anda akan menginstal Bird CLI dan skill untuk Anda. Pilih milik Anda:

Cursor