AdGroupCriterion.listing_group या
AssetGroupListingGroupFilter के संदर्भ में, लिस्टिंग ग्रुप फ़िल्टर के साथ काम करते समय, इंटिग्रेशन डिज़ाइन करते समय
इन बातों का ध्यान रखें.
बैच को हिस्सों में बांटना
अगर किसी बैच जॉब में, विज्ञापन ग्रुप की शर्तों या ऐसेट ग्रुप के लिस्टिंग ग्रुप फ़िल्टर से जुड़ी कोई कार्रवाई होती है, तो Google Ads API सर्वर पर मिलने के बाद, बैच जॉब में मौजूद कार्रवाइयों को कई सब-बैच में बांटा जाता है. बैच जॉब में मौजूद स्टैंडर्ड कार्रवाइयों के उलट, लिस्टिंग ग्रुप फ़िल्टर की कार्रवाइयों वाले हर सब-बैच को एक यूनिट के तौर पर माना जाता है.
लिस्टिंग ग्रुप फ़िल्टर वाले बैच जॉब को सब-बैच में बांटने का तरीका, इन फ़ैक्टर पर निर्भर करता है:
- लिस्टिंग ग्रुप फ़िल्टर का टाइप
- वह
AdGroupयाAssetGroupजिसे लिस्टिंग ग्रुप फ़िल्टर टारगेट कर रहा है - कार्रवाइयों का क्रम
देखें कि कार्रवाइयों को कैसे ग्रुप किया जाता है:
- एक ही
AssetGroupको टारगेट करने वाली सभी क्रम से की गईAssetGroupListingGroupFilterOperationoperations (create,update, औरremove) को एक ही एटॉमिक सब-बैच में ग्रुप किया जाता है. इसमें, आंशिक तौर पर गड़बड़ी होने की कोई संभावना नहीं होती. - एक ही
AdGroupको टारगेट करने वालेLISTING_GROUPकी शर्तों (AdGroupCriterion.listing_group) के लिए, क्रम से की गई सभीAdGroupCriterionOperationcreate,update, औरremoveको एक ही एटॉमिक सब-बैच में ग्रुप किया जाता है. इसमें, आंशिक तौर पर गड़बड़ी होने की कोई संभावना नहीं होती. - क्रम से की गई अन्य सभी कार्रवाइयों को, नॉन-एटॉमिक सब-बैच में ग्रुप किया जाता है. इसमें, आंशिक तौर पर गड़बड़ी होने की संभावना होती है.
यहां दिए गए डायग्राम में, इस सिद्धांत के बारे में बताया गया है. ग्रे रंग के हर बॉक्स में, Google Ads API का इस्तेमाल करके सबमिट किया गया बैच जॉब दिखता है. ग्रे रंग के बॉक्स में, अलग-अलग कार्रवाइयों को रंग के हिसाब से ग्रुप किया जाता है. इससे, Google Ads API सर्वर से बनाए गए सब-बैच दिखते हैं. ग्रे रंग के हर बॉक्स में कार्रवाइयों का क्रम, बैच जॉब में कार्रवाइयों को जोड़ने के क्रम के मुताबिक होता है.
सीमाएं
बैच जॉब के संदर्भ में, लिस्टिंग ग्रुप फ़िल्टर के साथ काम करते समय, ये सीमाएं लागू होती हैं:
- एक ही
AdGroupको टारगेट करने वालेLISTING_GROUPकी शर्तों (AdGroupCriterion.listing_group) के लिए, क्रम से की गईAdGroupCriterionOperationकार्रवाइयों (create,update, औरremove) के एक एटॉमिक सब-बैच में, 20,000 से ज़्यादा कार्रवाइयां नहीं हो सकतीं. हालांकि, हमारा सुझाव है कि 10,000 से ज़्यादा कार्रवाइयां न करें. हरAddBatchJobOperationsRequestमें ज़्यादा से ज़्यादा 10,000 कार्रवाइयां अपलोड की जा सकती हैं. इसलिए, 10,001 से 20,000 कार्रवाइयों वालेAdGroupसब-बैच को, क्रम से किए गए कम से कम दोAddBatchJobOperationsअनुरोधों के ज़रिए अपलोड करना होगा. - एक ही
AssetGroupको टारगेट करने वाली, क्रम से की गईAssetGroupListingGroupFilterOperationकार्रवाइयों (create,update, औरremove) के एक एटॉमिक सब-बैच में, 10,000 से ज़्यादा कार्रवाइयां नहीं हो सकतीं. - कार्रवाइयों की संख्या से जुड़ी इन सीमाओं में से किसी का भी उल्लंघन करने पर (या किसी एक सब-बैच के लिए, सर्वर की
इंटरनल सीरियलाइज़्ड बाइट साइज़ की सीमा से ज़्यादा होने पर), बैच
जॉब को उस सब-बैच पर रोक दिया जाता है. इससे पहले के सब-बैच, जो पहले ही पूरे हो चुके हैं, कमिट किए जाते हैं.
वहीं, गड़बड़ी वाले सब-बैच और उसके बाद के सभी
सब-बैच,
InternalError.INTERNAL_ERRORके साथ फ़ेल हो जाते हैं.
समस्या का हल
बैच जॉब में, लिस्टिंग ग्रुप फ़िल्टर की कार्रवाइयों को एक लेन-देन के तौर पर प्रोसेस किया जाता है. इससे ऐसी स्थितियां बन सकती हैं जहां कुछ गड़बड़ी वाली कार्रवाइयों की वजह से, कई कार्रवाइयां फ़ेल हो जाती हैं. इसके अलावा, BatchJob कार्रवाइयों को प्रोसेस करने के तरीके की वजह से, गड़बड़ियों की असल वजह, डाउनस्ट्रीम में होने वाली गड़बड़ियों से पहले या बाद में किसी इंडेक्स पर दिख सकती है.
उदाहरण के लिए, ListBatchJobResults से मिले जवाब को प्रोसेस करते समय:
AdGroupCriterionOperationलिस्टिंग ग्रुप के लिए, आपको दिख सकता है कि एक हीAdGroupको टारगेट करने वाली क्रम से की गई कार्रवाइयां,CriterionError.LISTING_GROUP_ERROR_IN_ANOTHER_OPERATION(Product group operations are atomic within the same ad group. This operation failed because another operation targeting the same ad group ID was invalid.) के साथ फ़ेल हो गई हैं.AssetGroupListingGroupFilterOperationकार्रवाइयों के लिए, आपको दिख सकता है कि एक हीAssetGroupको टारगेट करने वाली क्रम से की गई कार्रवाइयां,BatchJobError.ASSET_GROUP_LISTING_GROUP_FILTER_TRANSACTION_FAILUREके साथ फ़ेल हो गई हैं.
इन गड़बड़ियों से पता चलता है कि उस इंडेक्स पर मौजूद कार्रवाई को रोल बैक कर दिया गया है, क्योंकि उसी एटॉमिक सब-बैच में मौजूद कोई दूसरी कार्रवाई फ़ेल हो गई थी. समस्या की मुख्य वजह की पहचान करने के लिए, एक ही AdGroup या AssetGroup
आईडी शेयर करने वाली कार्रवाइयों के लिए, लेन-देन की गड़बड़ी के
operation_index से पहले और बाद में, हर BatchJobResult में मौजूद status
मैसेज को दोहराएं.