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

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

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

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

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

वर्कबॉक्स 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 में ऑनलाइन बनाम ऑफ़लाइन इंटरैक्शन के लिए कोई बिल्ट-इन डाइमेंशन नहीं होता है. हालांकि, इसी मकसद के लिए कस्टम डाइमेंशन सुविधा का इस्तेमाल करके, अपना डाइमेंशन बनाया जा सकता है.

सर्विस वर्कर ने वर्कबॉक्स Google Analytics के साथ कस्टम डाइमेंशन का इस्तेमाल करके जिन अनुरोधों को फिर से चलाया है उन्हें ट्रैक करने के लिए, यह तरीका अपनाएं:

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

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

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

    उदाहरण के लिए, अगर आपने Google Analytics इंस्टॉल करने के लिए डिफ़ॉल्ट analytics.js ट्रैकिंग स्निपेट का इस्तेमाल किया है, तो उन सभी अनुरोधों के लिए जिन्हें सर्विस वर्कर ने फिर से नहीं चलाया है, अपने "नेटवर्क स्टेटस" कस्टम डाइमेंशन के लिए 'online' की डिफ़ॉल्ट वैल्यू का इस्तेमाल करने के लिए ga('set', 'dimension1', '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. qt पैरामीटर की वैल्यू पाने के लिए, hitFilter विकल्प का इस्तेमाल करें और इसे 1,000 से भाग दें. इसे सेकंड में बदलें. इसके बाद, उस वैल्यू को नई बनाई गई मेट्रिक के इंडेक्स के साथ पैरामीटर के तौर पर सेट करें. अगर यह आपकी पहली कस्टम मेट्रिक है, तो पैरामीटर का नाम '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)=> {...}

    • params

      URLSearchParams

तरीके

initialize()

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

पैरामीटर