Google Ads API में किसी एक संसाधन टाइप की इकाइयों को बनाने, अपडेट करने या हटाने का सबसे आसान तरीका, संसाधन की खास सेवा का इस्तेमाल करना है.
एंडपॉइंट में बदलाव करना
बदले जा सकने वाले हर संसाधन के लिए, उससे जुड़ी सेवा और ऑपरेशन टाइप होता है. किसी संसाधन में बदलाव करने के लिए, उसकी खास सेवा का इस्तेमाल करें. इसके लिए, ऑपरेशन में इनमें से कोई एक फ़ील्ड भरें और उसे सेवा के म्यूटेट एंडपॉइंट पर भेजें:
- बनाएं (
create): बनाने के लिए नया संसाधन ऑब्जेक्ट. - अपडेट (
update): बदला गया संसाधन ऑब्जेक्ट, साथ हीupdate_maskमें बदले गए फ़ील्ड की जानकारी. - हटाएं (
remove): टारगेट किए गए संसाधन कीresource_nameस्ट्रिंग को हटाना है.
उदाहरण के लिए, नया Campaign बनाने के लिए, यह तरीका अपनाएं:
- चुने गए एट्रिब्यूट के साथ एक
Campaignऑब्जेक्ट बनाएं. - इसे
CampaignOperationकेcreateफ़ील्ड में असाइन करें. CampaignService.MutateCampaignsकोMutateCampaignsRequestमें ऑपरेशन भेजें.
Google Ads API में, संसाधन के हिसाब से उपलब्ध सभी सेवाओं के लिए यही पैटर्न लागू होता है:
AdGroup:AdGroupOperationकोAdGroupService.MutateAdGroupsमें पास करें.CampaignCriterion:CampaignCriterionOperationकोCampaignCriterionService.MutateCampaignCriteriaमें पास करें.
नीचे दिए गए 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") दिखती है.