Google Analytics Data API के लिए कोटा मैनेज करना

मिन्हाज़ काज़ी, Google Analytics के डेवलपर एडवोकेट – फ़रवरी 2023

अगर Google Analytics Data API का इस्तेमाल करके ऐप्लिकेशन डेवलप किए जा रहे हैं, तो यह समझना ज़रूरी है कि एपीआई के लिए कोटा और सीमाएं कैसे काम करती हैं. अगर आपके ऐप्लिकेशन को अच्छी तरह से डिज़ाइन किया गया है, ताकि उपयोगकर्ताओं के कोटा की सीमाओं तक पहुंचने की संभावना कम हो. कुछ एपीआई को परफ़ॉर्मेंस देने वाली क्वेरी भी भेजी जाती हैं. यह काम कर सकता है अपने ऐप्लिकेशन की रिपोर्ट और डैशबोर्ड को तेज़ी से ऐक्सेस करने के साथ-साथ उपयोगकर्ता अनुभव को बेहतर बनाना. इस लेख में कोटा सिस्टम और सबसे सही तरीके के बारे में बताया गया है यहां आपको Google Analytics Data API को लागू करने के तरीकों के बारे में ज़्यादा जानकारी मिलेगी.

Google Analytics Data API के लिए कोटा सिस्टम को समझना

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

Data API के जिस तरीके का इस्तेमाल किया जा रहा है उसके आधार पर, तीन अलग-अलग कोटा उपलब्ध होते हैं श्रेणियां:

  • रीयलटाइम (runRealtimeReport के लिए)
  • फ़नल (runFunnelReport के लिए)
  • Core (अन्य सभी तरीकों के लिए)

साथ ही, Data API तरीके इनके लिए कई बकेट की जांच करेगा कोटा टोकन:

  1. हर प्रॉपर्टी के लिए हर दिन
  2. हर प्रॉपर्टी के लिए हर घंटे
  3. हर प्रोजेक्ट के लिए, हर प्रॉपर्टी के लिए हर घंटे
  4. हर प्रॉपर्टी के लिए एक साथ किए जाने वाले अनुरोध
  5. हर प्रॉपर्टी के लिए, हर घंटे सर्वर की गड़बड़ियां

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

हर प्रॉपर्टी के लिए हर घंटे का कोटा यह पक्का करता है कि एक या उससे ज़्यादा उपयोगकर्ता आपके ऐप्लिकेशन के दूसरे उपयोगकर्ताओं को प्रभावित नहीं करेंगे. यहां, प्रोजेक्ट आपके ऐप्लिकेशन के GCP प्रोजेक्ट से जुड़ा होता है. हर प्रॉपर्टी के लिए हर घंटे का कोटा आम तौर पर, हर प्रोजेक्ट के लिए हर घंटे के कोटा का चार गुना होता है. आखिर में उपयोगकर्ताओं के लिए, पहले से कम से कम चार अलग-अलग प्रोजेक्ट को किसी प्रॉपर्टी को ऐक्सेस करना ज़रूरी है हर प्रॉपर्टी के लिए हर घंटे का कोटा खत्म हो सकता है. दोनों पर कोटा लागू करने का तरीका प्रोजेक्ट और प्रॉपर्टी लेवल से यह पक्का होता है कि कोटा से जुड़ी समस्याएं एक ही प्रॉपर्टी के साथ-साथ उन दूसरी प्रॉपर्टी पर भी असर नहीं पड़ेगा जिन्हें आपका ऐप्लिकेशन ऐक्सेस कर रहा है.

सर्वर की गड़बड़ियों का कोटा, 500 या इससे ज़्यादा के साथ एपीआई से मिले रिस्पॉन्स के बारे में बताता है 503 कोड. यदि आपका ऐप्लिकेशन बहुत सी गड़बड़ियां जनरेट करता है प्रॉपर्टी ऐक्सेस करने से हर प्रोजेक्ट के लिए सर्वर की गड़बड़ियां खत्म हो जाएंगी प्रॉपर्टी प्रति घंटे का कोटा.

सभी कोटा टोकन, बताए गए इंटरवल में तय सीमा के अंदर अपने-आप भर जाते हैं. इससे संदर्भ लें कोटा की अपडेट की गई जानकारी के लिए, Google Analytics Data API कोटा. उदाहरण के लिए, मुख्य तरीकों के लिए, हर प्रोजेक्ट के लिए हर घंटे के हिसाब से 1,250 कोटा टोकन मिलते हैं बकेट. यह मानते हुए कि आपके ऐप्लिकेशन के एक औसत अनुरोध में 10 कोटे की खपत होती है टोकन, आपका ऐप्लिकेशन किसी भी Analytics के लिए स्टैंडर्ड प्रॉपर्टी और उस राशि का 10 गुना (1250 Core अनुरोध) 360 प्रॉपर्टी का इस्तेमाल करें. टोकन की ऊंची सीमा, सबसे अहम टोकन में से एक है Analytics 360 प्रॉपर्टी के फ़ायदे.

पहले तीन बकेट के लिए टोकन का इस्तेमाल, क्या जटिलता पर निर्भर करता है कोई अनुरोध किया गया है, तो अनुरोध करने से पहले, टोकन के सटीक इस्तेमाल का अनुमान लगाना मुश्किल होता है लागू करता है. आम तौर पर, इन सभी चीज़ों से अनुरोध की जटिलता बढ़ जाएगी. इसलिए, इससे टोकन का इस्तेमाल किया जाता है:

  • ज़्यादा डाइमेंशन का अनुरोध किया जा रहा है
  • ज़्यादा समयसीमा के लिए क्वेरी की जा रही है
  • ज़्यादा एलिमेंट वाले डाइमेंशन शामिल किए जा रहे हैं
  • ऐसी प्रॉपर्टी के लिए क्वेरी करना जिसमें इवेंट की संख्या ज़्यादा है

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

कोटा के इस्तेमाल की निगरानी करना

कोटा के इस्तेमाल पर नज़र रखने और अपने असली उपयोगकर्ता को यह जानकारी देने के लिए, "returnPropertyQuota": true को एपीआई अनुरोध के मुख्य हिस्से में भेजा गया. इससे PropertyQuota ऑब्जेक्ट और एपीआई से मिले जवाब के साथ. PropertyQuota ऑब्जेक्ट इस्तेमाल की रकम और बाकी पांचों कोटा के लिए बची हुई रकम शामिल होगी बकेट. अनुरोध का मुख्य हिस्सा और जवाब का उदाहरण यहां दिया गया है:

अनुरोध करें

{
  "dimensions": [
    {
      "name": "medium"
    }
  ],
  "metrics": [
    {
      "name": "activeUsers"
    }
  ],
  "dateRanges": [
    {
      "startDate": "yesterday",
      "endDate": "yesterday"
    }
  ],
  "returnPropertyQuota": true
}

जवाब

{
  "dimensionHeaders": [
    {
      "name": "medium"
    }
  ],
  "metricHeaders": [
    {
      "name": "activeUsers",
      "type": "TYPE_INTEGER"
    }
  ],
  ...
  
  "propertyQuota": {
    "tokensPerDay": {
      "consumed": 1,
      "remaining": 24997
    },
    "tokensPerHour": {
      "consumed": 1,
      "remaining": 4997
    },
    "concurrentRequests": {
      "consumed": 0,
      "remaining": 10
    },
    "serverErrorsPerProjectPerHour": {
      "consumed": 0,
      "remaining": 10
    },
    "potentiallyThresholdedRequestsPerHour": {
      "consumed": 0,
      "remaining": 120
    },
    "tokensPerProjectPerHour": {
      "consumed": 1,
      "remaining": 1247
    }
  },
  
  "kind": "analyticsData#runReport",
  ...
}

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

कोटा मैनेजमेंट

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

सबसे सही तरीके

अपने ऐप्लिकेशन का कोटा उपयोग कम करने के लिए मोटे तौर पर दो तरीके हैं:

  • कम एपीआई अनुरोध भेजे जा रहे हैं
  • कम मुश्किल एपीआई अनुरोध भेजे जा रहे हैं

इन दो सिद्धांतों को ध्यान में रखते हुए, इन तरीकों को लागू किया जा सकता है:

  • कैश मेमोरी में सेव करना: कैश मेमोरी में सेव की जाने वाली लेयर लागू करने से, उपयोगिता और आपके ऐप्लिकेशन के लिए कोटा मैनेजमेंट. Google Analytics अपने-आप कैश मेमोरी में सेव होगा आपके एपीआई अनुरोधों के लिए, बार-बार किए जाने वाले अनुरोधों पर अब भी कोटा टोकन लागू होंगे. इन्होंने बदलाव किया है को कैश मेमोरी में सेव करने में, एपीआई रिस्पॉन्स को कैश मेमोरी में सेव करता है. इससे, अनुरोध. उदाहरण के लिए, स्टैंडर्ड प्रॉपर्टी के लिए इंट्रा-डे डेटा में 4 घंटे या उससे ज़्यादा की कैश समयसीमा खत्म होने वाली है. Google के लिए डेटा फ़्रेशनेस यानी डेटा अपडेट होने की फ़्रीक्वेंसी Analytics.
  • अनुरोध मर्ज करना: कई एपीआई अनुरोधों को एक साथ मर्ज करके देखें. उदाहरण के लिए, दो दिनों की समयसीमा में डेटा के लिए पांच अनुरोध, तीन बार इस्तेमाल किए जा सकते हैं कोटा टोकन, 10 दिन की समयसीमा के लिए 1 अनुरोध की तुलना में ज़्यादा होते हैं. अगर आपके पास ऐसे कई अनुरोध हैं जो सिर्फ़ एक डाइमेंशन के हिसाब से बदलते हैं. इन अनुरोधों को मर्ज करें एक ही अनुरोध में शामिल कर सकते हैं.
  • अनुरोधों को आसान बनाना: अपने अनुरोधों को कम से कम डेटा तक सीमित रखें आपके ऐप्लिकेशन और उपयोगकर्ता के लिए ज़रूरी है. पंक्तियों/कॉलम की बड़ी संख्या या जटिल फ़िल्टर मानदंड की वजह से ज़्यादा कोटा टोकन इस्तेमाल होंगे. लंबी तारीख सीमाएं आम तौर पर, ज़्यादा महंगे होते हैं. उदाहरण के लिए, तारीख की सीमा को 28 दिन से बदलकर 365 करना दिन, कोटा टोकन से तीन गुना ज़्यादा हो सकते हैं). इसके अलावा, जब भी मुमकिन हो, तब एलिमेंट की कम संख्या वाले डाइमेंशन. जैसे, dateHour का अनुरोध करें dateHourMinute के बजाय).
  • limit का इस्तेमाल: एपीआई में limit को बदलना पंक्तियों की संख्या कम करने के अनुरोध का असर, कोटा टोकन की खपत हुई. उदाहरण के लिए, 10 हज़ार लाइनों की सीमा वाले पांच अनुरोध ये काम कर सकते हैं 50 हज़ार की सीमा वाले 1 अनुरोध की तुलना में, पांच गुना कोटा टोकन का इस्तेमाल करते हैं.
  • सही तरीके की कैटगरी का इस्तेमाल करना: जैसा कि ऊपर बताया गया है, कोटे की सीमाएं ये तीन तरीके कैटगरी में बंटे होते हैं. दाईं ओर के लिए सही विधि का उपयोग करना इस्तेमाल के उदाहरण से, अन्य कैटगरी के लिए भी कोटा बचाया जा सकता है. उदाहरण के लिए, मुख्य तरीकों से मिले डेटा का इस्तेमाल करके, अपने ऐप्लिकेशन में आपका फ़नल बनाना, फ़नल बनाने के लिए, runFunnelReport तरीके का इस्तेमाल करें.
  • डिफ़ॉल्ट सेटिंग अपडेट करना: अपने इसलिए, ऐसा हो सकता है कि लोग आपकी ओर से दिए गए डिफ़ॉल्ट विकल्पों को अपडेट न करें लागू करने के लिए ऑप्टिमाइज़ किया जाता है और उन्हें केवल रनटाइम के समय बदला जाता है. अगर आपके ऐप्लिकेशन में तारीख की डिफ़ॉल्ट सीमा 365 दिनों की होती है और उपयोगकर्ता आम तौर पर 28 दिनों की रिपोर्ट देखता है, इस वजह से, नियमित तौर पर ज़रूरत से ज़्यादा कोटा खर्च हो जाएगा. डिफ़ॉल्ट सेटिंग में, रेंज और चुने गए विकल्पों को सीमित करें. इसके बाद, उपयोगकर्ता अपने इस्तेमाल के उदाहरणों के लिए सबसे सही सेटिंग चुनते हैं. या कुछ मामलों में, यह भी तय किया जा सकता है कि उपयोगकर्ता किन डिफ़ॉल्ट सेटिंग को बदल सकते हैं.
  • अनुरोधों की सूची बनाना और लेज़ी लोडिंग: एक साथ चल रहे इवेंट का ध्यान रखें हर प्रॉपर्टी के लिए अनुरोधों की संख्या टोकन की सीमा. आपका ऐप्लिकेशन भेजा नहीं जाना चाहिए बहुत सारे अनुरोध हैं. अगर आपके ऐप्लिकेशन में बड़ी संख्या में बड़ी संख्या में एपीआई अनुरोधों को पूरा करने के लिए, यूज़र इंटरफ़ेस (यूआई) एलिमेंट का इस्तेमाल किया गया है. यूज़र इंटरफ़ेस (यूआई) पर पेजों को क्रम में लगाना, लेज़ी लोडिंग, और अनुरोधों की संख्या को एक्सपोनेन्शियल के साथ लाइन में रखना बैकऑफ़. तेज़ी से काम करने के लिए, returnPropertyQuota तरीका इस्तेमाल करें अपने ऐप्लिकेशन के हर प्रॉपर्टी से एक साथ अनुरोध टोकन के इस्तेमाल पर नज़र रखें.

उपयोगकर्ता अनुभव और उनकी उम्मीदें मैनेज करना

  • टोकन के ज़्यादा संभावित इस्तेमाल वाली क्वेरी चलाने से पहले, उपयोगकर्ता को सुझाव दें. उदाहरण के लिए, ज़्यादा एलिमेंट वाले डाइमेंशन या बड़ी समयसीमा में, बड़ी संख्या में टोकन का इस्तेमाल किया जा सकता है. चेतावनी देना और ऐसी क्वेरी के लिए पुष्टि करने वाला प्रॉम्प्ट, उपयोगकर्ताओं को रिपोर्ट में गैर-ज़रूरी बदलावों को बढ़ावा दिया है. साथ ही, इनकी मदद से क्वेरी.
  • कस्टमाइज़ की गई रिपोर्टिंग सुविधाओं के लिए, उपयोगकर्ताओं को समझने का तरीका बताएं अपनी रिपोर्ट में मौजूद हर एलिमेंट के इस्तेमाल से जुड़ी क्वेरी. उदाहरण के लिए, आपके पास डीबग व्यू, जिसमें हर रिपोर्ट एलिमेंट के लिए कोटा टोकन के इस्तेमाल की जानकारी दी गई है.
  • किसी खास तरह के कोटे की गड़बड़ी पर सुझाव दें और उपयोगकर्ता बताएं कार्रवाई.
  • Google Analytics 360 प्रॉपर्टी की तुलना में, Google Analytics 360 प्रॉपर्टी के लिए तय कोटे की सीमा 5 से 10 गुना होती है की मदद से स्टैंडर्ड प्रॉपर्टी में, Google Analytics 360 का इस्तेमाल करके ज़्यादा सुविधाएं मिलती हैं, तो प्रॉपर्टी के लिए.

एपीआई कोटा की डिफ़ॉल्ट सीमाओं से ज़्यादा होने पर, इसके लिए Data API उपलब्ध नहीं है Google Analytics 4. Google Analytics 360, उपयोगकर्ताओं के लिए Google Analytics 4 प्रॉपर्टी. यदि आपके उपयोगकर्ता कोटा की सीमा पूरी कर चुके हैं तो सबसे सही तरीकों को लागू करने के बाद, उन्हें अपने कारोबार को आगे बढ़ाने प्रॉपर्टी को Analytics 360 प्रॉपर्टी में बदलें. उपयोगकर्ताओं के लिए दूसरा विकल्प यह है कि वे Google Analytics BigQuery Export. इससे उपयोगकर्ता, इवेंट लेवल का डेटा एक्सपोर्ट कर पाएंगे BigQuery को जोड़ सकते हैं और अपना विश्लेषण चला सकते हैं.

Data API कोटा के बारे में ज़्यादा सवाल पूछने के लिए, GA Discord पर जाएं या Stack Overflow पर पूछें. अगर आपको डेटा से जुड़ी किसी सुविधा के लिए अनुरोध करना है एपीआई के साथ, आप उन्हें हमारे समस्या ट्रैकर पर पोस्ट कर सकते हैं.