वर्कबॉक्स-Google-Analytics

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

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

Workbox Google Analytics, Google Analytics उपयोगकर्ताओं के लिए इस समस्या को हल कर रहा है पूरे न हो पाने वाले अनुरोधों का पता लगाने में सर्विस वर्कर की क्षमता का इस्तेमाल करना.

Google Analytics को मेज़रमेंट प्रोटोकॉल पर एचटीटीपी अनुरोधों के ज़रिए सारा डेटा मिलता है. इसका मतलब है कि Service Worker स्क्रिप्ट, मेज़रमेंट प्रोटोकॉल पर भेजे गए अनुरोधों के पूरा न होने का पता लगाने के लिए, फ़ेच हैंडलर जोड़ सकती है. यह इन अनुरोधों को IndexedDB में सेव कर सकता है. इसके बाद, इंटरनेट कनेक्शन वापस आने पर, इन अनुरोधों को फिर से भेजा जा सकता है.

Workbox Google Analytics ठीक यही करता है. यह analytics.js और gtag.js स्क्रिप्ट को कैश मेमोरी में सेव करने के लिए, फ़ेच हैंडल भी जोड़ता है, ताकि उन्हें ऑफ़लाइन भी चलाया जा सके. आखिर में, जब पूरे न होने वाले अनुरोधों को फिर से आज़माया जाता है, तो Workbox Google Analytics, अनुरोध के पेलोड में qt को अपने-आप सेट (या अपडेट) भी करता है. इससे यह पक्का होता है कि Google Analytics में टाइमस्टैंप, उपयोगकर्ता के मूल इंटरैक्शन का समय दिखाते हैं.

Workbox Google Analytics को चालू करना

Workbox Google Analytics को चालू करने के लिए, initialize() तरीके को कॉल करें:

import * as googleAnalytics from 'workbox-google-analytics';

googleAnalytics.initialize();

Google Analytics को भेजे गए अनुरोधों को सूची में जोड़ने और उन अनुरोधों को फिर से भेजने के लिए, सिर्फ़ इस कोड की ज़रूरत होती है जो पूरा नहीं हो पाए. साथ ही, यह Google Analytics को ऑफ़लाइन काम करने का सबसे आसान तरीका है.

हालांकि, अगर सिर्फ़ ऊपर दिए गए कोड का इस्तेमाल किया जाता है, तो फिर से किए गए अनुरोधों और पहली बार किए गए अनुरोधों में कोई अंतर नहीं होता. इसका मतलब है कि आपको ऑफ़लाइन उपयोगकर्ताओं के सभी इंटरैक्शन का डेटा मिलेगा. हालांकि, यह पता नहीं चल पाएगा कि उपयोगकर्ता के ऑफ़लाइन होने के दौरान कौनसे इंटरैक्शन हुए.

इस समस्या का समाधान करने के लिए, आप कॉन्फ़िगरेशन विकल्पों में से किसी एक का उपयोग कर सकते हैं में भेजे जाने वाले डेटा को संशोधित या व्याख्या करने के लिए नीचे अनुरोध का फिर से प्रयास किया गया.

यह तय करना कि कौनसा डेटा भेजा जाए

अगर आपको ऐसे अनुरोधों को अलग करना है जिनकी दोबारा कोशिश की जा रही है और जिनका दोबारा कोशिश नहीं किया गया अनुरोध है, तो आप parameterOverrides या hitFilter में से कोई एक तय कर सकते हैं कॉन्फ़िगरेशन के विकल्प.

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

नीचे दिए गए उदाहरणों में, दोनों विकल्पों का इस्तेमाल करने का तरीका बताया गया है.

उदाहरण

ऑनलाइन बनाम ऑफ़लाइन इंटरैक्शन को ट्रैक करने के लिए कस्टम डाइमेंशन का इस्तेमाल करना

Google Analytics में ऑनलाइन बनाम ऑफ़लाइन के लिए कोई बिल्ट-इन डाइमेंशन नहीं है इंटरैक्शन. हालांकि, सटीक तौर पर इसके लिए अपना डाइमेंशन बनाया जा सकता है का मकसद जानने के लिए, कस्टम डाइमेंशन.

सर्विस वर्कर द्वारा फिर से चलाए गए अनुरोधों को ट्रैक करने के लिए कस्टम डाइमेंशन पर क्लिक करने के लिए, यह तरीका अपनाएं:

  1. Google Analytics में नया कस्टम डाइमेंशन बनाएं. इसे "नेटवर्क स्टेटस" जैसा कोई नाम दें और इसका दायरा "हिट" पर सेट करें, क्योंकि कोई भी इंटरैक्शन ऑफ़लाइन हो सकता है.
  2. नए डाइमेंशन के लिए असाइन किए गए इंडेक्स को नोट करें और पास इसे parameterOverrides कॉन्फ़िगरेशन विकल्प के पैरामीटर के नाम के तौर पर इस्तेमाल किया जाता है अपने Workbox Google Analytics कोड में

    उदाहरण के लिए, अगर यह आपका पहला कस्टम डाइमेंशन है, तो इसका इंडेक्स 1 होगा, और पैरामीटर का नाम cd1 होगा (अगर इंडेक्स 8 होता, तो यह होता cd8):

    import * as googleAnalytics from 'workbox-google-analytics';
    
    googleAnalytics.initialize({
      parameterOverrides: {
        cd1: 'offline',
      },
    });
    
  3. (ज़रूरी नहीं) parameterOverrides में दी गई वैल्यू सिर्फ़ लागू होती हैं ("ऑफ़लाइन") फिर से प्रयास करने के लिए, आप शायद डिफ़ॉल्ट मान भी सेट करना चाहें "ऑनलाइन" में से अन्य सभी अनुरोधों के लिए. हालांकि यह ज़रूरी नहीं है, लेकिन आपकी रिपोर्ट को आसानी से पढ़ा जा सकेगा.

    उदाहरण के लिए, अगर आपने इंस्टॉल करने के लिए डिफ़ॉल्ट analytics.js ट्रैकिंग स्निपेट का इस्तेमाल किया है Google Analytics, तो आप ga('set', 'dimension1', 'online') लाइन जोड़ सकते हैं अपने "नेटवर्क की स्थिति" के लिए 'online' की डिफ़ॉल्ट वैल्यू का इस्तेमाल करने के लिए कस्टम डाइमेंशन उन सभी अनुरोधों के लिए जिन्हें सर्विस वर्कर ने फिर से नहीं चलाया.

    <script>
      (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
      (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
      m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
      })(window,document,'script','https://www.google-analytics.com/analytics.js','ga');
    
      ga('create', 'UA-XXXXX-Y', 'auto');
    
      // Set default value of custom dimension 1 to 'online'
      ga('set', 'dimension1', 'online');
    
      ga('send', 'pageview');
    </script>
    

कस्टम मेट्रिक का इस्तेमाल करके, सूची में इंतज़ार करने में बिताए गए समय को ट्रैक करना

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

  1. Google Analytics में नई कस्टम मेट्रिक बनाएं. इसे "ऑफ़लाइन सूची का समय" जैसा कोई नाम दें, इसके "हिट" का दायरा, और इसका फ़ॉर्मैटिंग टाइप "समय" पर सेट कर दें (सेकंड में).
  2. मान पाने के लिए hitFilter विकल्प का इस्तेमाल करें qt पैरामीटर को 1000 से विभाजित करें (इसे सेकंड में बदलने के लिए). इसके बाद, उस वैल्यू को पैरामीटर के तौर पर सेट करें. साथ ही, नई मेट्रिक के इंडेक्स का इस्तेमाल करें. अगर यह आपके पहली कस्टम मेट्रिक, पैरामीटर का नाम 'cm1' होगा:

    import * as googleAnalytics from 'workbox-google-analytics';
    
    googleAnalytics.initialize({
      hitFilter: (params) => {
        const queueTimeInSeconds = Math.round(params.get('qt') / 1000);
        params.set('cm1', queueTimeInSeconds);
      },
    });
    

Workbox Google Analytics की जांच करना

Workbox Google Analytics, इवेंट को फिर से चलाने के लिए बैकग्राउंड सिंक का इस्तेमाल करता है. इसलिए, यह जिसे टेस्ट करना मुश्किल हो. यहां ज़्यादा जानें वर्कबॉक्स बैकग्राउंड सिंक की जांच करना.

टाइप

GoogleAnalyticsInitializeOptions

प्रॉपर्टी

  • cacheName

    स्ट्रिंग ज़रूरी नहीं

  • parameterOverrides

    ऑब्जेक्ट ज़रूरी नहीं

  • hitFilter

    अमान्य ज़रूरी नहीं

    hitFilter फ़ंक्शन इस तरह दिखता है:

    (params: URLSearchParams) => {...}

    • पैरामीटर

      URLSearchParams

तरीके

initialize()

workbox-google-analytics.initialize(
  options?: GoogleAnalyticsInitializeOptions,
)

पैरामीटर