हर सेंड एक कैरियर डिलीवरी रसीद पैदा करता है। Bird उन रसीदों को country, carrier और sender के हिसाब से बाँटकर डिलीवरी, फेल्योर और लेटेंसी मेट्रिक्स में बदल देता है — dashboard में और एक stats API के ज़रिए जिसे आप अपने कोड से क्वेरी कर सकते हैं।
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
उसी API का रिपोर्टिंग वाला पहलू।
इंस्ट्रुमेंट करने के लिए कुछ नया नहीं।
Analytics Bird SMS API का रिपोर्टिंग वाला पहलू है। आप पहले से ही इसके ज़रिए भेजते हैं और हर स्टेट बदलाव पर पहले से ही डिलीवरी webhook पाते हैं; analytics यानी Bird आपके लिए काउंट रखता है, ताकि इवेंट्स को पहले रखने के लिए वेयरहाउस खड़ा किए बिना आप पूछ सकें कि कोई कैंपेन कैसे डिलीवर हुआ।
डिलीवरी रसीद आपको क्या बताती है।
कैरियर से मापा गया, अनुमान से नहीं।
- 01
डिलीवरी रेट।
जितने सबमिट हुए, उनमें से जितने सेंड कैरियर ने डिलीवर होने की पुष्टि की, उनका हिस्सा। इसे हर country और हर sender के हिसाब से ट्रैक करें, न कि सिर्फ़ एक साइट-वाइड आँकड़े के रूप में जो उस रूट को छिपा देता है जो चुपचाप ड्रॉप हो रहा है।
- 02
कैरियर के हिसाब से फेल्योर के कारण।
फेल हुए सेंड में कैरियर का रीज़न कोड होता है, जो डेस्टिनेशन कैरियर (MCC/MNC) के हिसाब से समूहबद्ध होता है। कोई स्पाइक आमतौर पर एक ऑपरेटर द्वारा एक sender ID को अस्वीकार करने की वजह से होता है, जो एक रजिस्ट्रेशन फिक्स है, न कि प्लेटफ़ॉर्म आउटेज।
- 03
सेगमेंट और लागत।
हर मैसेज अपनी encoding और segment count रिपोर्ट करता है, इसलिए वॉल्यूम उन सेगमेंट्स में जुड़ जाता है जिनके लिए आपसे असल में बिल लिया गया। जो रन Unicode में गया और उसके सेगमेंट दोगुने हो गए, वह यहाँ दिखता है, इनवॉइस पर नहीं।
- 04
डिलीवरी तक की लेटेंसी।
सबमिशन से डिलीवरी रसीद तक का समय, औसत के बजाय एक डिस्ट्रिब्यूशन के रूप में। दुनिया भर में लगभग 95% मैसेज 2.5 सेकंड से कम में कन्फर्म होते हैं; टेल वही जगह है जहाँ कोई खराब रूट अपना पता देता है।
अपने खुद के कोड से आँकड़े क्वेरी करें।
stats API एक time range और एक groupBy लेती है, और जोड़े गए काउंट लौटाती है। कम प्रदर्शन करने वाले रूट को ढूँढने के लिए country और carrier के हिसाब से ग्रुप करें, यह देखने के लिए कि आपकी कौन-सी ID पर कैरियर भरोसा करता है, sender के हिसाब से ग्रुप करें। यही एग्रीगेशन dashboard चार्ट्स को भी चलाता है, इसलिए जो नंबर आप स्क्रीनशॉट लेते हैं वह उस नंबर से मेल खाता है जिसे आप शेड्यूल पर खींच सकते हैं।
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,
// }
किसी एक मैसेज की टाइमलाइन खींचें।
Aggregates answer how a campaign did; a support ticket asks about one text. Pass a single message ID to the events endpoint and you get its whole life in order: queued, sent, the carrier delivery receipt or the failure, each stamped with a time and, when it failed, the carrier's own reason code.
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
डिलीवरी के आंकड़े कहाँ से आते हैं?
क्या मैं रिपोर्ट को कैरियर के हिसाब से बाँट सकता हूँ?
क्या मुझे API को पोल करना होगा, या मैं इवेंट स्ट्रीम कर सकता हूँ?
क्या मैं देख सकता हूँ कि किसी एक खास मैसेज के साथ क्या हुआ?
बाकी SMS प्लेटफ़ॉर्म
एक API, चाबियों का एक सेट। बाकी क्षमताओं को एक्सप्लोर करें।
मेट्रिक्स उसी API के साथ आते हैं जो उन्हें पैदा करती है।
Analytics कोई अलग खरीदने वाला प्रोडक्ट नहीं है। Bird SMS API के ज़रिए भेजें और डिलीवरी, फेल्योर और लेटेंसी की रिपोर्टिंग पहले से ही मौजूद है, उस इन्फ्रास्ट्रक्चर पर जो दुनिया के लगभग 40% कमर्शियल SMS को ढोता है।