संसाधन सेवा में बदलाव होता है

Google Ads API में किसी एक संसाधन टाइप की इकाइयों को बनाने, अपडेट करने या हटाने का सबसे आसान तरीका, संसाधन की खास सेवा का इस्तेमाल करना है.

एंडपॉइंट में बदलाव करना

बदले जा सकने वाले हर संसाधन के लिए, उससे जुड़ी सेवा और ऑपरेशन टाइप होता है. किसी संसाधन में बदलाव करने के लिए, उसकी खास सेवा का इस्तेमाल करें. इसके लिए, ऑपरेशन में इनमें से कोई एक फ़ील्ड भरें और उसे सेवा के म्यूटेट एंडपॉइंट पर भेजें:

  • बनाएं (create): बनाने के लिए नया संसाधन ऑब्जेक्ट.
  • अपडेट (update): बदला गया संसाधन ऑब्जेक्ट, साथ ही update_mask में बदले गए फ़ील्ड की जानकारी.
  • हटाएं (remove): टारगेट किए गए संसाधन की resource_name स्ट्रिंग को हटाना है.

उदाहरण के लिए, नया Campaign बनाने के लिए, यह तरीका अपनाएं:

  1. चुने गए एट्रिब्यूट के साथ एक Campaign ऑब्जेक्ट बनाएं.
  2. इसे CampaignOperation के create फ़ील्ड में असाइन करें.
  3. CampaignService.MutateCampaigns को MutateCampaignsRequest में ऑपरेशन भेजें.

Google Ads API में, संसाधन के हिसाब से उपलब्ध सभी सेवाओं के लिए यही पैटर्न लागू होता है:

नीचे दिए गए REST JSON पेलोड में, CampaignService.MutateCampaigns के लिए किए गए अनुरोध के बारे में बताया गया है:

{
  "customerId": "CUSTOMER_ID",
  "operations": [
    {
      "create": {
        "name": "Interplanetary Cruise #1",
        "advertisingChannelType": "SEARCH",
        "status": "PAUSED",
        "manualCpc": {},
        "campaignBudget": "customers/CUSTOMER_ID/campaignBudgets/BUDGET_ID",
        "containsEuPoliticalAdvertising": "DOES_NOT_CONTAIN_EU_POLITICAL_ADVERTISING"
      }
    }
  ],
  "partialFailure": false,
  "validateOnly": false
}

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

बदलाव के अनुरोध में operations फ़ील्ड को दोहराया जाता है. इसलिए, एक अनुरोध में उस संसाधन टाइप के लिए कई कार्रवाइयां (हर अनुरोध के लिए 10,000 कार्रवाइयां तक) शामिल हो सकती हैं. डिफ़ॉल्ट रूप से, अनुरोध में मौजूद सभी कार्रवाइयां एक साथ पूरी होती हैं. हालांकि, अगर आपने partial_failure को true पर सेट किया है, तो ऐसा नहीं होगा.

हालांकि, अलग-अलग संसाधन सेवाओं की दो मुख्य सीमाएं हैं:

  • एक ही तरह का संसाधन: किसी संसाधन सेवा के लिए किए गए अनुरोध में, सिर्फ़ उस सेवा से मैनेज किए जाने वाले संसाधनों में बदलाव किया जा सकता है.
  • कोई अस्थायी संसाधन आईडी या क्रॉस-रेफ़रंसिंग नहीं: संसाधन के हिसाब से म्यूटेट कॉल में किए गए ऑपरेशन, अलग से प्रोसेस किए जाते हैं. एक ही अनुरोध में, कुछ समय के लिए इस्तेमाल किए जाने वाले नेगेटिव आईडी (जैसे, customers/CUSTOMER_ID/campaigns/-1) असाइन नहीं किए जा सकते. साथ ही, अन्य कार्रवाइयों से नई बनाई गई इकाइयों का रेफ़रंस नहीं दिया जा सकता.

अगर आपको एक ही अनुरोध में कई तरह के रिसॉर्स में बदलाव करना है या एक-दूसरे पर निर्भर कार्रवाइयों के लिए, कुछ समय के लिए रिसॉर्स के नामों का रेफ़रंस देना है, तो GoogleAdsService.Mutate का इस्तेमाल करें.

वर्शन के हिसाब से अंतर

Google Ads API के साथ काम करने वाले वर्शन में, संसाधनों में बदलाव करते समय इन अंतरों को ध्यान में रखें:

  • लाइफ़साइकल के लक्ष्य की सेवाएं: v25 और इसके बाद के वर्शन में, लाइफ़साइकल के सभी लक्ष्यों में बदलाव किया जाता है. इनमें नए ग्राहक हासिल करना (new_customer_acquisition_goal_settings), ग्राहकों को जोड़े रखना (retention_goal_settings), और लॉयल्टी बनाए रखना (loyalty_retention_goal_settings) शामिल हैं. इन लक्ष्यों में बदलाव करने के लिए, GoalService.MutateGoals और CampaignGoalConfigService.MutateCampaignGoalConfigs का इस्तेमाल किया जाता है. साथ ही, बार-बार इस्तेमाल होने वाले स्टैंडर्ड operations फ़ील्ड का इस्तेमाल किया जाता है. यह CustomerLifecycleGoalService.ConfigureCustomerLifecycleGoals और CampaignLifecycleGoalService.ConfigureCampaignLifecycleGoals की जगह लेता है. इनका इस्तेमाल v24 और इससे पहले के वर्शन में, नए ग्राहक हासिल करने के लिए किया जाता था. साथ ही, ये सिर्फ़ एक operation फ़ील्ड स्वीकार करते हैं.
  • कैंपेन की तारीख और समय वाले फ़ील्ड: Campaign बनाते या अपडेट करते समय, v23 और उसके बाद के वर्शन, start_date_time और end_date_time (yyyy-MM-dd HH:mm:ss) का इस्तेमाल करते हैं. ये v22 में इस्तेमाल किए गए, सिर्फ़ तारीख वाले start_date और end_date फ़ील्ड की जगह लेते हैं.
  • सिंथेटिक कॉन्टेंट के एटेस्टेशन में बदलाव करने की सुविधा: Asset.synthetic_content_info और Ad.synthetic_content_info, v22 और इसके बाद के वर्शन के स्कीमा में दिखते हैं. हालांकि, synthetic_content_info.advertiser_attestation.status और synthetic_content_info.advertiser_attestation.source फ़ील्ड में सिर्फ़ v23 और इसके बाद के वर्शन में बदलाव किया जा सकता है (system_attestation हमेशा OUTPUT_ONLY होता है). v22 में advertiser_attestation सब-फ़ील्ड में बदलाव करने की कोशिश करने पर, immutable-field वाली गड़बड़ी ("The field attempted to be mutated is immutable" या "Field cannot be set") दिखती है.