Analytics

देखिए कैरियर ने क्या देखा।

इसमें सेट अप करें:
Cursor

हर सेंड एक कैरियर डिलीवरी रसीद पैदा करता है। Bird उन रसीदों को country, carrier और sender के हिसाब से बाँटकर डिलीवरी, फेल्योर और लेटेंसी मेट्रिक्स में बदल देता है — dashboard में और एक stats API के ज़रिए जिसे आप अपने कोड से क्वेरी कर सकते हैं।

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.`,
  category: "authentication",
}).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

उसी API का रिपोर्टिंग वाला पहलू।

इंस्ट्रुमेंट करने के लिए कुछ नया नहीं।

Analytics Bird SMS API का रिपोर्टिंग वाला पहलू है। आप पहले से ही इसके ज़रिए भेजते हैं और हर स्टेट बदलाव पर पहले से ही डिलीवरी webhook पाते हैं; analytics यानी Bird आपके लिए काउंट रखता है, ताकि इवेंट्स को पहले रखने के लिए वेयरहाउस खड़ा किए बिना आप पूछ सकें कि कोई कैंपेन कैसे डिलीवर हुआ।

डिलीवरी रसीद आपको क्या बताती है।

कैरियर से मापा गया, अनुमान से नहीं।

  1. 01

    डिलीवरी रेट।

    जितने सबमिट हुए, उनमें से जितने सेंड कैरियर ने डिलीवर होने की पुष्टि की, उनका हिस्सा। इसे हर country और हर sender के हिसाब से ट्रैक करें, न कि सिर्फ़ एक साइट-वाइड आँकड़े के रूप में जो उस रूट को छिपा देता है जो चुपचाप ड्रॉप हो रहा है।

  2. 02

    कैरियर के हिसाब से फेल्योर के कारण।

    फेल हुए सेंड में कैरियर का रीज़न कोड होता है, जो डेस्टिनेशन कैरियर (MCC/MNC) के हिसाब से समूहबद्ध होता है। कोई स्पाइक आमतौर पर एक ऑपरेटर द्वारा एक sender ID को अस्वीकार करने की वजह से होता है, जो एक रजिस्ट्रेशन फिक्स है, न कि प्लेटफ़ॉर्म आउटेज।

  3. 03

    सेगमेंट और लागत।

    हर मैसेज अपनी encoding और segment count रिपोर्ट करता है, इसलिए वॉल्यूम उन सेगमेंट्स में जुड़ जाता है जिनके लिए आपसे असल में बिल लिया गया। जो रन Unicode में गया और उसके सेगमेंट दोगुने हो गए, वह यहाँ दिखता है, इनवॉइस पर नहीं।

  4. 04

    डिलीवरी तक की लेटेंसी।

    सबमिशन से डिलीवरी रसीद तक का समय, औसत के बजाय एक डिस्ट्रिब्यूशन के रूप में। दुनिया भर में लगभग 95% मैसेज 2.5 सेकंड से कम में कन्फर्म होते हैं; टेल वही जगह है जहाँ कोई खराब रूट अपना पता देता है।

अपने खुद के कोड से आँकड़े क्वेरी करें।

stats API एक time range और एक groupBy लेती है, और जोड़े गए काउंट लौटाती है। कम प्रदर्शन करने वाले रूट को ढूँढने के लिए country और carrier के हिसाब से ग्रुप करें, यह देखने के लिए कि आपकी कौन-सी ID पर कैरियर भरोसा करता है, sender के हिसाब से ग्रुप करें। यही एग्रीगेशन dashboard चार्ट्स को भी चलाता है, इसलिए जो नंबर आप स्क्रीनशॉट लेते हैं वह उस नंबर से मेल खाता है जिसे आप शेड्यूल पर खींच सकते हैं।

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

किसी एक मैसेज की टाइमलाइन खींचें।

एग्रीगेट बताते हैं कि कोई कैंपेन कैसा रहा; एक सपोर्ट टिकट एक टेक्स्ट के बारे में पूछता है। events endpoint को एक अकेली मैसेज ID पास करें और आपको उसका पूरा जीवन क्रम में मिल जाता है — queued, sent, कैरियर डिलीवरी रसीद या फेल्योर, हर एक पर समय की मुहर, और जब वह फेल हुआ, तो कैरियर का अपना रीज़न कोड।

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

console.log(data.events);
// → [
//     { type: "sms.accepted",  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" },
//   ]

जैसे भी सवाल हो, उसी सेंड्स को उसी हिसाब से स्लाइस करें।

हर ब्रेकडाउन उन्हीं डिलीवरी रसीदों से पढ़ता है; groupBy बस नज़रिया बदलता है।

आयामयह आपको क्या बताता है
Countryकहाँ डिलीवरी टिकी रहती है और कहाँ कोई डेस्टिनेशन ग्लोबल रेट को नीचे खींच रहा है।
Carrier (MCC/MNC)किसी country के अंदर कौन-सा ऑपरेटर ट्रैफ़िक अस्वीकार कर रहा है, नेटवर्क कोड तक।
Senderआपकी हर sender ID या नंबर पर कितना भरोसा है, क्योंकि रेपुटेशन प्रति-sender होती है।
Time bucketकोई रेट कब बदला, ताकि कोई गिरावट किसी deploy, रजिस्ट्रेशन बदलाव, या आउटेज के साथ मेल खाए।

डॉक्स में और गहराई से जानें।

डिलीवरी webhooks से अपना खुद का स्टोर बनाएँ, फेल्योर कोड का क्या मतलब है इसके लिए deliverability गाइड पढ़ें, और बिलिंग और उपयोग के साथ काउंट का मिलान करें।

रसीदें रूटिंग लेयर से आती हैं।

डिलीवरी रसीद उतनी ही अच्छी होती है जितना उसे पैदा करने वाला रास्ता: routing यह चुनता है कि हर मैसेज किस कैरियर लिंक से जाएगा और वह DLR वापस देता है जिससे ये मेट्रिक्स बनते हैं। अगर आप two-way नंबर चलाते हैं, तो इनबाउंड मैसेज भी यहीं गिने जाते हैं, इसलिए रिप्लाई वॉल्यूम उसी डिलीवरी रेट के बगल में बैठता है जिसने उसे कमाया।

SMS analytics FAQ

डिलीवरी के आंकड़े कहाँ से आते हैं?+
हर सेंड के लिए कैरियर डिलीवरी रसीद (DLR) से। Bird हर मैसेज के लिए रसीद रिकॉर्ड करता है, फिर उन रसीदों को डिलीवरी, फेल्योर और लेटेंसी के आंकड़ों में जोड़ता है। डिलीवर्ड काउंट का मतलब है कैरियर रसीद की पुष्टि कर रहा है, न कि Bird कोई अनुमान लगा रहा है।
क्या मैं रिपोर्ट को कैरियर के हिसाब से बाँट सकता हूँ?+
हाँ। stats API country, carrier (MCC/MNC के आधार पर), sender और time bucket का groupBy लेती है, किसी भी संयोजन में। जो फेल्योर रेट राष्ट्रीय स्तर पर ठीक दिखता है, वह अक्सर एक कैरियर द्वारा एक sender ID को अस्वीकार करने की वजह से निकलता है।
क्या मुझे API को पोल करना होगा, या मैं इवेंट स्ट्रीम कर सकता हूँ?+
दोनों में से कोई भी। हर डिलीवरी स्टेट पहले से ही webhook के रूप में आती है, इसलिए आप इवेंट स्ट्रीम से अपना खुद का स्टोर बना सकते हैं। stats API तब है जब आप चाहते हैं कि खुद काउंटर रखने के बजाय Bird एग्रीगेशन करे।
क्या मैं देख सकता हूँ कि किसी एक खास मैसेज के साथ क्या हुआ?+
events endpoint को मैसेज ID पास करें और आपको उसकी पूरी टाइमलाइन मिल जाती है — queued, sent, delivered या failed, हर एक टाइमस्टैम्प के साथ, और फेल होने पर कैरियर का रीज़न कोड। जब कोई ग्राहक कहता है कि टेक्स्ट कभी पहुँचा ही नहीं, तो असल में यही रिपोर्ट आपको चाहिए होती है।

मेट्रिक्स उसी API के साथ आते हैं जो उन्हें पैदा करती है।

Analytics कोई अलग खरीदने वाला प्रोडक्ट नहीं है। Bird SMS API के ज़रिए भेजें और डिलीवरी, फेल्योर और लेटेंसी की रिपोर्टिंग पहले से ही मौजूद है, उस इन्फ्रास्ट्रक्चर पर जो दुनिया के लगभग 40% कमर्शियल SMS को ढोता है।

एक चैनल से शुरुआत करें।
तैयार होने पर बाकी जोड़ें।

एक test API key तुरंत आपकी है। जब आप payment method जोड़ते हैं और sender verify करते हैं, तब production अनलॉक हो जाता है।

Claude Code, Cursor या Codex इस्तेमाल कर रहे हैं? एक setup prompt कॉपी करें और आपका agent आपके लिए Bird CLI और skills इंस्टॉल कर देगा। अपना चुनें:

Cursor