कोटा ऑप्टिमाइज़ेशन

Display & Video 360 API का इस्तेमाल करने वाले किसी भी ऐप्लिकेशन के लिए, कोटा ऑप्टिमाइज़ेशन ज़रूरी है. कोटा के इस्तेमाल को ऑप्टिमाइज़ करने से, एपीआई अनुरोधों को आसानी से प्रोसेस किया जा सकता है. इससे परफ़ॉर्मेंस बेहतर होती है और तय की गई दर की सीमाओं को पार करने पर मिलने वाली गड़बड़ियों से बचा जा सकता है.

इस पेज पर, Display & Video 360 एपीआई के सामान्य सबसे सही तरीकों के बारे में बताया गया है. साथ ही, इसमें उन अतिरिक्त सुविधाओं के बारे में भी बताया गया है जिनसे कोटा के इस्तेमाल को कम करने में मदद मिल सकती है.

विज्ञापन देने वाली अलग-अलग कंपनियों के ख़िलाफ़ एक साथ अनुरोध करना

Display & Video 360 API के ज़्यादातर तरीके, यूआरएल में विज्ञापन देने वाले की जानकारी देते हैं. पूरे प्रोजेक्ट के लिए कोटा के अलावा, एक ही विज्ञापन देने वाले व्यक्ति या कंपनी के लिए कॉल करते समय, इन तरीकों के लिए "हर प्रोजेक्ट के लिए विज्ञापन देने वाले व्यक्ति या कंपनी के हिसाब से" रेट की सीमाएं लागू की जाती हैं.

इस कोटे को ऑप्टिमाइज़ करने के लिए, एक साथ किए जाने वाले अनुरोधों को उन लोगों या कंपनियों तक सीमित करें जो अलग-अलग विज्ञापन देने वाले हैं.

pageSize, filter, और orderBy पैरामीटर का इस्तेमाल करना

एक से ज़्यादा संसाधनों को वापस लाने के लिए, get के बजाय list का इस्तेमाल करें. पेज साइज़ की सीमाओं की वजह से, list कॉल अब भी बहुत ज़्यादा कोटा खर्च कर सकते हैं.

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

अगर आपको पूरी सूची के रिस्पॉन्स का सिर्फ़ एक सबसेट चाहिए, तो filter और orderBy पैरामीटर का फ़ायदा उठाकर, कोटा के इस्तेमाल को ऑप्टिमाइज़ किया जा सकता है.

filter पैरामीटर की मदद से, list कॉल से वापस लाए गए उन संसाधनों को सीमित किया जा सकता है जिनकी प्रॉपर्टी, दिए गए एक्सप्रेशन के मुताबिक हों. यह पैरामीटर, इन चीज़ों को वापस पाने के लिए मददगार होता है:

  • ऐसा संसाधन जिसका आईडी नहीं पता है, लेकिन प्रॉपर्टी के बारे में जानकारी है. किसी खास संसाधन को खोजने पर, खोज के नतीजों की सूची को, उस संसाधन की जानी-पहचानी प्रॉपर्टी के हिसाब से फ़िल्टर किया जा सकता है. उदाहरण के लिए, लाइन आइटम को किसी displayName के हिसाब से, क्रिएटिव को उम्मीद के मुताबिक creativeType के हिसाब से, और इन्वेंट्री सोर्स को काम के exchange के हिसाब से फ़िल्टर करना.
  • इससे जुड़े संसाधन. Display & Video 360 में मौजूद संसाधन अक्सर एक-दूसरे से जुड़े होते हैं. फ़िल्टर का इस्तेमाल करके, दिखाए गए संसाधनों को सिर्फ़ उन संसाधनों तक सीमित किया जा सकता है जिनका किसी दूसरे संसाधन से कोई खास संबंध है. उदाहरण के लिए, किसी खास campaignId के नीचे मौजूद सभी इंसर्शन ऑर्डर और किसी लाइन आइटम को असाइन किए गए सभी क्रिएटिव को वापस पाना.
  • सिर्फ़ ऐसे संसाधन जिनमें कार्रवाई की जा सकने वाली प्रॉपर्टी हैं. एपीआई की सुविधा की मदद से, संसाधनों की स्थिति आसानी से देखी जा सकती है और प्रोग्राम के हिसाब से कार्रवाई की जा सकती है. फ़िल्टर का इस्तेमाल करके, list कॉल का इस्तेमाल सिर्फ़ उन संसाधनों को पाने के लिए किया जा सकता है जहां किसी कार्रवाई की ज़रूरत है. उदाहरण के लिए, ऐसे सभी लाइन आइटम वापस पाना जो कार्रवाई के लिए उपलब्ध कोई lineItemWarningMessage दिखाते हैं, किसी तय तारीख और समय के बाद अपडेट किए गए सभी इंसर्शन ऑर्डर या ऐसे सभी क्रिएटिव जिनके लिए approvalStatus गड़बड़ी हुई है.

orderBy पैरामीटर की मदद से, खोजे गए संसाधनों को किसी खास प्रॉपर्टी के हिसाब से, बढ़ते या घटते क्रम में लगाया जा सकता है. orderBy का इस्तेमाल, किसी खास संसाधन को ढूंढने से पहले, उन पेजों की संख्या को सीमित करने के लिए किया जा सकता है जिन्हें देखना ज़रूरी है. ऐसा खास तौर पर, filter के साथ orderBy का इस्तेमाल करने पर किया जा सकता है. इसकी मदद से, संसाधन सूची की ऊपरी और निचली सीमाओं को आसानी से पाया जा सकता है. उदाहरण के लिए, updateTime के हिसाब से ऑर्डर करने पर, आपको विज्ञापन देने वाले के सबसे हाल ही में अपडेट किए गए लाइन आइटम या इंसर्शन ऑर्डर तुरंत मिल जाएंगे.

एक साथ कई और संसाधन के हिसाब से फ़ंक्शन इस्तेमाल करना

Display & Video 360 API, एक साथ कई और संसाधनों के लिए कई फ़ंक्शन उपलब्ध कराता है. ये फ़ंक्शन, एक ही अनुरोध से कई कार्रवाइयां करते हैं. इस तरह के फ़ंक्शन के उदाहरणों में ये शामिल हैं:

  • एक ही चैनल से जुड़ी साइटों में एक साथ कई बदलाव करना. चैनलों को हज़ारों साइटें असाइन की जा सकती हैं. किसी चैनल की साइट की सूची को मैनेज करने के लिए, अलग-अलग create या delete अनुरोध करने के बजाय, एक ही bulkEdit या replace अनुरोध का इस्तेमाल किया जा सकता है. इससे, कई साइटों को जोड़ा और हटाया जा सकता है या चैनल के पूरे कॉन्टेंट को बदला जा सकता है.
  • विज्ञापन देने वाले के पूरे टारगेटिंग सुइट को मैनेज करना. किसी संसाधन का टारगेटिंग सुइट, कई तरह की टारगेटिंग में असाइन किया जाता है. advertisers सेवा में listAssignedTargetingOptions और editAssignedTargetingOptions जैसे संसाधन-लेवल के टारगेटिंग फ़ंक्शन की मदद से, एक ही अनुरोध में कई तरह के टारगेटिंग टाइप के लिए टारगेटिंग को वापस पाया, बनाया, और हटाया जा सकता है. इससे, विज्ञापन देने वाले के टारगेटिंग सुइट को एक अनुरोध पर सेट करने के लिए, कोटा की लागत कम हो जाती है.
  • एक से ज़्यादा लाइन आइटम में, टारगेटिंग से जुड़ी एक ही पाबंदी सेट करना. अगर आपको एक साथ कई लाइन आइटम में टारगेटिंग से जुड़े एक जैसे बदलाव करने हैं, तो ऐसा एक advertisers.lineItems.bulkEditAssignedTargetingOptions अनुरोध का इस्तेमाल करके किया जा सकता है.
  • एक से ज़्यादा लाइन आइटम चालू या रोकना. लाइन आइटम बनाने के बाद, उन्हें विज्ञापन दिखाने से पहले चालू करना होगा. अगर एक के बाद एक कई लाइन आइटम बनाए जा रहे हैं, तो एक ही advertisers.lineItems.bulkUpdate अनुरोध से सभी को चालू किया जा सकता है. इस तरीके का इस्तेमाल करके, कई लाइन आइटम को विज्ञापन दिखाने से रोका जा सकता है.

नियमित तौर पर इस्तेमाल किए जाने वाले आईडी को कैश मेमोरी में सेव करना और उन्हें देखना

Display & Video 360 API में कई कार्रवाइयों के लिए, ऐसे संसाधन आईडी का इस्तेमाल करना ज़रूरी होता है जिन्हें खुद API से हासिल किया जाता है. इनमें टारगेटिंग के विकल्प के आईडी, Google ऑडियंस आईडी वगैरह शामिल हैं. हमारा सुझाव है कि आप इन आईडी को स्थानीय तौर पर सेव करें, ताकि हर बार इस्तेमाल करने पर एपीआई से आईडी वापस न पाना पड़े.

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

लंबे समय तक चलने वाले ऑपरेशन के लिए एक्सपोनेंशियल बैकऑफ़ लागू करना

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

एक्सपोनेंशियल बैकऑफ़, नेटवर्क ऐप्लिकेशन के लिए गड़बड़ी को मैनेज करने की एक स्टैंडर्ड रणनीति है. इसमें क्लाइंट, समय-समय पर अनुरोधों को फिर से कोशिश करता है. सही तरीके से इस्तेमाल करने पर, एक्सपोनेंशियल बैकऑफ़, बैंडविड्थ के इस्तेमाल की क्षमता को बढ़ाता है. साथ ही, सही जवाब पाने के लिए ज़रूरी अनुरोधों की संख्या को कम करता है और एक साथ काम करने वाले एनवायरमेंट में अनुरोधों के थ्रूपुट को बढ़ाता है.

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

  • एपीआई से sdfdownloadtasks.operations.get अनुरोध करें.
  • ऑपरेशन ऑब्जेक्ट को वापस पाएं.
    • अगर done फ़ील्ड की वैल्यू 'सही' नहीं है, तो इसका मतलब है कि आपको अनुरोध फिर से करना चाहिए.
    • पांच सेकंड और कुछ मिलीसेकंड इंतज़ार करें. इसके बाद, फिर से कोशिश करें.
  • ऑपरेशन ऑब्जेक्ट को वापस पाएं.
    • अगर done फ़ील्ड की वैल्यू 'सही' नहीं है, तो इसका मतलब है कि आपको अनुरोध फिर से करना चाहिए.
    • 10 सेकंड + कुछ मिलीसेकंड इंतज़ार करें और फिर से कोशिश करें.
  • ऑपरेशन ऑब्जेक्ट को वापस पाएं.
    • अगर done फ़ील्ड की वैल्यू 'सही' नहीं है, तो इसका मतलब है कि आपको अनुरोध फिर से करना चाहिए.
    • 20 सेकंड + कुछ मिलीसेकंड इंतज़ार करें और फिर से कोशिश करें.
  • ऑपरेशन ऑब्जेक्ट को वापस पाएं.
    • अगर done फ़ील्ड की वैल्यू 'सही' नहीं है, तो इसका मतलब है कि आपको अनुरोध फिर से करना चाहिए.
    • 40 सेकंड + कुछ मिलीसेकंड इंतज़ार करें और फिर से कोशिश करें.
  • ऑपरेशन ऑब्जेक्ट को वापस पाएं.
    • अगर done फ़ील्ड की वैल्यू 'सही' नहीं है, तो इसका मतलब है कि आपको अनुरोध फिर से करना चाहिए.
    • 80 सेकंड + कुछ मिलीसेकंड इंतज़ार करें और फिर से कोशिश करें.
  • इस पैटर्न को तब तक जारी रखें, जब तक क्वेरी ऑब्जेक्ट अपडेट नहीं हो जाता या तय समय बीत नहीं जाता.