BatchJobService की एक दमदार सुविधा यह है कि
इसमें अस्थायी आईडी का इस्तेमाल किया जा सकता है.
इसके लिए, आपको नए संसाधन का resource_name बताना होगा, ताकि नेगेटिव आईडी का इस्तेमाल किया जा सके. उदाहरण के लिए, मान लीजिए कि आपने कोई कैंपेन बनाया है और उसका संसाधन नाम
customers/<YOUR_CUSTOMER_ID>/campaigns/-1 तय किया है. इसके बाद, किसी अन्य ऑपरेशन में विज्ञापन ग्रुप बनाते समय, उस संसाधन नाम से उसका रेफ़रंस दिया जा सकता है. साथ ही, तय किया गया -1 अपने-आप बनाए गए कैंपेन के असली आईडी से बदल जाएगा.
अस्थायी संसाधन नामों का इस्तेमाल करते समय, आपको इन बातों का ध्यान रखना होगा:
- किसी संसाधन में अस्थायी संसाधन नाम तय करने के बाद ही उसका इस्तेमाल किया जा सकता है. यहां दिए गए उदाहरण में, ऑपरेशन की सूची में कैंपेन के ऑपरेशन के बाद ही विज्ञापन ग्रुप का ऑपरेशन दिखेगा.
- अस्थायी संसाधन नाम, अलग-अलग जॉब या म्यूटेट अनुरोधों में याद नहीं रखे जाते. पिछली जॉब या म्यूटेट अनुरोध में बनाए गए किसी संसाधन का रेफ़रंस देने के लिए, उसके असली संसाधन नाम का इस्तेमाल करें.
- किसी एक जॉब या म्यूटेट अनुरोध के लिए, हर अस्थायी संसाधन नाम में यूनीक नेगेटिव नंबर का इस्तेमाल करना ज़रूरी है. भले ही, वे अलग-अलग संसाधन टाइप के हों. अगर किसी एक जॉब या म्यूटेट अनुरोध में अस्थायी आईडी को दोबारा इस्तेमाल किया जाता है, तो गड़बड़ी का मैसेज दिखता है.
उदाहरण
मान लीजिए कि आपको एक ही एपीआई अनुरोध में कोई कैंपेन, विज्ञापन ग्रुप, और विज्ञापन जोड़ना है. इसके लिए, आपको अपने अनुरोध के लिए ऐसा स्ट्रक्चर बनाना होगा:
mutate_operations: [
{
campaign_operation: {
create: {
resource_name: "customers/<YOUR_CUSTOMER_ID>/campaigns/-1",
...
}
}
},
{
ad_group_operation: {
create: {
resource_name: "customers/<YOUR_CUSTOMER_ID>/adGroups/-2",
campaign: "customers/<YOUR_CUSTOMER_ID>/campaigns/-1"
...
}
}
},
{
ad_group_ad_operation: {
create: {
ad_group: "customers/<YOUR_CUSTOMER_ID>/adGroups/-2"
...
}
}
},
]
विज्ञापन ग्रुप के लिए, नया अस्थायी आईडी इस्तेमाल किया जाता है, क्योंकि कैंपेन के लिए इस्तेमाल किए गए -1 को दोबारा इस्तेमाल नहीं किया जा सकता. विज्ञापन ग्रुप वाला विज्ञापन बनाते समय भी, हम इस विज्ञापन ग्रुप का रेफ़रंस देते हैं. अनुरोध में, विज्ञापन ग्रुप खुद उस संसाधन नाम का रेफ़रंस देता है जिसे हमने पहले के ऑपरेशन में कैंपेन के लिए तय किया था. वहीं, ad_group_ad_operation में resource_name की ज़रूरत नहीं होती, क्योंकि कोई अन्य ऑपरेशन इसका रेफ़रंस नहीं दे रहा है.