माइग्रेशन

Google Ads स्क्रिप्ट का नया इन्फ़्रास्ट्रक्चर, Google Ads API पर आधारित है. उस एपीआई के अलग-अलग आर्किटेक्चर की वजह से, आपको अपनी मौजूदा स्क्रिप्ट अपडेट करनी पड़ सकती हैं. हमने कोशिश की है कि हम पुराने सिस्टम के साथ काम करने की ज़्यादा से ज़्यादा कोशिश कर सकें. इसलिए, ये बदलाव मामूली होने चाहिए.

रिपोर्ट

कई AWQL रिपोर्ट काम करती रहेंगी. पर्दे के पीछे, नए इंफ़्रास्ट्रक्चर का इस्तेमाल करने पर, स्क्रिप्ट आपकी AWQL क्वेरी को GAQL (Google Ads API के लिए नई क्वेरी भाषा) में बदल देगी, उसे नए बैकएंड के साथ चलाएगी, और फिर नतीजों को उस फ़ॉर्मैट में बदल देगी जो मूल रूप से AWQL रिपोर्ट में इस्तेमाल किया जाता है. GAQL वाली क्वेरी को ऐसे ही पास किया जाएगा.

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

AWQL-से-GAQL के अपने-आप अनुवाद की कुछ सीमाएं यहां दी गई हैं:

  • ज़रूरी नहीं है कि सभी AWQL क्वेरी, GAQL क्वेरी के हिसाब से हों. इन मामलों में, गड़बड़ी का एक मैसेज लॉग किया जाएगा, जिसमें गड़बड़ी के बारे में कुछ जानकारी होगी. इससे आपको मैन्युअल रूप से गड़बड़ियों को ठीक करने में मदद मिलेगी.
  • GAQL में, AWQL के सभी रिपोर्ट टाइप काम नहीं करते.
  • GAQL "शून्य इंप्रेशन पंक्तियों" के लिए काम नहीं करता है. यह तय करने से कि किसी रिपोर्ट में कोई इंप्रेशन शामिल नहीं किया जाना चाहिए, गड़बड़ी हो सकती है.
  • कुछ संदिग्ध फ़ील्ड का इस्तेमाल फ़िल्टर में नहीं किया जा सकता. उदाहरण के लिए, "हेडलाइन" से कई अलग-अलग विज्ञापन फ़ील्ड का रेफ़रंस मिल सकता है.
  • कुछ फ़ील्ड अलग-अलग फ़ॉर्मैट में नतीजे दिखा सकते हैं. उदाहरण के लिए, एक नतीजे को कई कॉलम में बांटना.

सिलेक्टर व्यवस्थित करना

स्क्रिप्ट का इस्तेमाल करके रिसॉर्स फ़ेच करते समय, इटरेटर में नतीजों को सीमित करने या क्रम से लगाने के लिए, withCondition और orderBy कॉल का इस्तेमाल करना आम बात है. इन कॉल के फ़ील्ड अब Google Ads API के नए नामों का इस्तेमाल करेंगे. उदाहरण के लिए, कैंपेन के नाम के आधार पर फ़िल्टर करने के लिए, पहले आप इनका इस्तेमाल करते थे:

.withCondition('CampaignName = "SOME_CAMPAIGN_NAME"')

अब आपको जहां भी मुमकिन हो, इन शर्तों के लिए फ़ील्ड के नए नामों का इस्तेमाल करना चाहिए:

.withCondition('campaign.name = "SOME_CAMPAIGN_NAME"')

इसलिए, हमने नए नामों के साथ पुराने नामों को मैप करने की कोशिश की है. इसलिए, अगर आपकी स्क्रिप्ट अब भी CampaignName का इस्तेमाल करती है, तो इसे रनटाइम के दौरान campaign.name से अपने-आप बदल दिया जाएगा. इससे यह पक्का किया जा सकेगा कि स्क्रिप्ट अब भी काम कर रही है. अगर आपको पुरानी स्टाइल के नामों को इस्तेमाल करने में कोई समस्या होती है, तो अपनी स्क्रिप्ट को अपडेट करें. इसके बाद, समस्या को हल करने के लिए सबसे पहले नए स्टाइल नामों का इस्तेमाल करें.

सीमाएं

कई सीमाएं पहले की तरह ही हैं और यहां किए गए बदलाव आम तौर पर परफ़ॉर्मेंस को बेहतर बनाने में मदद करेंगे.

  • समयसीमाएं एक जैसी हैं. स्क्रिप्ट 30 मिनट तक चल सकती है.
  • एक इटरेटर डिफ़ॉल्ट रूप से 50,000 इकाइयां दिखाता है, लेकिन इसे बदला जा सकता है. पहले, 50,000 की सीमा को पसंद के मुताबिक नहीं बनाया जा सकता था.
  • एक सिलेक्टर ज़्यादा से ज़्यादा 10,000 आईडी को हैंडल कर सकता है (कोई बदलाव नहीं होगा).
  • नए इंफ़्रास्ट्रक्चर में इकाइयों की संख्या की कोई सीमा नहीं है. इन इकाइयों को एक ही स्क्रिप्ट में प्रोसेस किया जा सकता है. पहले यह सीमा 2,50,000 थी.
  • नए इंफ़्रास्ट्रक्चर में हर एक्ज़ीक्यूशन के लिए बनाए जा सकने वाले कीवर्ड या विज्ञापनों की कोई सीमा नहीं है. पहले यह सीमा 2,50,000 थी.
  • लॉग इन करने के आउटपुट को कम करके 100kb (बिना बदला गया) किया जा सकता है.
  • Apps Script सेवाओं (स्प्रेडशीटApp, MailApp वगैरह) के कोटा में कोई बदलाव नहीं होगा.
  • एपीआई का इस्तेमाल करने पर ही, Google Ads के लिए कोटा लागू किए जाएंगे. इसका मतलब है कि आपकी स्क्रिप्ट पर एपीआई की दर की सीमाएं लागू होंगी. हालांकि, इससे आपको ज़्यादा रिपोर्ट ऐक्सेस करने या हर एक्ज़ीक्यूशन पर ज़्यादा बदलाव करने में मदद मिलेगी.

अन्य बदलाव

ExecutionInfo अब getRemainingCreateQuota() या getRemainingGetQuota() को दिखाता नहीं है, क्योंकि ये कोटा अब नए वर्शन में लागू नहीं होते.