डिलीवरी रसीद (DLR) क्या है, और यह कितनी भरोसेमंद है?

डिलीवरी रसीद (DLR) किसी टेक्स्ट संदेश की नेटवर्क डिलीवरी का परिणाम बताती है, लेकिन यह साबित नहीं करती कि किसी ने उसे पढ़ा।

प्राप्तकर्ता के फ़ोन पर कुछ पहुँचने से पहले ही आपका भेजने का अनुरोध सफल हो सकता है। बाद में आने वाली कैरियर रिपोर्ट एक अलग परिणाम देती है, जिसे आपके एप्लिकेशन को अनुरोध स्वीकार होने से अलग संभालना होगा।

डिलीवरी रसीद मुझे क्या बताती है?

रसीद नेटवर्क की ओर से बताती है कि डिलीवरी सफल रही या उसमें कोई समस्या आई।

SMS डिलीवरी परिणाम तब भी आ सकता है जब फ़ोन बिना पढ़े किसी दराज़ में पड़ा हो। इससे यह साबित नहीं होता कि प्राप्तकर्ता ने भेजने वाले की पहचान देखी। इससे यह भी तय नहीं होता कि उन्होंने पूरा टेक्स्ट पढ़ा।

नेटवर्क रसीदें भेजने के अनुरोध पर अपनी प्रतिक्रिया से अलग भेजता है। वह कुछ रिपोर्टों को रोक भी सकता है। SMPP रसीद संदर्भ कैरियर कनेक्शनों के लिए इन नियंत्रणों का विवरण देता है।

Bird कौन-सी कैरियर रसीदें दिखाता है?

पहचाने गए डिलीवरी परिणामों के लिए आपको सार्वजनिक इवेंट मिलते हैं। बफ़र की गई रसीदें आंतरिक रहती हैं।

बफ़र की गई रसीद बताती है कि कैरियर ने संदेश रोक रखा है। Bird इसे सार्वजनिक संदेश स्थिति बदले बिना अपने आंतरिक इवेंट लॉग में दर्ज करता है। सार्वजनिक टाइमलाइन या आपके वेबहुक में आपको कोई अपडेट नहीं दिखता।

कैरियर रसीद स्थितिBird इवेंट
deliveredsms.delivered
expiredsms.expired
rejectedsms.rejected
पुनर्प्राप्त हो सकने वाले कारण के साथ delivery_failedsms.undelivered
स्थायी या अमैप्ड कारण के साथ delivery_failedsms.failed
bufferedकोई सार्वजनिक इवेंट नहीं

कैरियर का अपरिचित स्टेटस कोई इवेंट नहीं बनाता। इसलिए सार्वजनिक अपडेट न मिलने से यह साबित नहीं होता कि कैरियर ने कोई रसीद नहीं भेजी।

एक ही विफलता स्टेटस अलग-अलग इवेंट क्यों बनाता है?

Bird कैरियर के विफलता कारण से तय करता है कि मूल समस्या दूर हो सकती है या नहीं।

कैरियर का कारणBird त्रुटि कोडवर्गीकरण
unavailable_subscriberunreachableठीक हो सकने वाला
received_network_errorprovider_unavailableठीक हो सकने वाला
capacity_limit_reachedprovider_unavailableठीक हो सकने वाला
unknown_subscriberinvalid_destinationस्थायी
opted_outrecipient_opted_outस्थायी
carrier_rejectedcontent_rejectedस्थायी

सुधारी जा सकने वाली विफलता से sms.undelivered बनता है। फिर भी संदेश अंतिम रहता है: Bird उसके लिए अपने-आप फिर से प्रयास नहीं करता। प्राप्तकर्ता तक पहुँचने के लिए मूल समस्या दूर होने के बाद आपको संदेश फिर से भेजना होगा।

स्थायी विफलता से sms.failed बनता है।

SMS पंपिंग एक धोखाधड़ी है, जिसमें हमलावर आपके प्रोडक्ट से अपने नियंत्रण वाले नंबरों पर सशुल्क संदेश भिजवाता है। जब धोखाधड़ी सुरक्षा संदिग्ध पंपिंग को रोकती है, तो Bird blocked_by_fraud_protection रिपोर्ट करता है।

किसी अन्यथा अमैप्ड कारण से sms.failed बनता है, जिसका त्रुटि कोड unknown होता है। इस परिणाम का अर्थ है कि Bird कैरियर के कारण को वर्गीकृत नहीं कर सका। यह अपने आप में साबित नहीं करता कि गंतव्य तक स्थायी रूप से नहीं पहुँचा जा सकता।

क्या मैं तय कर सकता हूँ कि कैरियर कब प्रयास करना बंद करे?

आप Bird के send endpoint के ज़रिए कैरियर की डिलीवरी समय-सीमा तय नहीं कर सकते।

Bird भेजे गए किसी भी validity_period को HTTP 422 SMSUnsupportedFeature के साथ अस्वीकार करता है। यह फ़ील्ड तय करता कि कैरियर टेक्स्ट डिलीवर करने का प्रयास कितनी देर तक करता रहे।

इससे जुड़ा प्रतिक्रिया फ़ील्ड लौटाया नहीं जाता। जब कोई कैरियर समय-सीमा समाप्त होने की रिपोर्ट देता है, तो Bird sms.expired बनाता है। फ़ील्ड मौजूद न होने से आपका एप्लिकेशन कैरियर की प्रतीक्षा अवधि का अनुमान नहीं लगा सकता।

मुझे अपने एप्लिकेशन में रसीदों को कैसे संभालना चाहिए?

डिलीवरी परिणामों को अनुरोध की स्वीकृति से और प्राप्तकर्ता की किसी भी कार्रवाई से अलग ट्रैक करें।

जिस संदेश का अंतिम डिलीवरी परिणाम नहीं आया है, उसे लंबित मानें। विफलता इवेंट के साथ त्रुटि कोड पढ़ें, ताकि आप उसके कारण की जाँच कर सकें। अनजान कोड अपने लॉग में सुरक्षित रखें, क्योंकि त्रुटि कोडों का सेट बढ़ाया जा सकता है।

डिलीवरी मीट्रिक के लिए delivered इवेंट का उपयोग करें। सत्यापन कोड या पुष्टि फ़्लो में सफलता तब दर्ज करें, जब प्राप्तकर्ता कार्रवाई पूरी कर ले। केवल डिलीवरी रसीद से यह माप नहीं मिल सकता।

SMS इवेंट में सार्वजनिक इवेंट पेलोड और संदेश टाइमलाइन का विवरण है।

संक्षेप में

  1. डिलीवरी से यह साबित नहीं होता कि संदेश पढ़ा गया।

    रसीद नेटवर्क की डिलीवरी का परिणाम बताती है, पर इसकी पुष्टि नहीं करती कि किसी व्यक्ति ने टेक्स्ट देखा।

  2. कुछ रसीदों के लिए कोई सार्वजनिक इवेंट नहीं होता।

    Bird बफ़र की गई रसीदों को आंतरिक रूप से दर्ज करता है, और सार्वजनिक स्टेटस, टाइमलाइन या वेबहुक स्ट्रीम में कोई बदलाव नहीं करता।

  3. कारण से तय होता है कि कौन-सा विफलता इवेंट बनेगा।

    सुधारे जा सकने वाले कैरियर कारणों से sms.undelivered बनता है; स्थायी या अमैप्ड कारणों से sms.failed बनता है।

  4. सुधारे जा सकने वाले कारण से संदेश अपने-आप दोबारा नहीं भेजा जाता।

    undelivered संदेश अंतिम होता है, इसलिए एक और प्रयास के लिए आपको अलग से भेजना होगा।

व्यवहार में लाएँ।

इस विषय के लिए दस्तावेज़, गाइड और उदाहरणों के साथ आगे बढ़ें।

इम्प्लीमेंटेशन ब्रीफ़ पाएँ

उसी नेटवर्क पर बनाएँ।

एक टेस्ट API key आपको तुरंत मिल जाती है। भुगतान विधि जोड़ने और सेंडर सत्यापित करने पर प्रोडक्शन अनलॉक होता है।

आपका अगला आइडिया। जुड़ने के लिए तैयार।