मैसेज डिलीवरी को समझना

FCM आपको तीन तरह के टूल उपलब्ध कराता है, ताकि आपको मैसेज डिलीवरी के बारे में अहम जानकारी मिल सके:

  • Firebase कंसोल मैसेज डिलीवरी रिपोर्ट
  • Android SDK टूल की डिलीवरी से जुड़ी एग्रीगेट की गई मेट्रिक Firebase क्लाउड से मैसेज करने का डेटा एपीआई
  • Google BigQuery में डेटा एक्सपोर्ट करने की सुविधा

इस पेज में बताए गए रिपोर्टिंग टूल के लिए, Google Analytics की ज़रूरत है ताकि वह काम कर सके. अगर आपके प्रोजेक्ट के लिए Google Analytics चालू नहीं है, तो तो इसे यहां सेट अप किया जा सकता है: इंटिग्रेशन टैब पर जाकर अपने Firebase प्रोजेक्ट की सेटिंग पर जाएं.

ध्यान रखें कि इस पेज के कई आंकड़ों की रिपोर्टिंग, आंकड़ों का डेटा इकट्ठा होने की वजह से, 24 घंटे तक की देरी हो सकती है.

मैसेज डिलीवरी की रिपोर्ट

इस रिपोर्ट टैब से, आप Android या Apple प्लैटफ़ॉर्म FCM SDK को भेजे गए मैसेज के लिए, नीचे दिया गया डेटा इनमें सूचनाएं कंपोज़र और FCM एपीआई से भेजे गए मैसेज भी शामिल हैं:

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

यह डेटा सूचना पेलोड वाले सभी मैसेज के लिए उपलब्ध है और सभी लेबल के साथ डेटा मैसेज में बताए गए हैं. लेबल के बारे में ज़्यादा जानने के लिए, यहां देखें मैसेज में आंकड़ों के लेबल जोड़ना.

मैसेज की रिपोर्ट देखते समय, दिखाए जाने वाले डेटा के लिए तारीख की सीमा सेट की जा सकती है. CSV में एक्सपोर्ट करने का विकल्प होगा. इन शर्तों के हिसाब से भी फ़िल्टर किया जा सकता है:

  • प्लैटफ़ॉर्म (iOS या Android)
  • ऐप्लिकेशन
  • कस्टम ऐनलिटिक्स लेबल

मैसेज में आंकड़ों के लेबल जोड़ना

मैसेज को लेबल करना, कस्टम विश्लेषण के लिए बहुत काम का होता है. इसकी मदद से, लेबल या लेबल के सेट के आधार पर वितरण आंकड़ों को फ़िल्टर करना. इस टूल की मदद से, लेबल की मदद से, fcmOptions.analyticsLabel फ़ील्ड में message ऑब्जेक्ट या प्लैटफ़ॉर्म के हिसाब से AndroidFcmOptions या ApnsFcmOptions फ़ील्ड.

Analytics लेबल, ^[a-zA-Z0-9-_.~%]{1,50}$ फ़ॉर्मैट में मौजूद टेक्स्ट स्ट्रिंग होते हैं. लेबल में लोअर और अपर केस अक्षर शामिल हो सकते हैं, और निम्न प्रतीक होते हैं:

  • -
  • ~
  • %

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

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

FCM Data API के ज़रिए इकट्ठा किया गया डिलीवरी डेटा

Firebase क्लाउड से मैसेजिंग डेटा एपीआई की मदद से, आपको ऐसी जानकारी वापस पाने में मदद मिलती है जो इससे Android को टारगेट किए गए मैसेज के अनुरोधों के नतीजों को समझने में मदद मिलती है का इस्तेमाल करें. एपीआई, पूरे डेटा का एग्रीगेट किया गया डेटा उपलब्ध कराता है जिन Android डिवाइसों पर कलेक्शन की सुविधा काम करती है. इसमें ये चीज़ें शामिल हैं: डिलीवर किए गए मैसेज का प्रतिशत बिना देरी और कितने संदेश देर से आए या Android ट्रांसपोर्ट लेयर. इस डेटा का मूल्यांकन करने से मैसेज डिलीवरी के व्यापक रुझान पता चल सकते हैं और इससे आपको मदद मिल सकती है अपने भेजे गए अनुरोधों की परफ़ॉर्मेंस को बेहतर बनाने के असरदार तरीके ढूंढें. रिपोर्ट में, तारीख की सीमा की उपलब्धता के बारे में जानकारी पाने के लिए, एग्रीगेट डेटा टाइमलाइन देखें.

एपीआई, किसी ऐप्लिकेशन के लिए उपलब्ध पूरा डेटा उपलब्ध कराता है. ज़्यादा जानकारी के लिए, एपीआई के बारे में जानकारी देने वाले दस्तावेज़.

डेटा कैसे बांटा जाता है?

डिलीवरी की जानकारी को ऐप्लिकेशन, तारीख, और आंकड़ों के लेबल के हिसाब से बांटा जाता है. वापस से एपीआई को कॉल किया जाएगा डेटा, जिसमें तारीख, आवेदन, और आंकड़े के लेबल के हर कॉम्बिनेशन के बारे में बताया गया हो. इसके लिए उदाहरण के लिए, एक 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% नहीं होगा.

स्वीकार किए गए मैसेज की गिनती करें

डेटासेट में सिर्फ़ उन मैसेज की संख्या शामिल है जिन्हें Android डिवाइसों पर डिलीवरी के लिए FCM ने स्वीकार किया. सभी प्रतिशत में इस वैल्यू का इस्तेमाल किया जाता है डिनॉमिनेटर के तौर पर शामिल करें. ध्यान रखें कि इस संख्या में मैसेज शामिल नहीं होंगे उन उपयोगकर्ताओं को टारगेट किया जाता है जिनके पास इस पर, इस्तेमाल और गड़बड़ी की जानकारी इकट्ठा करने की सुविधा बंद की गई है सीमित कर दिया है.

संदेश परिणाम का प्रतिशत

इसमें शामिल फ़ील्ड MessageOutcomePercents ऑब्जेक्ट पर जानकारी मैसेज के अनुरोधों के नतीजे. ये सभी कैटगरी अलग-अलग होती हैं. यह काम कर सकता है "क्या मेरे मैसेज डिलीवर किए जा रहे हैं?" जैसे सवालों के जवाब दें. और "इसकी वजह क्या है अपलोड नहीं करना है?"

उदाहरण के लिए, droppedTooManyPendingMessages फ़ील्ड के लिए ज़्यादा वैल्यू यह सिग्नल देते हैं कि ऐप्लिकेशन इंस्टेंस को बहुत ज़्यादा वॉल्यूम मिल रहे हैं छोटे नहीं किए जा सकने वाले मैसेज FCM की 100 से ज़्यादा लंबित मैसेज की सीमा पार हो गई है. इसे कम करने के लिए, पक्का करें कि आपका ऐप्लिकेशन onDeletedMessages, और छोटे हो जाने वाले मैसेज भेजें. इसी तरह, droppedDeviceInactive, रजिस्ट्रेशन टोकन अपडेट करने का सिग्नल हो सकता है: पुराने टोकन हटाने और विषयों से उनकी सदस्यता छोड़ने की जानकारी देने वाला सर्वर. यहां जाएं: FCM रजिस्ट्रेशन टोकन मैनेज करना में इन सबसे सही तरीकों के बारे में जानें.

डिलीवरी की परफ़ॉर्मेंस का प्रतिशत

DeliveryPerformancePercents में मौजूद फ़ील्ड ऑब्जेक्ट उन मैसेज की जानकारी देता है जो डिलीवर हो गए हैं. यह "क्या मेरे मैसेज भेजने में देरी हुई?" जैसे सवालों के जवाब दे सकते हैं. और "मैसेज भेजने में देरी क्यों हो रही है?" उदाहरण के लिए, delayedMessageThrottled से साफ़ तौर पर पता चलेगा कि आपने हर डिवाइस के लिए तय ज़्यादा से ज़्यादा सीमाएं, और जिस दर से आप संदेश भेज रहे हैं उसे समायोजित करना चाहिए.

मैसेज इनसाइट का प्रतिशत

यह ऑब्जेक्ट, भेजे जाने वाले सभी मैसेज के बारे में ज़्यादा जानकारी देता है. कॉन्टेंट बनाने priorityLowered फ़ील्ड स्वीकार किए गए मैसेज का प्रतिशत दिखाता है की प्राथमिकता HIGH से घटाकर NORMAL कर दी गई. अगर यह वैल्यू ज़्यादा है, तो ज़्यादा प्राथमिकता वाले कम मैसेज भेजें या पक्का करें कि ज़्यादा प्राथमिकता वाला मैसेज भेजे जाने पर, आपको हमेशा सूचना दिखेगी. ज़्यादा जानकारी के लिए, मैसेज की प्राथमिकता से जुड़े हमारे दस्तावेज़ देखें

यह डेटा, BigQuery में एक्सपोर्ट किए गए डेटा से कैसे अलग है?

BigQuery Export में मैसेज स्वीकार करने के बारे में अलग-अलग मैसेज लॉग मिलते हैं. डिवाइस पर, SDK टूल में FCM बैकएंड और मैसेज डिलीवरी (चरण 2 और 4 के FCM आर्किटेक्चर देखें). इस डेटा की मदद से, यह पक्का किया जा सकता है कि अलग-अलग मैसेज स्वीकार किया जाता है और डिलीवर किया जाता है. इसके बारे में और पढ़ें BigQuery डेटा एक्सपोर्ट विकल्प को चुनें.

इसके उलट, Firebase Cloud Messaging Data API, इकट्ठा की गई जानकारी देता है इस बारे में जानकारी कि विशिष्ट रूप से Android ट्रांसपोर्ट लेयर (या चरण 3 FCM आर्किटेक्चर देखें). यह डेटा विशिष्ट रूप से FCM बैकएंड से Android SDK को भेजे गए संदेश. यह खास तौर पर इन कामों के लिए फ़ायदेमंद है इस रिपोर्ट से यह पता चलता है कि इस दौरान आपके मैसेज क्यों डिलीवर नहीं हुए या देरी से मैसेज क्यों डिलीवर हुए.

कुछ मामलों में, हो सकता है कि दोनों डेटा सेट सटीक रूप से मेल न खाएं इन वजहों से:

  • एग्रीगेट की गई मेट्रिक में सभी मैसेज के सिर्फ़ कुछ हिस्से का सैंपल दिया जाता है
  • एग्रीगेट की गई मेट्रिक को राउंड ऑफ़ किया जाता है
  • हम ऐसी मेट्रिक को निजता थ्रेशोल्ड से कम नहीं करते
  • मैसेज के नतीजों का कुछ हिस्सा मौजूद नहीं है, क्योंकि हम जिन तरीकों से मैसेज को ऑप्टिमाइज़ करते हैं बड़ी संख्या में होने वाले ट्रैफ़िक को मैनेज किया जा सकता है.

एपीआई की सीमाएं

कुल डेटा टाइमलाइन

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

डेटा कवरेज

Firebase Cloud Messaging Data API से मिली मेट्रिक का मकसद मैसेज डिलीवरी के व्यापक रुझानों के बारे में अहम जानकारी देते हैं. हालांकि, उनके पास इस तरह मैसेज की सभी स्थितियों की पूरी जानकारी दें. इन स्थितियों में ऐसा हो सकता है: नतीजों को मेट्रिक में शामिल नहीं किया गया है.

जिन मैसेज की समयसीमा खत्म हो चुकी है

अगर टाइम टू लिव (टीटीएल) की समयसीमा खत्म हो जाती है दिए गए लॉग की तारीख के बाद, मैसेज की गिनती इस तारीख को droppedTtlExpired.

इनऐक्टिव डिवाइसों के लिए मैसेज

हो सकता है कि इनऐक्टिव डिवाइसों पर भेजे गए मैसेज, डेटासेट में दिखें या नहीं दिखें डेटा पाथ पर निर्भर करता है. इसकी वजह से, उपयोगकर्ताओं की गिनती droppedDeviceInactive और pending फ़ील्ड.

डिवाइसों पर उपयोगकर्ता की पसंद की कुछ सेटिंग के मैसेज

ऐसे उपयोगकर्ता जिन्होंने इन पर इस्तेमाल और गड़बड़ी की जानकारी इकट्ठा करने की सुविधा बंद कर दी है हालाँकि, इन डिवाइसों के मैसेज हमारी गिनती में शामिल नहीं होंगे, प्राथमिकताएँ चुनी जा सकती हैं.

दशमलव वाली संख्या और कम से कम वैल्यू

FCM जान-बूझकर राउंड ऑफ़ करता है और उन संख्याओं को बाहर रखता है जहां वॉल्यूम ज़्यादा नहीं होता बहुत हो गया.

BigQuery का डेटा एक्सपोर्ट करना

आप अपना मैसेज डेटा यहां एक्सपोर्ट कर सकते हैं: BigQuery का इस्तेमाल किया जा सकता है. BigQuery आपको BigQuery एसक्यूएल का इस्तेमाल करके डेटा का विश्लेषण करने, उसे किसी दूसरे क्लाउड पर एक्सपोर्ट करने की सुविधा मिलती है या अपने कस्टम एमएल मॉडल के लिए डेटा का इस्तेमाल करें. BigQuery में एक्सपोर्ट इसमें मैसेज के लिए उपलब्ध सारा डेटा शामिल होता है, भले ही मैसेज किस तरह का है या एपीआई के ज़रिए मैसेज भेजा गया है या नोटिफ़िकेशन कंपोज़र.

कम से कम नीचे दिए गए FCM SDK टूल वाले डिवाइस पर भेजे गए मैसेज के लिए वर्शन है, तो आपके पास मैसेज एक्सपोर्ट करने की सुविधा चालू करने का एक और विकल्प है आपके ऐप्स का वितरण डेटा:

  • Android 20.1.0 या इसके बाद वाला वर्शन होना चाहिए.
  • iOS 8.6.0 या इसके बाद वाला वर्शन
  • Firebase वेब SDK टूल 9.0.0 या इसके बाद का वर्शन

डेटा एक्सपोर्ट करने की सुविधा चालू करने के बारे में जानकारी नीचे देखें Android और iOS.

शुरू करने के लिए, अपने प्रोजेक्ट को BigQuery से लिंक करें:

  1. नीचे से कोई एक विकल्प चुनें:

    • कोई भी शामिल हो सकता है सूचनाएं बनाने वाला टूल, इसके बाद, पेज में सबसे नीचे मौजूद BigQuery ऐक्सेस करें पर क्लिक करें.

    • इंटिग्रेशन Firebase कंसोल के पेज पर जाएं, तो BigQuery में लिंक करें पर क्लिक करें कार्ड.

      इस पेज पर सभी के लिए FCM एक्सपोर्ट के विकल्प दिखाए जाते हैं प्रोजेक्ट में FCM-चालू ऐप्लिकेशन.

  2. BigQuery को चालू करने के लिए, स्क्रीन पर दिए गए निर्देशों का पालन करें.

Firebase को BigQuery से लिंक करना लेख पढ़ें हमारा वीडियो देखें.

जब क्लाउड से मैसेज के लिए BigQuery Export चालू किया जाता है, तो:

  • Firebase आपके डेटा को BigQuery में एक्सपोर्ट करता है. नोट जोड़ें एक्सपोर्ट के लिए डेटा को लागू होने में 48 घंटे लग सकते हैं पूरा हुआ.

  • डेटासेट बनाने के बाद, बदला नहीं जा सकता, लेकिन डेटासेट को किसी दूसरी जगह पर कॉपी किया जा सकता है या मैन्युअल तौर पर, डेटासेट को किसी दूसरी जगह पर ले जाएं (फिर से बनाएं). सीखने में ज़्यादा जानने के लिए, डेटासेट की जगह बदलना देखें.

  • Firebase, आपके Firebase प्रोजेक्ट से आपके डेटा को नियमित तौर पर सिंक करता है, ताकि BigQuery. ये डेली एक्सपोर्ट, पैसिफ़िक समय के हिसाब से सुबह 4:00 बजे से शुरू होते हैं और आम तौर पर 24 घंटे में खत्म हो जाती है.

  • डिफ़ॉल्ट रूप से, आपके प्रोजेक्ट के सभी ऐप्लिकेशन BigQuery और किसी जिन ऐप्लिकेशन को बाद में प्रोजेक्ट में जोड़ा जाता है वे अपने-आप लिंक हो जाते हैं BigQuery. आप मैनेज करें कि कौनसे ऐप्लिकेशन डेटा भेजेंगे.

BigQuery Export बंद करने के लिए, अपना प्रोजेक्ट अनलिंक करना देखें.

मैसेज डिलीवरी का डेटा एक्सपोर्ट करने की सुविधा चालू करें

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

सूचना की सूचनाओं के लिए, डिलीवरी से जुड़ा डेटा एक्सपोर्ट करने की सुविधा चालू करें

ऐसा इसलिए, क्योंकि सिर्फ़ सूचना की सूचनाओं से ही सूचना देने वाले ऐप्लिकेशन को ट्रिगर किया जा सकता है एक्सटेंशन नहीं है, तो आपको अपने ऐप्लिकेशन और कॉल में नोटिफ़िकेशन सेवा एक्सटेंशन जोड़ना होगा इस एपीआई को सर्विस एक्सटेंशन में डालें, ताकि डिसप्ले मैसेज ट्रैकिंग चालू हो सके. यहां जाएं: नई डिलीवर की गई सूचनाओं में कॉन्टेंट में बदलाव करने के बारे में Apple का दस्तावेज़.

मिलने वाली हर सूचना के लिए, यह कॉल किया जाना चाहिए:

Swift

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

Objective-C

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

अगर आपको एचटीटीपी v1 एपीआई का इस्तेमाल करके, ईमेल भेजने के अनुरोध करने हैं, तो mutable-content = 1 को इसमें तय करें पेलोड ऑब्जेक्ट.

बैकग्राउंड में मिलने वाली सूचनाओं के लिए, डिलीवरी से जुड़ा डेटा एक्सपोर्ट करने की सुविधा चालू करें

ऐप्लिकेशन के फ़ोरग्राउंड में या बैकग्राउंड में होने पर मिलने वाले बैकग्राउंड मैसेज के लिए, आपके पास मुख्य ऐप्लिकेशन के डेटा मैसेज हैंडलर में, data Export API को कॉल करने की सुविधा होती है. आपको मिलने वाली हर सूचना के लिए यह कॉल करना ज़रूरी है:

Swift

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

Objective-C

// 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 में कौनसा डेटा एक्सपोर्ट किया जाता है?

ध्यान दें कि पुराने टोकन या बंद रजिस्ट्रेशन को टारगेट करने पर, ये आंकड़े.

एक्सपोर्ट की गई टेबल का स्कीमा यह है:

_हिस्सा का समय टाइमस्टैंप बदली हुई पहचान वाले कॉलम में दिन की शुरुआत के लिए टाइमस्टैंप (यूटीसी में) होता है जिसमें डेटा लोड हो गया था. YYYYMMDD पार्टीशन के लिए, यह सूडो कॉलम इसमें TIMESTAMP('YYYY-MM-DD') मान शामिल होता है.
event_timestamp टाइमस्टैंप इवेंट का वह टाइमस्टैंप जो सर्वर ने रिकॉर्ड किया है
Project_number पूर्णांक प्रोजेक्ट नंबर, उस प्रोजेक्ट की पहचान करता है जिसने मैसेज भेजा है
message_id स्ट्रिंग मैसेज आईडी से मैसेज की पहचान होती है. ऐप्लिकेशन आईडी से और है, तो हो सकता है कि कुछ मामलों में, मैसेज आईडी पूरी दुनिया में अलग-अलग न हो.
इंस्टेंस_आईडी स्ट्रिंग उस ऐप्लिकेशन का यूनीक आईडी जिस पर मैसेज भेजा गया है (उपलब्ध होने पर). यह काम किया जा सकता है कोई इंस्टेंस आईडी या Firebase इंस्टॉलेशन आईडी.
मैसेज का टाइप स्ट्रिंग मैसेज किस तरह का है. यह सूचना वाले मैसेज या डेटा मैसेज हो सकता है. विषय का इस्तेमाल किसी विषय या कैंपेन के भेजे गए मूल मैसेज की पहचान के लिए किया जाता है; बाद वाला मैसेज या तो एक सूचना या डेटा मैसेज है.
SDK_प्लैटफ़ॉर्म स्ट्रिंग मैसेज पाने वाले ऐप्लिकेशन का प्लैटफ़ॉर्म
app_name स्ट्रिंग Android ऐप्लिकेशन के पैकेज का नाम या iOS ऐप्लिकेशन के बंडल आईडी
छोटा करने की कुंजी स्ट्रिंग 'छोटा करें' बटन, मैसेज के उस ग्रुप की पहचान करता है जिसे छोटा किया जा सकता है. जब कोई डिवाइस कनेक्ट नहीं होता है, तो दिए गए संक्षिप्त विवरण के साथ केवल अंतिम संदेश कुंजी को आखिर में डिलीवरी के लिए जोड़ दिया गया है
प्राथमिकता पूर्णांक मैसेज की प्राथमिकता. मान्य मान "सामान्य" हैं और "ज़्यादा". iOS पर, ये एपीएन की प्राथमिकता 5 और 10 के मुताबिक हैं
टीटीएल पूर्णांक इस पैरामीटर से तय होता है कि मैसेज को कितने समय तक (सेकंड में) रखा जाना चाहिए डिवाइस के ऑफ़लाइन होने पर, FCM स्टोरेज में
topic स्ट्रिंग उस विषय का नाम जिस पर मैसेज भेजा गया था (लागू होने पर)
बल्क_आईडी पूर्णांक बल्क आईडी, संबंधित मैसेज के एक ग्रुप की पहचान करता है, जैसे कि किसी विषय पर भेजो
इवेंट स्ट्रिंग इवेंट किस तरह का है. आपको ये वैल्यू दिख सकती हैं:
  • MESSAGE_स्वीकार किया गया: मैसेज, FCM सर्वर को मिला और अनुरोध मान्य है;
  • MESSAGE_DELIVERED: मैसेज को ऐप्लिकेशन के FCM SDK टूल पर इस तारीख को डिलीवर कर दिया गया डिवाइस. डिफ़ॉल्ट रूप से, इस फ़ील्ड को लागू नहीं किया जाता है. इसे चालू करने के लिए, setDeliveryMetricsExportToBigQuery(boolean) में दिए गए निर्देश देखें.
  • MISSING_REGISTRATIONS: मौजूद न होने की वजह से अनुरोध अस्वीकार कर दिया गया रजिस्ट्रेशन;
  • UNAUTHORIZED_REGISTRATION: मैसेज को अस्वीकार कर दिया गया था, क्योंकि इसे भेजने वाले ने रजिस्ट्रेशन पर भेजने की अनुमति नहीं है;
  • MESSAGE_RECEIVED_INTERNAL_ERROR: उस समय एक अनिर्दिष्ट गड़बड़ी हुई मैसेज के अनुरोध को प्रोसेस करना;
  • MISMATCH_SENDER_ID: संदेश भेजने का अनुरोध भेजने वाले का आईडी, मैसेज भेजने वाले आईडी और मैसेज भेजने वाले के आईडी से मेल नहीं खाता आखिरी पॉइंट;
  • QUOTA_EXCEEDED: संदेश भेजने का अनुरोध इस कारण अस्वीकार कर दिया गया अपर्याप्त कोटा;
  • INVALID_REGISTRATION: संदेश भेजने का अनुरोध अमान्य रजिस्ट्रेशन;
  • INVALID_PACKAGE_NAME: संदेश भेजने का अनुरोध अमान्य पैकेज नाम;
  • INVALID_APNS_CREDENTIAL: मैसेज भेजने का अनुरोध इस वजह से अस्वीकार कर दिया गया अमान्य APNS सर्टिफ़िकेट;
  • INVALID_paraतम: संदेश भेजने का अनुरोध इस कारण से अस्वीकार कर दिया गया अमान्य पैरामीटर;
  • PAYLOAD_TOO_LARGE: संदेश भेजने का अनुरोध पेलोड, तय सीमा से ज़्यादा है;
  • AUTHENTICATION_ERROR: मैसेज भेजने का अनुरोध इस वजह से अस्वीकार कर दिया गया पुष्टि करने के दौरान हुई गड़बड़ी (मैसेज भेजने के लिए इस्तेमाल की गई एपीआई पासकोड की जांच करें);
  • INVALID_TTL: संदेश भेजने का अनुरोध किसी अमान्य वजह से अस्वीकार कर दिया गया था टीटीएल.
analytics_लेबल स्ट्रिंग HTTP v1 API के साथ, संदेश भेजते समय, एनालिटिक्स लेबल को सेट किया जा सकता है, ताकि आंकड़े जुटाने के लिए मैसेज

एक्सपोर्ट किए गए डेटा का इस्तेमाल करके क्या किया जा सकता है?

यहां दिए गए सेक्शन में, BigQuery में चलाई जा सकने वाली क्वेरी के उदाहरण दिए गए हैं एक्सपोर्ट किए गए FCM डेटा के साथ इस्तेमाल किया जा सकता है.

ऐप्लिकेशन से भेजे गए मैसेज की गिनती करना

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;