म्यूट करें

Google Ads स्क्रिप्ट, सामान्य म्यूटेट के लिए सहायता उपलब्ध कराती हैं. ये Google Ads API में उपलब्ध हैं. GoogleAdsService.mutate से किए जा सकने वाले ज़्यादातर ऑपरेशन, Google Ads स्क्रिप्ट में भी किए जा सकते हैं. इनमें कैंपेन बनाना और उन्हें मैनेज करना शामिल है.

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

यहां Google Ads API के REST इंटरफ़ेस के बारे में कुछ बुनियादी संसाधन दिए गए हैं. इस गाइड को पढ़ने से पहले, आपको इनके बारे में जानकारी होनी चाहिए:

बुनियादी उदाहरण

इस सुविधा को दिखाने के लिए, इस बुनियादी उदाहरण को देखें. इसमें कैंपेन का बजट बनाया जाता है:

const budgetResult = AdsApp.mutate({
    campaignBudgetOperation: {
      create: {
        amountMicros: 10000000,
        explicitlyShared: false
      }
    }
  });

AdsApp.mutate को कॉल करने पर, एक JSON ऑब्जेक्ट मिलता है. यह एक MutateOperation को दिखाता है. इस ऑब्जेक्ट में, आपको यह बताना होगा कि किस तरह की कार्रवाई की जा रही है. इस मामले में, campaignBudgetOperation. इसके बाद, create, remove या update और updateMask, दोनों में से किसी एक को चुनें. create और update में मौजूद फ़ील्ड, इस बात पर निर्भर करते हैं कि किस तरह के संसाधन का इस्तेमाल किया जा रहा है.

कोई कार्रवाई बनाना

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

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

कार्रवाइयों के टाइप

बनाएं

अपने ऑपरेशन में create तय करें. साथ ही, उस संसाधन का ऑब्जेक्ट प्रज़ेंटेशन पास करें जिसे आपको बनाना है.

create ऑपरेशन का उदाहरण देखने के लिए, पहले दिया गया स्निपेट देखें.

हटाएं

अपनी कार्रवाई में remove तय करें. इसके लिए, उस संसाधन का संसाधन का नाम पास करें जिसे आपको हटाना है. उदाहरण के लिए:

AdsApp.mutate({
    adGroupOperation: {
        remove: "customers/[CUSTOMER_ID]/adGroups/[AD_GROUP_ID]"
    }
});

अगर आपको किसी इकाई के संसाधन का नाम नहीं पता है, तो Adsapp.search अनुरोध का इस्तेमाल करके इसे फ़ेच किया जा सकता है.

अपडेट करें

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

update ऑपरेशन का उदाहरण:

const campaignResult = AdsApp.mutate({
    campaignOperation: {
        update: {
            resourceName: "customers/[CUSTOMER_ID]/campaigns/[CAMPAIGN_ID]",
            status: "PAUSED",
            name: "[Paused] My campaign"
        },
        updateMask: "name,status"
    }
});

नतीजे मैनेज करना

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

यहां एक उदाहरण दिया गया है. इसमें, नतीजे की जांच करने और लॉग में कुछ जानकारी प्रिंट करने का बुनियादी फ़्लो दिखाया गया है:

const result = AdsApp.mutate( ... );
if (result.isSuccessful()) {
    console.log(`Resource ${result.getResourceName()} successfully mutated.`);
} else {
    console.log("Errors encountered:");
    for (const error of result.getErrorMessages()) {
        console.log(error);
    }
}

एक से ज़्यादा कार्रवाइयां

Google Ads स्क्रिप्ट, AdsApp.mutateAll तरीके का इस्तेमाल करके, एक ही अनुरोध में कई कार्रवाइयों को बदलने की सुविधा भी देती हैं. एक-दूसरे पर निर्भर इकाइयां बनाई जा सकती हैं. जैसे, एक ही अनुरोध में कैंपेन की पूरी हैरारकी. आपके पास कार्रवाइयों के पूरे सेट को ऐटॉमिक बनाने का विकल्प होता है. इससे, अगर कोई एक कार्रवाई पूरी नहीं होती है, तो कोई भी कार्रवाई नहीं की जाती.

रिटर्न वैल्यू, MutateResult ऑब्जेक्ट का एक ऐरे होती है. इसमें आपके दिए गए हर ऑपरेशन के लिए एक ऑब्जेक्ट होता है. साथ ही, यह ऑब्जेक्ट उसी क्रम में होता है जिस क्रम में आपने ऑपरेशन दिए थे.

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

एक ही अनुरोध में कई कार्रवाइयां करने के लिए, अपनी सभी कार्रवाइयों को एक कलेक्शन में इकट्ठा करें. इसके बाद, AdsApp.mutateAll को कॉल करें. mutateAll कॉल, ऑपरेशंस के ऐरे को पहले आर्ग्युमेंट के तौर पर लेता है. साथ ही, विकल्पों के दूसरे आर्ग्युमेंट को भी लेता है. हालांकि, यह ज़रूरी नहीं है. इसमें ये विकल्प शामिल हैं:

  • apiVersion: अगर आपको स्क्रिप्ट के डिफ़ॉल्ट वर्शन के बजाय कोई दूसरा वर्शन इस्तेमाल करना है, तो कस्टम एपीआई वर्शन तय किया जा सकता है. जैसे, V26. उस समय, सार्वजनिक तौर पर उपलब्ध किसी भी वर्शन का इस्तेमाल किया जा सकता है.
  • partialFailure: इस फ़ील्ड की डिफ़ॉल्ट वैल्यू true होती है. अगर इसे true पर सेट किया जाता है, तो मान्य कार्रवाइयां पूरी की जाती हैं और असफल कार्रवाइयों के लिए गड़बड़ियां दिखती हैं. अगर इसे false पर सेट किया जाता है, तो किसी भी ऑपरेशन के फ़ेल होने पर कोई भी ऑपरेशन नहीं किया जाता. इससे, ऑपरेशन का यह सेट एटॉमिक बन जाता है.

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

const operations = [];
const customerId = 'INSERT_CUSTOMER_ID_HERE';
const budgetId = `customers/${customerId}/campaignBudgets/-1`;
const campaignId = `customers/${customerId}/campaigns/-2`;
operations.push({
    campaignBudgetOperation: {
      create: {
        resourceName: budgetId,
        amountMicros: 10000000,
        explicitlyShared: false
      }
    }
  });
operations.push({
    campaignOperation: {
      create: {
        resourceName: campaignId,
        name: 'New Campaign ' + new Date(),
        advertisingChannelType: 'SEARCH',
        manualCpc: {},
        campaignBudget: budgetId,
        advertisingChannelType: 'DISPLAY',
        networkSettings: {
          targetContentNetwork: true
        }
      }
    }
  });
operations.push({
    adGroupOperation: {
      create: {
        campaign: campaignId,
        name: 'New AdGroup ' + new Date(),
        optimizedTargetingEnabled: true
      }
    }
  });
const results = AdsApp.mutateAll(
    operations, {partialFailure: false});