संदेश वितरण में अंतर्दृष्टि प्राप्त करने में आपकी सहायता के लिए FCM टूल के तीन सेट प्रदान करता है:
- फायरबेस कंसोल संदेश वितरण रिपोर्ट
- फायरबेस क्लाउड मैसेजिंग डेटा एपीआई से समेकित एंड्रॉइड एसडीके डिलीवरी मेट्रिक्स
- Google BigQuery को व्यापक डेटा निर्यात
इस पृष्ठ में वर्णित सभी रिपोर्टिंग टूल को कार्य करने के लिए Google Analytics की आवश्यकता होती है। यदि आपके प्रोजेक्ट के लिए Google Analytics सक्षम नहीं है, तो आप इसे अपनी Firebase प्रोजेक्ट सेटिंग के एकीकरण टैब में सेट कर सकते हैं।
ध्यान रखें कि इस पृष्ठ पर कई आँकड़ों की रिपोर्टिंग, एनालिटिक्स डेटा के बैचिंग के कारण 24 घंटे तक की देरी के अधीन है।
संदेश वितरण रिपोर्ट
Firebase कंसोल में रिपोर्ट टैब में, आप Android या Apple प्लेटफ़ॉर्म FCM SDK को भेजे गए संदेशों के लिए निम्न डेटा देख सकते हैं, जिनमें नोटिफिकेशन कंपोज़र और FCM API द्वारा भेजे गए संदेश शामिल हैं:
- भेजता है — डेटा संदेश या अधिसूचना संदेश वितरण के लिए कतारबद्ध किया गया है या वितरण के लिए एपीएन जैसी तृतीय-पक्ष सेवा को सफलतापूर्वक पास कर दिया गया है। अधिक जानकारी के लिए संदेश का जीवनकाल देखें।
- प्राप्त (केवल Android उपकरणों पर उपलब्ध) - डेटा संदेश या सूचना संदेश ऐप द्वारा प्राप्त किया गया है। यह डेटा तब उपलब्ध होता है जब प्राप्त करने वाले एंड्रॉइड डिवाइस में एफसीएम एसडीके 18.0.1 या उच्चतर स्थापित होता है।
- छापें (केवल Android उपकरणों पर अधिसूचना संदेशों के लिए उपलब्ध) - ऐप के पृष्ठभूमि में होने पर प्रदर्शन अधिसूचना डिवाइस पर प्रदर्शित की गई है।
- खुलता है - उपयोगकर्ता ने अधिसूचना संदेश खोला। केवल ऐप के बैकग्राउंड में होने पर प्राप्त नोटिफिकेशन के लिए रिपोर्ट किया गया।
यह डेटा अधिसूचना पेलोड वाले सभी संदेशों और सभी लेबल किए गए डेटा संदेशों के लिए उपलब्ध है। लेबल के बारे में अधिक जानने के लिए, संदेशों में एनालिटिक्स लेबल जोड़ना देखें।
संदेश रिपोर्ट देखते समय, आप CSV में निर्यात करने के विकल्प के साथ प्रदर्शित डेटा के लिए दिनांक सीमा निर्धारित कर सकते हैं। आप इन मानदंडों के अनुसार फ़िल्टर भी कर सकते हैं:
- प्लेटफार्म (आईओएस या एंड्रॉइड)
- अनुप्रयोग
- कस्टम एनालिटिक्स लेबल
संदेशों में एनालिटिक्स लेबल जोड़ना
कस्टम विश्लेषण के लिए संदेशों को लेबल करना बहुत उपयोगी है, जिससे आप लेबल या लेबल के सेट द्वारा वितरण आंकड़ों को फ़िल्टर कर सकते हैं। आप संदेश ऑब्जेक्ट में fcmOptions.analyticsLabel
फ़ील्ड सेट करके, या प्लेटफ़ॉर्म-विशिष्ट AndroidFcmOptions
या ApnsFcmOptions
फ़ील्ड में HTTP v1 API के माध्यम से भेजे गए किसी भी संदेश में एक लेबल जोड़ सकते हैं।
एनालिटिक्स लेबल ^[a-zA-Z0-9-_.~%]{1,50}$
प्रारूप में टेक्स्ट स्ट्रिंग हैं। लेबल में लोअर और अपर केस लेटर्स, नंबर्स और निम्नलिखित सिंबल शामिल हो सकते हैं:
-
-
-
~
-
%
अधिकतम लंबाई 50 वर्ण है। आप प्रति दिन अधिकतम 100 अद्वितीय लेबल निर्दिष्ट कर सकते हैं; उस सीमा से अधिक जोड़े गए लेबल वाले संदेशों की रिपोर्ट नहीं की जाती है।
Firebase कंसोल मैसेजिंग रिपोर्ट टैब में, आप सभी मौजूदा लेबल की सूची खोज सकते हैं और प्रदर्शित आंकड़ों को फ़िल्टर करने के लिए उन्हें अकेले या संयोजन में लागू कर सकते हैं।
FCM डेटा API के माध्यम से समेकित वितरण डेटा
फायरबेस क्लाउड मैसेजिंग डेटा एपीआई आपको ऐसी जानकारी प्राप्त करने देता है जो एंड्रॉइड एप्लिकेशन को लक्षित संदेश अनुरोधों के परिणामों को समझने में आपकी सहायता कर सकती है। एपीआई एक परियोजना में सभी डेटा संग्रह-सक्षम एंड्रॉइड डिवाइसों में समेकित डेटा प्रदान करता है। इसमें बिना देरी के डिलीवर किए गए संदेशों के प्रतिशत के साथ-साथ एंड्रॉइड ट्रांसपोर्ट लेयर के भीतर कितने संदेशों में देरी हुई या गिराए गए संदेशों का विवरण शामिल है। इस डेटा का मूल्यांकन करने से संदेश वितरण में व्यापक रुझान प्रकट हो सकते हैं और आपको अपने भेजने के अनुरोधों के प्रदर्शन को बेहतर बनाने के प्रभावी तरीके खोजने में मदद मिलती है।
एपीआई किसी दिए गए एप्लिकेशन के लिए उपलब्ध सभी डेटा प्रदान करता है। एपीआई संदर्भ दस्तावेज देखें।
डेटा कैसे टूटा हुआ है?
वितरण डेटा को एप्लिकेशन, दिनांक और विश्लेषण लेबल द्वारा विभाजित किया जाता है। API को कॉल करने पर दिनांक, एप्लिकेशन और विश्लेषण लेबल के प्रत्येक संयोजन के लिए डेटा वापस आ जाएगा। उदाहरण के लिए, एक एकल androidDeliveryData
JSON ऑब्जेक्ट इस तरह दिखेगा:
{
"appId": "1:23456789:android:a93a5mb1234efe56",
"date": {
"year": 2021,
"month": 1,
"day": 1
},
"analyticsLabel": "foo",
"data": {
"countMessagesAccepted": "314159",
"messageOutcomePercents": {
"delivered": 71,
"pending": 15
},
"deliveryPerformancePercents": {
"deliveredNoDelay": 45,
"delayedDeviceOffline": 11
}
}
मेट्रिक्स की व्याख्या कैसे करें
वितरण डेटा उन संदेशों के प्रतिशत को रेखांकित करता है जो निम्न में से प्रत्येक मीट्रिक में फिट होते हैं। यह संभव है कि एक संदेश कई मेट्रिक्स फिट बैठता है। हम डेटा कैसे एकत्र करते हैं और जिस स्तर पर हमने मीट्रिक एकत्रित किए हैं, उसमें सीमाओं के कारण, कुछ संदेश परिणाम मीट्रिक में बिल्कुल भी प्रदर्शित नहीं होते हैं, इसलिए नीचे दिए गए प्रतिशत का योग 100% नहीं होगा।
स्वीकृत संदेशों की गणना करें
डेटासेट में शामिल केवल उन संदेशों की संख्या है जिन्हें FCM द्वारा Android उपकरणों पर वितरण के लिए स्वीकार किया गया था। सभी प्रतिशत इस मान को हर के रूप में उपयोग करते हैं। ध्यान रखें कि इस गणना में उन उपयोगकर्ताओं को लक्षित संदेश शामिल नहीं होंगे जिन्होंने अपने उपकरणों पर उपयोग और नैदानिक जानकारी के संग्रह को अक्षम कर दिया है।
संदेश परिणाम प्रतिशत
MessageOutcomePercents
ऑब्जेक्ट में शामिल फ़ील्ड संदेश अनुरोधों के परिणामों के बारे में जानकारी प्रदान करते हैं। श्रेणियां सभी परस्पर अनन्य हैं। यह "क्या मेरे संदेश डिलीवर हो रहे हैं?" जैसे प्रश्नों का उत्तर दे सकता है। और "संदेशों को छोड़ने का क्या कारण है?"
उदाहरण के लिए, droppedTooManyPendingMessages
फ़ील्ड के लिए एक उच्च मान यह संकेत दे सकता है कि ऐप इंस्टेंस को FCM की 100 लंबित संदेशों की सीमा से अधिक गैर-संक्षिप्त संदेशों की मात्रा प्राप्त हो रही है। इसे कम करने के लिए, सुनिश्चित करें कि आपका ऐप onDeletedMessages
पर कॉल को हैंडल करता है, और संक्षिप्त किए जा सकने वाले संदेश भेजने पर विचार करें। इसी तरह, droppedDeviceInactive
के लिए उच्च प्रतिशत आपके सर्वर पर पंजीकरण टोकन को अपडेट करने, पुराने टोकन को हटाने और उन्हें विषयों से सदस्यता समाप्त करने का संकेत हो सकता है। इस क्षेत्र में सर्वोत्तम प्रथाओं के लिए FCM पंजीकरण टोकन प्रबंधित करें देखें।
वितरण प्रदर्शन प्रतिशत
DeliveryPerformancePercents
ऑब्जेक्ट में फ़ील्ड सफलतापूर्वक वितरित किए गए संदेशों के बारे में जानकारी प्रदान करते हैं। यह सवालों के जवाब दे सकता है जैसे "क्या मेरे संदेशों में देरी हुई?" और "संदेशों में देरी क्यों हो रही है?" उदाहरण के लिए, delayedMessageThrottled
के लिए एक उच्च मान स्पष्ट रूप से इंगित करेगा कि आप प्रति-डिवाइस अधिकतम सीमा से अधिक हैं, और उस दर को समायोजित करना चाहिए जिस पर आप संदेश भेज रहे हैं।
संदेश अंतर्दृष्टि प्रतिशत
यह ऑब्जेक्ट भेजे गए सभी संदेशों के बारे में अतिरिक्त जानकारी प्रदान करता है। priorityLowered
-निचला फ़ील्ड उन स्वीकृत संदेशों का प्रतिशत व्यक्त करता है जिनकी प्राथमिकता HIGH
से NORMAL
तक कम हो गई थी। यदि यह मान अधिक है, तो कम उच्च प्राथमिकता वाले संदेश भेजने का प्रयास करें या सुनिश्चित करें कि उच्च प्राथमिकता वाला संदेश भेजे जाने पर आप हमेशा एक सूचना प्रदर्शित करते हैं। अधिक जानकारी के लिए संदेश प्राथमिकता पर हमारा दस्तावेज़ देखें
यह डेटा BigQuery को निर्यात किए गए डेटा से कैसे भिन्न है?
BigQuery निर्यात FCM बैकएंड द्वारा संदेश स्वीकृति और डिवाइस पर SDK में संदेश वितरण के बारे में अलग-अलग संदेश लॉग प्रदान करता है ( FCM आर्किटेक्चर के चरण 2 और 4)। यह डेटा यह सुनिश्चित करने के लिए उपयोगी है कि व्यक्तिगत संदेश स्वीकार किए गए और वितरित किए गए। अगले अनुभाग में BigQuery डेटा निर्यात के बारे में और पढ़ें।
इसके विपरीत, फायरबेस क्लाउड मैसेजिंग डेटा एपीआई विशेष रूप से एंड्रॉइड ट्रांसपोर्ट लेयर (या एफसीएम आर्किटेक्चर के चरण 3) में क्या होता है, इसके बारे में समेकित विवरण प्रदान करता है। यह डेटा विशेष रूप से FCM बैकएंड से Android SDK को संदेशों के वितरण में अंतर्दृष्टि प्रदान करता है। यह रुझान दिखाने के लिए विशेष रूप से उपयोगी है कि इस परिवहन के दौरान संदेशों में देरी या गिरावट क्यों हुई।
कुछ मामलों में, यह संभव है कि दो डेटा सेट निम्नलिखित कारणों से सटीक रूप से मेल न खाएं:
- समेकित मीट्रिक केवल सभी संदेशों के एक हिस्से का नमूना लेते हैं
- एकत्रित मीट्रिक गोल हैं
- हम गोपनीयता सीमा के नीचे मीट्रिक प्रस्तुत नहीं करते हैं
- हम ट्रैफ़िक की बड़ी मात्रा को कैसे प्रबंधित करते हैं, इसमें अनुकूलन के कारण संदेश परिणामों का एक हिस्सा गायब है।
एपीआई की सीमाएं
डेटा विलंब
इस एपीआई द्वारा लौटाए गए डेटा में 5 दिनों तक की देरी होगी। उदाहरण के लिए, 10 जनवरी को, 5 जनवरी का डेटा उपलब्ध होगा, लेकिन 6 जनवरी या उसके बाद के लिए नहीं। इसके अतिरिक्त, डेटा सर्वोत्तम प्रयास में प्रदान किया जाता है। डेटा आउटेज की स्थिति में, FCM आगे ठीक करने का काम करेगा और समस्या के ठीक होने के बाद डेटा को बैकफ़िल नहीं करेगा। बड़े आउटेज में, डेटा एक सप्ताह या उससे अधिक के लिए अनुपलब्ध हो सकता है।
डेटा कवरेज
फायरबेस क्लाउड मैसेजिंग डेटा एपीआई द्वारा प्रदान की गई मीट्रिक संदेश वितरण के व्यापक रुझानों में अंतर्दृष्टि प्रदान करने के लिए हैं। हालांकि, वे सभी संदेश परिदृश्यों का 100% कवरेज प्रदान नहीं करते हैं। निम्नलिखित परिदृश्य ज्ञात परिणाम हैं जो मीट्रिक में प्रतिबिंबित नहीं होते हैं।
संक्षिप्त संदेश
दूसरे संदेश द्वारा संक्षिप्त किए गए संदेश डेटासेट में प्रकट नहीं होते हैं।
निष्क्रिय उपकरणों के लिए संदेश
निष्क्रिय उपकरणों को भेजे गए संदेश डेटासेट में दिखाई दे भी सकते हैं और नहीं भी, इस पर निर्भर करते हुए कि वे किस डेटा पथ का उपयोग करते हैं। इससे droppedDeviceInactive
और pending
फील्ड में कुछ गलत गणना हो सकती है।
कुछ उपयोगकर्ता प्राथमिकताओं वाले उपकरणों के लिए संदेश
जिन उपयोगकर्ताओं ने अपने उपकरणों पर उपयोग और नैदानिक जानकारी के संग्रह को अक्षम कर दिया है, उनके संदेशों को उनकी प्राथमिकताओं को ध्यान में रखते हुए हमारी गणना में शामिल नहीं किया जाएगा।
गोलाई और न्यूनतम
FCM जानबूझकर उन गणनाओं को राउंड और बहिष्कृत करता है जहां वॉल्यूम पर्याप्त बड़े नहीं होते हैं।
BigQuery डेटा निर्यात
आगे के विश्लेषण के लिए आप अपना संदेश डेटा BigQuery में निर्यात कर सकते हैं. BigQuery आपको BigQuery SQL का उपयोग करके डेटा का विश्लेषण करने, उसे किसी अन्य क्लाउड प्रदाता को निर्यात करने या अपने कस्टम ML मॉडल के लिए डेटा का उपयोग करने की अनुमति देता है। BigQuery को किए जाने वाले निर्यात में संदेशों के लिए सभी उपलब्ध डेटा शामिल होते हैं, भले ही संदेश प्रकार कुछ भी हो या संदेश API या सूचना कंपोज़र के माध्यम से भेजा गया हो।
निम्न FCM SDK न्यूनतम संस्करणों वाले उपकरणों को भेजे गए संदेशों के लिए, आपके पास अपने ऐप के लिए संदेश वितरण डेटा के निर्यात को सक्षम करने का अतिरिक्त विकल्प है:
- एंड्रॉइड 20.1.0 या उच्चतर।
- आईओएस 8.6.0 या उच्चतर
- फायरबेस वेब एसडीके 9.0.0 या उच्चतर
Android और iOS के लिए डेटा निर्यात सक्षम करने के विवरण के लिए नीचे देखें।
आरंभ करने के लिए, अपने प्रोजेक्ट को BigQuery से लिंक करें:
निम्नलिखित विकल्पों में से एक चुनें:
नोटिफिकेशन कंपोज़र खोलें, फिर पेज के निचले भाग में BigQuery एक्सेस करें पर क्लिक करें।
Firebase कंसोल में इंटीग्रेशन पेज से, BigQuery कार्ड में लिंक पर क्लिक करें.
यह पृष्ठ प्रोजेक्ट में सभी FCM-सक्षम ऐप्स के लिए FCM निर्यात विकल्प प्रदर्शित करता है।
BigQuery को सक्षम करने के लिए ऑन-स्क्रीन निर्देशों का पालन करें।
ज़्यादा जानकारी के लिए Firebase को BigQuery से लिंक करें देखें.
जब आप क्लाउड संदेश सेवा के लिए BigQuery निर्यात सक्षम करते हैं:
Firebase आपका डेटा BigQuery को एक्सपोर्ट करता है. ध्यान दें कि निर्यात के लिए डेटा के प्रारंभिक प्रसार को पूरा होने में 48 घंटे तक लग सकते हैं।
- आप पिछले 30 दिनों तक डेटा बैकफ़िल को मैन्युअल रूप से शेड्यूल कर सकते हैं।
डेटासेट बनने के बाद, स्थान बदला नहीं जा सकता है, लेकिन आप डेटासेट को किसी भिन्न स्थान पर कॉपी कर सकते हैं या मैन्युअल रूप से डेटासेट को किसी भिन्न स्थान पर ले जा सकते हैं (फिर से बना सकते हैं)। अधिक जानने के लिए, डेटासेट स्थान बदलें देखें।
Firebase आपके Firebase प्रोजेक्ट से BigQuery में आपके डेटा का नियमित समन्वयन सेट करता है. ये दैनिक निर्यात संचालन 4:00 AM प्रशांत समय से शुरू होते हैं और आमतौर पर 24 घंटों में समाप्त होते हैं।
डिफ़ॉल्ट रूप से, आपके प्रोजेक्ट के सभी ऐप BigQuery से लिंक होते हैं और आप बाद में प्रोजेक्ट में जो भी ऐप जोड़ते हैं, वे अपने आप BigQuery से लिंक हो जाते हैं। आप यह प्रबंधित कर सकते हैं कि कौन से ऐप्स डेटा भेजते हैं ।
BigQuery निर्यात को निष्क्रिय करने के लिए, अपने प्रोजेक्ट को Firebase कंसोल में अनलिंक करें ।
संदेश वितरण डेटा निर्यात सक्षम करें
FCM SDK 8.6.0 या उच्चतर वाले iOS डिवाइस अपने ऐप के संदेश वितरण डेटा निर्यात को सक्षम कर सकते हैं। FCM अलर्ट और बैकग्राउंड नोटिफिकेशन दोनों के लिए डेटा निर्यात का समर्थन करता है। इन विकल्पों को सक्षम करने से पहले, आपको पहले अपने प्रोजेक्ट के लिए FCM-BiqQuery लिंक बनाना होगा जैसा कि BigQuery डेटा निर्यात में वर्णित है।
अलर्ट सूचनाओं के लिए वितरण डेटा निर्यात सक्षम करें
चूंकि केवल अलर्ट नोटिफिकेशन ही नोटिफिकेशन सर्विस ऐप एक्सटेंशन को ट्रिगर कर सकते हैं, इसलिए आपको अपने ऐप में नोटिफिकेशन सर्विस एक्सटेंशन जोड़ना होगा और डिस्प्ले मैसेज ट्रैकिंग को सक्षम करने के लिए इस एपीआई को सर्विस एक्सटेंशन के अंदर कॉल करना होगा। नई डिलीवर की गई सूचनाओं में सामग्री को संशोधित करने पर Apple के दस्तावेज़ देखें।
प्राप्त होने वाली प्रत्येक अधिसूचना के लिए निम्नलिखित कॉल की जानी चाहिए:
तीव्र
// For alert notifications, call the API inside the service extension:
class NotificationService: UNNotificationServiceExtension {
override func didReceive(_ request: UNNotificationRequest, withContentHandler contentHandler: @escaping (UNNotificationContent) -> Void) {
Messaging.extensionHelper()
.exportDeliveryMetricsToBigQuery(withMessageInfo:request.content.userInfo)
}
}
उद्देश्य सी
// For alert notifications, call the API inside the service extension:
@implementation NotificationService
- (void)didReceiveNotificationRequest:(UNNotificationRequest *)request
withContentHandler:(void (^)(UNNotificationContent *_Nonnull))contentHandler {
[[FIRMessaging extensionHelper] exportDeliveryMetricsToBigQueryWithMessageInfo:request.content.userInfo];
}
@end
यदि आप HTTP v1 API का उपयोग करके भेजें अनुरोध बना रहे हैं, तो पेलोड ऑब्जेक्ट में mutable-content = 1
निर्दिष्ट करना सुनिश्चित करें।
पृष्ठभूमि सूचनाओं के लिए वितरण डेटा निर्यात सक्षम करें
ऐप के अग्रभूमि या पृष्ठभूमि में होने पर प्राप्त होने वाले पृष्ठभूमि संदेशों के लिए, आप मुख्य ऐप के डेटा संदेश हैंडलर के अंदर डेटा निर्यात API को कॉल कर सकते हैं। यह कॉल प्रत्येक प्राप्त अधिसूचना के लिए किया जाना चाहिए:
तीव्र
// For background notifications, call the API inside the UIApplicationDelegate or NSApplicationDelegate method:
func application(_ application: UIApplication, didReceiveRemoteNotification userInfo: [AnyHashable : Any]) {
Messaging.extensionHelper().exportDeliveryMetricsToBigQuery(withMessageInfo:userInfo)
}
उद्देश्य सी
// For background notifications, call the API inside the UIApplicationDelegate or NSApplicationDelegate method:
@implementation AppDelegate
- (void)application:(UIApplication *)application
didReceiveRemoteNotification:(NSDictionary *)userInfo
fetchCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler {
[[FIRMessaging extensionHelper] exportDeliveryMetricsToBigQueryWithMessageInfo:userInfo];
}
@end
BigQuery को कौन सा डेटा निर्यात किया जाता है?
ध्यान दें कि पुराने टोकन या निष्क्रिय पंजीकरण को लक्षित करने से इनमें से कुछ आंकड़े बढ़ सकते हैं।
निर्यात की गई तालिका की स्कीमा है:
_पार्टिशनटाइम | TIMESTAMP | इस छद्म कॉलम में उस दिन की शुरुआत (UTC में) के लिए टाइमस्टैम्प होता है जिसमें डेटा लोड किया गया था। YYYYMMDD विभाजन के लिए, इस छद्म स्तंभ में TIMESTAMP ('YYYY-MM-DD') मान होता है। |
event_timestamp | TIMESTAMP | सर्वर द्वारा रिकॉर्ड किए गए इवेंट टाइमस्टैम्प |
परियोजना क्रमांक | पूर्णांक | प्रोजेक्ट नंबर उस प्रोजेक्ट की पहचान करता है जिसने संदेश भेजा है |
संदेश_आईडी | डोरी | संदेश आईडी एक संदेश की पहचान करता है। ऐप आईडी और टाइमस्टैम्प से उत्पन्न, संदेश आईडी, कुछ मामलों में, विश्व स्तर पर अद्वितीय नहीं हो सकता है। |
उदाहरण_आईडी | डोरी | ऐप की यूनिक आईडी जिस पर मैसेज भेजा जाता है (उपलब्ध होने पर)। यह इंस्टेंस आईडी या फायरबेस इंस्टॉलेशन आईडी हो सकता है। |
संदेश प्रकार | डोरी | संदेश का प्रकार। अधिसूचना संदेश या डेटा संदेश हो सकता है। विषय या अभियान भेजने के लिए मूल संदेश की पहचान करने के लिए विषय का उपयोग किया जाता है; बाद के संदेश या तो एक अधिसूचना या डेटा संदेश है। |
एसडीके_प्लेटफॉर्म | डोरी | प्राप्तकर्ता ऐप का मंच |
एप्लिकेशन का नाम | डोरी | Android ऐप्स के लिए पैकेज का नाम या iOS ऐप्स के लिए बंडल आईडी |
पतन_कुंजी | डोरी | संक्षिप्त करें कुंजी संदेशों के एक समूह की पहचान करती है जिसे संक्षिप्त किया जा सकता है। जब कोई उपकरण कनेक्ट नहीं होता है, तो अंतिम डिलीवरी के लिए केवल दी गई संक्षिप्त कुंजी वाला अंतिम संदेश कतारबद्ध होता है |
वरीयता | पूर्णांक | संदेश की प्राथमिकता। मान्य मान "सामान्य" और "उच्च" हैं। IOS पर, ये APN की प्राथमिकताओं 5 और 10 . के अनुरूप हैं |
टीटीएल | पूर्णांक | यह पैरामीटर निर्दिष्ट करता है कि डिवाइस के ऑफ़लाइन होने पर संदेश को FCM संग्रहण में कितनी देर (सेकंड में) रखा जाना चाहिए |
विषय | डोरी | उस विषय का नाम जिस पर संदेश भेजा गया था (जब लागू हो) |
बल्क_आईडी | पूर्णांक | बल्क आईडी संबंधित संदेशों के समूह की पहचान करता है, जैसे कि किसी विषय को विशेष रूप से भेजना |
प्रतिस्पर्धा | डोरी | घटना का प्रकार। संभावित मान हैं:
|
विश्लेषिकी_लेबल | डोरी | HTTP v1 API के साथ, संदेश भेजते समय एनालिटिक्स लेबल सेट किया जा सकता है, ताकि एनालिटिक्स उद्देश्यों के लिए संदेश को चिह्नित किया जा सके |
आप निर्यात किए गए डेटा के साथ क्या कर सकते हैं?
निम्न अनुभाग उन क्वेरी के उदाहरण प्रस्तुत करते हैं जिन्हें आप अपने निर्यात किए गए FCM डेटा के विरुद्ध BigQuery में चला सकते हैं.
ऐप द्वारा भेजे गए संदेशों की गणना करें
SELECT app_name, COUNT(1) FROM `project ID.firebase_messaging.data` WHERE _PARTITIONTIME = TIMESTAMP('date as YYYY-MM-DD') AND event = 'MESSAGE_ACCEPTED' AND message_id != '' GROUP BY 1;
संदेशों द्वारा लक्षित अद्वितीय ऐप इंस्टेंस की गणना करें
SELECT COUNT(DISTINCT instance_id) FROM `project ID.firebase_messaging.data` WHERE _PARTITIONTIME = TIMESTAMP('date as YYYY-MM-DD') AND event = 'MESSAGE_ACCEPTED';
भेजे गए अधिसूचना संदेशों की गणना करें
SELECT COUNT(1) FROM `project ID.firebase_messaging.data` WHERE _PARTITIONTIME = TIMESTAMP('date as YYYY-MM-DD') AND event = 'MESSAGE_ACCEPTED' AND message_type = 'DISPLAY_NOTIFICATION';
भेजे गए डेटा संदेशों की गणना करें
SELECT COUNT(1) FROM `project ID.firebase_messaging.data` WHERE _PARTITIONTIME = TIMESTAMP('date as YYYY-MM-DD') AND event = 'MESSAGE_ACCEPTED' AND message_type = 'DATA_MESSAGE';
किसी विषय या अभियान को भेजे गए संदेशों की गणना करें
SELECT COUNT(1) FROM `project ID.firebase_messaging.data` WHERE _PARTITIONTIME = TIMESTAMP('date as YYYY-MM-DD') AND event = 'MESSAGE_ACCEPTED' AND bulk_id = your bulk id AND message_id != '';
किसी विशेष विषय पर भेजे गए संदेश की घटनाओं को ट्रैक करने के लिए, AND message_id != ''
को AND message_id = <your message id>;
.
किसी दिए गए विषय या अभियान के लिए फैनआउट अवधि की गणना करें
फैनआउट प्रारंभ समय तब होता है जब मूल अनुरोध प्राप्त होता है, और समाप्ति समय वह समय होता है जब किसी एकल इंस्टेंस को लक्षित करने वाला अंतिम व्यक्तिगत संदेश बनाया जाता है।
SELECT TIMESTAMP_DIFF( end_timestamp, start_timestamp, MILLISECOND ) AS fanout_duration_ms, end_timestamp, start_timestamp FROM ( SELECT MAX(event_timestamp) AS end_timestamp FROM `project ID.firebase_messaging.data` WHERE _PARTITIONTIME = TIMESTAMP('date as YYYY-MM-DD') AND event = 'MESSAGE_ACCEPTED' AND bulk_id = your bulk id ) sent CROSS JOIN ( SELECT event_timestamp AS start_timestamp FROM `project ID.firebase_messaging.data` WHERE _PARTITIONTIME = TIMESTAMP('date as YYYY-MM-DD') AND event = 'MESSAGE_ACCEPTED' AND bulk_id = your bulk id AND message_type = 'TOPIC' ) initial_message;
डिलीवर किए गए संदेशों का प्रतिशत गिनें
SELECT messages_sent, messages_delivered, messages_delivered / messages_sent * 100 AS percent_delivered FROM ( SELECT COUNT(DISTINCT CONCAT(message_id, instance_id)) AS messages_sent FROM `project ID.firebase_messaging.data` WHERE _PARTITIONTIME = TIMESTAMP('date as YYYY-MM-DD') AND event = 'MESSAGE_ACCEPTED' ) sent CROSS JOIN ( SELECT COUNT(DISTINCT CONCAT(message_id, instance_id)) AS messages_delivered FROM `project ID.firebase_messaging.data` WHERE _PARTITIONTIME = TIMESTAMP('date as YYYY-MM-DD') AND (event = 'MESSAGE_DELIVERED' AND message_id IN ( SELECT message_id FROM `project ID.firebase_messaging.data` WHERE _PARTITIONTIME = TIMESTAMP('date as YYYY-MM-DD') AND event = 'MESSAGE_ACCEPTED' GROUP BY 1 ) ) delivered;
किसी दिए गए संदेश आईडी और इंस्टेंस आईडी के लिए सभी ईवेंट ट्रैक करें
SELECT * FROM `project ID.firebase_messaging.data` WHERE _PARTITIONTIME = TIMESTAMP('date as YYYY-MM-DD') AND message_id = 'your message id' AND instance_id = 'your instance id' ORDER BY event_timestamp;
किसी दिए गए संदेश आईडी और इंस्टेंस आईडी के लिए विलंबता की गणना करें
SELECT TIMESTAMP_DIFF( MAX(delivered_time), MIN(accepted_time), MILLISECOND ) AS latency_ms FROM ( SELECT event_timestamp AS accepted_time FROM `project ID.firebase_messaging.data` WHERE _PARTITIONTIME = TIMESTAMP('date as YYYY-MM-DD') AND message_id = 'your message id' AND instance_id = 'your instance id' AND event = 'MESSAGE_ACCEPTED' ) sent CROSS JOIN ( SELECT event_timestamp AS delivered_time FROM `project ID.firebase_messaging.data` WHERE _PARTITIONTIME = TIMESTAMP('date as YYYY-MM-DD') AND message_id = 'your message id' AND instance_id = 'your instance id' AND (event = 'MESSAGE_DELIVERED' ) delivered;