माइग्रेशन

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

रिपोर्ट

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

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

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

  • सभी AWQL क्वेरी, GAQL क्वेरी में आसानी से नहीं बदलती हैं. इन मामलों में, गड़बड़ी का मैसेज लॉग किया जाएगा. इसमें गड़बड़ी की वजह के बारे में कुछ जानकारी भी होगी, ताकि आप मैन्युअल तरीके से गड़बड़ी को ठीक कर सकें.
  • AWQL की सभी रिपोर्ट टाइप, GAQL में काम नहीं करती हैं.
  • 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 की सेवाओं (SpreadsheetApp, MailApp वगैरह) के लिए कोटा में कोई बदलाव नहीं किया गया है.
  • Google Ads के लिए कोटा, एपीआई का इस्तेमाल करने की तरह ही लागू होंगे. इसका मतलब है कि आपकी स्क्रिप्ट पर एपीआई रेट की सीमाएं लागू होंगी. हालांकि, इससे ज़्यादा रिपोर्ट ऐक्सेस करने या हर बार ज़्यादा बदलाव करने में ज़्यादा आसानी होती है.

अन्य बदलाव

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