म्यूट करें

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});