संदेश वितरण को समझना

संदेश वितरण में अंतर्दृष्टि प्राप्त करने में आपकी सहायता के लिए FCM टूल के तीन सेट प्रदान करता है:

  • फायरबेस कंसोल संदेश वितरण रिपोर्ट और अधिसूचना फ़नल विश्लेषण
  • फायरबेस क्लाउड मैसेजिंग डेटा एपीआई से समेकित एंड्रॉइड एसडीके डिलीवरी मेट्रिक्स
  • Google BigQuery को व्यापक डेटा निर्यात

इस पृष्ठ में वर्णित सभी रिपोर्टिंग टूल को कार्य करने के लिए Google Analytics की आवश्यकता होती है। गूगल एनालिटिक्स अपनी परियोजना के लिए सक्षम नहीं है, तो आप इसे में स्थापित कर सकते हैं एकीकरण अपने Firebase परियोजना सेटिंग्स के टैब।

ध्यान रखें कि इस पृष्ठ पर कई आँकड़ों की रिपोर्टिंग, एनालिटिक्स डेटा के बैचिंग के कारण 24 घंटे तक की देरी के अधीन है।

संदेश वितरण रिपोर्ट

में रिपोर्ट Firebase कंसोल में टैब, आप सूचनाएं संगीतकार और FCM API के माध्यम से उन भेजा सहित Android या Apple मंच FCM SDK से भेजे गए संदेशों को निम्नलिखित डेटा देख सकते हैं:

  • भेजता है — डेटा संदेश या अधिसूचना संदेश वितरण के लिए कतारबद्ध किया गया है या वितरण के लिए एपीएन जैसी तृतीय-पक्ष सेवा को सफलतापूर्वक पास कर दिया गया है। देखें संदेश के जीवनकाल में अधिक जानकारी के लिए।
  • प्राप्त (केवल Android उपकरणों पर उपलब्ध) - डेटा संदेश या सूचना संदेश ऐप द्वारा प्राप्त किया गया है। यह डेटा तब उपलब्ध होता है जब प्राप्त करने वाले एंड्रॉइड डिवाइस में एफसीएम एसडीके 18.0.1 या उच्चतर स्थापित होता है।
  • इम्प्रेशन्स (केवल एंड्रॉइड डिवाइस पर नोटिफिकेशन मैसेज के लिए उपलब्ध) - ऐप के बैकग्राउंड में होने पर डिस्प्ले नोटिफिकेशन डिवाइस पर डिस्प्ले हो गया है।
  • खुलता है - उपयोगकर्ता ने अधिसूचना संदेश खोला। केवल ऐप के बैकग्राउंड में होने पर प्राप्त नोटिफिकेशन के लिए रिपोर्ट किया गया।

यह डेटा एक अधिसूचना पेलोड और सभी लेबल के साथ सभी संदेशों के लिए उपलब्ध है डेटा संदेश । लेबल के बारे में अधिक जानने के लिए, संदेशों को विश्लेषण लेबल जोड़ना

संदेश रिपोर्ट देखते समय, आप CSV में निर्यात करने के विकल्प के साथ प्रदर्शित डेटा के लिए दिनांक सीमा निर्धारित कर सकते हैं। आप इन मानदंडों के अनुसार फ़िल्टर भी कर सकते हैं:

  • प्लेटफार्म (आईओएस या एंड्रॉइड)
  • अनुप्रयोग
  • कस्टम एनालिटिक्स लेबल

संदेशों में एनालिटिक्स लेबल जोड़ना

कस्टम विश्लेषण के लिए संदेशों को लेबल करना बहुत उपयोगी है, जिससे आप लेबल या लेबल के सेट द्वारा वितरण आंकड़ों को फ़िल्टर कर सकते हैं। आप की स्थापना करके HTTP v1 एपीआई के माध्यम से भेजे गए किसी भी संदेश को लेबल जोड़ सकते हैं fcmOptions.analyticsLabel में क्षेत्र संदेश वस्तु, या प्लेटफ़ॉर्म-विशिष्ट में AndroidFcmOptions या ApnsFcmOptions क्षेत्रों।

एनालिटिक्स लेबल प्रारूप में पाठ हैं ^[a-zA-Z0-9-_.~%]{1,50}$ । लेबल में लोअर और अपर केस लेटर्स, नंबर्स और निम्नलिखित सिंबल शामिल हो सकते हैं:

  • -
  • ~
  • %

अधिकतम लंबाई 50 वर्ण है। आप प्रति दिन अधिकतम 100 अद्वितीय लेबल निर्दिष्ट कर सकते हैं; उस सीमा से अधिक जोड़े गए लेबल वाले संदेशों की रिपोर्ट नहीं की जाती है।

Firebase सांत्वना रिपोर्ट पट्टी संदेश में, आप सभी मौजूदा लेबल की सूची खोज और अकेले या आँकड़े प्रदर्शित किया फिल्टर करने के लिए संयोजन में उन्हें लागू कर सकते हैं।

अधिसूचना फ़नल विश्लेषण

एक अंतर्निहित सूचना फ़नल विश्लेषण आपको दिखाता है कि आपके उपयोगकर्ता Firebase कंसोल से भेजी गई विशेष सूचनाओं पर कैसे प्रतिक्रिया देते हैं। इस दृश्य में इन श्रेणियों में लक्षित iOS और Android उपकरणों का डेटा शामिल है:

  • सूचनाएं भेजी गईं - संदेश डिलीवरी के लिए कतारबद्ध हो गया है या डिलीवरी के लिए एपीएन जैसी किसी तृतीय-पक्ष सेवा को सफलतापूर्वक पास कर दिया गया है। ध्यान दें कि पुराने टोकन या निष्क्रिय पंजीकरण को लक्षित करने से ये आंकड़े बढ़ सकते हैं।
  • सूचनाएं खोली गईं — सूचनाओं की संख्या खोली गई. केवल ऐप के बैकग्राउंड में होने पर प्राप्त नोटिफिकेशन के लिए रिपोर्ट किया गया।
  • परिभाषित होने पर रूपांतरण ईवेंट ट्रिगर करने वाले अद्वितीय उपयोगकर्ताओं की संख्या.

सूचना फ़नल विश्लेषण देखने के लिए:

  1. सूचनाएं संगीतकार में, चुनें सूचनाएं टैब।
  2. संदेश सूची में पूर्ण या प्रगति में संदेश पर क्लिक करें। फ़नल विश्लेषण सहित एक विस्तृत दृश्य प्रदर्शित होता है।

Analytics रिपोर्ट समय-समय पर अपडेट होती रहती है, लेकिन उपयोगकर्ता द्वारा सूचना खोले जाने और कंसोल में ईवेंट डेटा उपलब्ध होने के बीच कुछ विलंब हो सकता है. के तहत इन रिपोर्टों के अलावा सूचनाएं टैब, आपको Analytics में कस्टम फ़नल का निर्माण अपने अनुप्रयोग में चरणों का क्रम की पूर्णता दर कल्पना करने के लिए कर सकते हैं।

FCM डेटा API के माध्यम से समेकित वितरण डेटा

फायरबेस क्लाउड मैसेजिंग डेटा एपीआई आपको ऐसी जानकारी प्राप्त करने देता है जो एंड्रॉइड एप्लिकेशन को लक्षित संदेश अनुरोधों के परिणामों को समझने में आपकी सहायता कर सकती है। एपीआई एक परियोजना में सभी डेटा संग्रह-सक्षम एंड्रॉइड डिवाइसों में समेकित डेटा प्रदान करता है। साथ ही के रूप में कितने संदेश में देरी कर रहे थे या भीतर गिरा दिया इस देरी के बिना डिलीवर किए गए संदेशों के प्रतिशत के विवरण शामिल हैं एंड्रॉयड ट्रांसपोर्ट लेयर । इस डेटा का मूल्यांकन करने से संदेश वितरण में व्यापक रुझान प्रकट हो सकते हैं और आपको अपने भेजने के अनुरोधों के प्रदर्शन को बेहतर बनाने के प्रभावी तरीके खोजने में मदद मिलती है।

एपीआई किसी दिए गए एप्लिकेशन के लिए उपलब्ध सभी डेटा प्रदान करता है। देखें 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 क्षेत्र संकेत हो सकती है कि एप्लिकेशन उदाहरणों की मात्रा प्राप्त कर रहे हैं गैर सिमटने संदेशों 100 लंबित संदेशों के FCM के सीमा से अधिक। इस कम करने के लिए, सुनिश्चित करें कि करने के लिए अपने अनुप्रयोग हैंडल कॉल करने onDeletedMessages , और सिमटने संदेश भेजने पर विचार करें। इसी तरह, के लिए उच्च प्रतिशत droppedDeviceInactive अपने सर्वर पर अद्यतन पंजीकरण टोकन के लिए एक संकेत हो सकता है, बासी टोकन निकालकर उनके विषयों से सदस्यता समाप्ति। देखें FCM पंजीकरण टोकन प्रबंधित इस क्षेत्र में सर्वोत्तम प्रथाओं के लिए।

वितरण प्रदर्शन प्रतिशत

में खेतों DeliveryPerformancePercents संदेशों कि सफलतापूर्वक वितरित किया गया था के बारे में जानकारी प्रदान करते हैं आपत्ति है। यह सवालों के जवाब दे सकता है जैसे "क्या मेरे संदेशों में देरी हुई?" और "संदेशों में देरी क्यों हो रही है?" उदाहरण के लिए, के लिए एक उच्च मूल्य delayedMessageThrottled स्पष्ट रूप से संकेत मिलता है कि आप पार कर रहे हैं प्रति-डिवाइस अधिकतम सीमा है, और जिस दर पर आप संदेश भेज रहे हैं समायोजित करना चाहिए।

संदेश अंतर्दृष्टि प्रतिशत

यह ऑब्जेक्ट भेजे गए सभी संदेशों के बारे में अतिरिक्त जानकारी प्रदान करता है। priorityLowered क्षेत्र स्वीकार किए जाते हैं उन संदेशों को प्राथमिकता से कम कर दिया था का प्रतिशत व्यक्त करता है HIGH करने के लिए NORMAL की वजह से एप्लिकेशन अतिरिक्त बाल्टी । यदि यह मान अधिक है, तो कम उच्च प्राथमिकता वाले संदेश भेजने का प्रयास करें या सुनिश्चित करें कि उच्च प्राथमिकता वाला संदेश भेजे जाने पर आप हमेशा एक सूचना प्रदर्शित करते हैं।

यह डेटा BigQuery को निर्यात किए गए डेटा से किस प्रकार भिन्न है?

BigQuery निर्यात डिवाइस (कदम 2 और 4 के पर एसडीके में FCM बैकएंड द्वारा संदेश स्वीकृति और संदेश वितरण के बारे में अलग-अलग संदेश लॉग प्रदान करता है FCM वास्तुकला )। यह डेटा यह सुनिश्चित करने के लिए उपयोगी है कि व्यक्तिगत संदेश स्वीकार किए गए और वितरित किए गए। बारे में अधिक पढ़ें BigQuery डेटा निर्यात अगले भाग में।

इसके विपरीत, Firebase क्लाउड संदेश डेटा API क्या एंड्रॉयड ट्रांसपोर्ट लेयर (या के चरण 3 में विशेष रूप से होता है के बारे में जानकारी एकत्र की जाती प्रदान करता है FCM वास्तुकला )। यह डेटा विशेष रूप से 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 या उच्चतर

के लिए डेटा निर्यात को सक्षम करने पर जानकारी के लिए नीचे देखें एंड्रॉयड और आईओएस

आरंभ करने के लिए, अपने प्रोजेक्ट को BigQuery से लिंक करें:

  1. निम्नलिखित विकल्पों में से एक चुनें:

    • खोलें सूचनाएं संगीतकार , तो पृष्ठ के तल पर पहुंच BigQuery क्लिक करें।

    • से एकीकरण Firebase कंसोल में पेज, BigQuery कार्ड में लिंक पर क्लिक करें।

      यह पृष्ठ प्रोजेक्ट में सभी FCM-सक्षम ऐप्स के लिए FCM निर्यात विकल्प प्रदर्शित करता है।

  2. BigQuery को सक्षम करने के लिए ऑन-स्क्रीन निर्देशों का पालन करें।

का संदर्भ लें BigQuery के लिए लिंक Firebase अधिक जानकारी के लिए।

अपने प्रोजेक्ट को BigQuery से लिंक करने के बाद:

  • Firebase अपने डेटा निर्यात BigQuery में। ध्यान दें कि निर्यात के लिए डेटा के प्रारंभिक प्रसार को पूरा होने में 48 घंटे तक लग सकते हैं।

  • Firebase आपके डेटा के नियमित समन्वयन को आपके Firebase प्रोजेक्ट से BigQuery में सेट करता है। ये दैनिक निर्यात संचालन 4:00 पूर्वाह्न प्रशांत समय से शुरू होते हैं और आमतौर पर 24 घंटों में समाप्त होते हैं।

  • डिफ़ॉल्ट रूप से, आपके प्रोजेक्ट के सभी ऐप्स BigQuery से लिंक होते हैं और आपके द्वारा बाद में प्रोजेक्ट में जोड़े जाने वाले सभी ऐप्स स्वतः ही BigQuery से लिंक हो जाते हैं। आप कर सकते हैं जो क्षुधा डेटा भेजने का प्रबंधन

BigQuery निर्यात को निष्क्रिय करने के लिए, अपनी परियोजना को अनलिंक Firebase कंसोल में।

संदेश वितरण डेटा निर्यात सक्षम करें

FCM SDK 8.6.0 या उच्चतर वाले iOS डिवाइस अपने ऐप के संदेश वितरण डेटा निर्यात को सक्षम कर सकते हैं। FCM अलर्ट और बैकग्राउंड नोटिफिकेशन दोनों के लिए डेटा निर्यात का समर्थन करता है। इन विकल्पों को सक्षम करने से पहले, आपको अपनी परियोजना के लिए FCM-BiqQuery लिंक में वर्णित के रूप बनाना होगा BigQuery डेटा निर्यात

अलर्ट सूचनाओं के लिए वितरण डेटा निर्यात सक्षम करें

चूंकि केवल अलर्ट नोटिफिकेशन ही नोटिफिकेशन सर्विस ऐप एक्सटेंशन को ट्रिगर कर सकते हैं, इसलिए आपको अपने ऐप में नोटिफिकेशन सर्विस एक्सटेंशन जोड़ना होगा और डिस्प्ले मैसेज ट्रैकिंग को सक्षम करने के लिए इस एपीआई को सर्विस एक्सटेंशन के अंदर कॉल करना होगा। पर एप्पल के दस्तावेज़ देखें नव वितरित सूचनाएं में संशोधित सामग्री

प्राप्त होने वाली प्रत्येक सूचना के लिए निम्नलिखित कॉल की जानी चाहिए:

तीव्र

// 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 एपीआई, निर्दिष्ट करने के लिए सुनिश्चित करें कि mutable-content = 1 में पेलोड वस्तु

पृष्ठभूमि सूचनाओं के लिए वितरण डेटा निर्यात सक्षम करें

पृष्ठभूमि संदेश प्राप्त जब एप्लिकेशन को अग्रभूमि या पृष्ठभूमि में है, तो आप मुख्य एप्लिकेशन के डेटा संदेश हैंडलर के अंदर डेटा निर्यात API कॉल कर सकते हैं UIApplicationDelegate application:didReceiveRemoteNotification:fetchCompletionHandler: । यह कॉल प्रत्येक प्राप्त अधिसूचना के लिए किया जाना चाहिए:

तीव्र

// For background notifications, call the API inside the UIApplicationDelegate method:
  func application(_ application: UIApplication, didReceiveRemoteNotification userInfo: [AnyHashable : Any]) {
    Messaging.extensionHelper().exportDeliveryMetricsToBigQuery(withMessageInfo:userInfo)
  }

उद्देश्य सी

// For background notifications, call the API inside the UIApplicationDelegate 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') मान है।
इवेंट_टाइमस्टैम्प TIMESTAMP सर्वर द्वारा रिकॉर्ड किए गए इवेंट टाइमस्टैम्प
परियोजना क्रमांक पूर्णांक प्रोजेक्ट नंबर उस प्रोजेक्ट की पहचान करता है जिसने संदेश भेजा
संदेश_आईडी डोरी संदेश आईडी एक संदेश की पहचान करता है। ऐप आईडी और टाइमस्टैम्प से उत्पन्न, संदेश आईडी, कुछ मामलों में, विश्व स्तर पर अद्वितीय नहीं हो सकता है।
उदाहरण_आईडी डोरी संदेश भेजे जाने वाले ऐप की इंस्टेंस आईडी (उपलब्ध होने पर)
संदेश प्रकार डोरी संदेश का प्रकार। अधिसूचना संदेश या डेटा संदेश हो सकता है। विषय या अभियान भेजने के लिए मूल संदेश की पहचान करने के लिए विषय का उपयोग किया जाता है; बाद के संदेश या तो एक अधिसूचना या डेटा संदेश है।
एसडीके_प्लेटफॉर्म डोरी प्राप्तकर्ता ऐप का मंच
एप्लिकेशन का नाम डोरी Android ऐप्स के लिए पैकेज का नाम या iOS ऐप्स के लिए बंडल आईडी
पतन_कुंजी डोरी संक्षिप्त करें कुंजी संदेशों के एक समूह की पहचान करती है जिसे संक्षिप्त किया जा सकता है। जब कोई उपकरण कनेक्ट नहीं होता है, तो अंतिम डिलीवरी के लिए केवल दी गई संक्षिप्त कुंजी वाला अंतिम संदेश कतारबद्ध होता है
वरीयता पूर्णांक संदेश की प्राथमिकता। मान्य मान "सामान्य" और "उच्च" हैं। आईओएस पर, ये एपीएन प्राथमिकताओं 5 और 10 के अनुरूप हैं
टीटीएल पूर्णांक यह पैरामीटर निर्दिष्ट करता है कि डिवाइस के ऑफ़लाइन होने पर संदेश को FCM संग्रहण में कितनी देर (सेकंड में) रखा जाना चाहिए
विषय डोरी उस विषय का नाम जिस पर संदेश भेजा गया था (जब लागू हो)
बल्क_आईडी पूर्णांक बल्क आईडी संबंधित संदेशों के समूह की पहचान करता है, जैसे कि किसी विषय को विशेष रूप से भेजना
प्रतिस्पर्धा डोरी घटना का प्रकार। संभावित मान हैं:
  • MESSAGE_ACCEPTED: संदेश FCM सर्वर द्वारा प्राप्त किया गया था और अनुरोध मान्य है;
  • MESSAGE_DELIVERED: संदेश डिवाइस पर ऐप के FCM SDK को डिलीवर कर दिया गया है। डिफ़ॉल्ट रूप से, यह फ़ील्ड प्रचारित नहीं है। सक्षम करने के लिए, में दिए गए निर्देशों का पालन करें setDeliveryMetricsExportToBigQuery(boolean)
  • MISSING_REGISTRANS: पंजीकरण गुम होने के कारण अनुरोध अस्वीकार कर दिया गया था;
  • UNAUTHORIZED_REGISTRATION: संदेश अस्वीकार कर दिया गया था क्योंकि प्रेषक पंजीकरण के लिए भेजने के लिए अधिकृत नहीं है;
  • MESSAGE_RECEIVED_INTERNAL_ERROR: संदेश अनुरोध को संसाधित करते समय एक अनिर्दिष्ट त्रुटि हुई;
  • MISMATCH_SENDER_ID: संदेश भेजने वाले आईडी और अंतिम बिंदु के लिए घोषित आईडी के बीच एक बेमेल होने के कारण संदेश भेजने का अनुरोध अस्वीकार कर दिया गया था;
  • QUOTA_EXCEEDED: अपर्याप्त कोटा के कारण संदेश भेजने का अनुरोध अस्वीकार कर दिया गया था;
  • INVALID_REGISTRATION: अमान्य पंजीकरण के कारण संदेश भेजने का अनुरोध अस्वीकार कर दिया गया था;
  • INVALID_PACKAGE_NAME: एक अमान्य पैकेज नाम के कारण संदेश भेजने का अनुरोध अस्वीकार कर दिया गया था;
  • INVALID_APNS_CREDENTIAL: एक अमान्य APNS प्रमाणपत्र के कारण संदेश भेजने का अनुरोध अस्वीकार कर दिया गया था;
  • INVALID_PARAMETERS: अमान्य पैरामीटर के कारण संदेश भेजने का अनुरोध अस्वीकार कर दिया गया था;
  • PAYLOAD_TOO_LARGE: संदेश भेजने का अनुरोध सीमा से अधिक पेलोड के कारण अस्वीकार कर दिया गया था;
  • AUTHENTICATION_ERROR: एक प्रमाणीकरण त्रुटि के कारण संदेश भेजने का अनुरोध अस्वीकार कर दिया गया था (संदेश भेजने के लिए उपयोग की गई API कुंजी की जांच करें);
  • INVALID_TTL: एक अमान्य TTL के कारण संदेश भेजने का अनुरोध अस्वीकार कर दिया गया था।
विश्लेषिकी_लेबल डोरी साथ HTTP v1 एपीआई , एनालिटिक्स लेबल जब संदेश भेजने के क्रम में विश्लेषण उद्देश्यों के लिए संदेश चिह्नित करने के लिए सेट किया जा सकता है

आप निर्यात किए गए डेटा के साथ क्या कर सकते हैं?

निम्न अनुभाग उन क्वेरी के उदाहरण प्रस्तुत करते हैं जिन्हें आप अपने निर्यात किए गए 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;