म्यूट करें

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: अगर आपको स्क्रिप्ट के डिफ़ॉल्ट वर्शन के बजाय, किसी दूसरे वर्शन का इस्तेमाल करना है, तो आपके पास कस्टम एपीआई वर्शन तय करने का विकल्प है. जैसे, V19. इस दौरान, सार्वजनिक तौर पर उपलब्ध किसी भी वर्शन का इस्तेमाल किया जा सकता है.
  • 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});