เมื่อทำงานกับตัวกรองกลุ่มข้อมูลในบริบทของ
AdGroupCriterion.listing_group หรือ
AssetGroupListingGroupFilter โปรดคำนึงถึง
ข้อควรพิจารณาต่อไปนี้เมื่อออกแบบการผสานรวม
การแยกแบบกลุ่ม
หากมีกลุ่มโฆษณาหรือตัวกรองกลุ่มข้อมูลชิ้นงานในงานแบบกลุ่ม ระบบจะแยกการดำเนินการในงานแบบกลุ่มออกเป็น กลุ่มย่อยหลายกลุ่มเมื่อเซิร์ฟเวอร์ Google Ads API ได้รับ การดำเนินการแต่ละกลุ่มย่อยที่มีการดำเนินการตัวกรองกลุ่มข้อมูลจะได้รับการปฏิบัติแบบอะตอมมิก ซึ่งแตกต่างจากการดำเนินการมาตรฐานในงานแบบกลุ่ม
วิธีที่ระบบแยกงานแบบกลุ่มที่มีตัวกรองกลุ่มรายชื่อออกเป็นกลุ่มย่อยจะขึ้นอยู่กับปัจจัยต่อไปนี้
- ประเภทตัวกรองกลุ่มรายชื่อ
AdGroupหรือAssetGroupที่ตัวกรองกลุ่มรายชื่อ กำหนดเป้าหมาย- ลำดับการดำเนินการ
พิจารณาวิธีจัดกลุ่มการดำเนินการดังนี้
- การดำเนินการ
AssetGroupListingGroupFilterOperationทั้งหมด (create,updateและremove) ที่กำหนดเป้าหมายเป็นAssetGroupเดียวกันจะจัดกลุ่มไว้ด้วยกันในกลุ่มย่อยแบบอะตอมมิก (ไม่มี ลักษณะการทำงานที่ล้มเหลวบางส่วน) - การดำเนินการ
AdGroupCriterionOperationทั้งหมด (create,update, และremove) สำหรับLISTING_GROUPเกณฑ์ (AdGroupCriterion.listing_group) ที่กำหนดเป้าหมายเป็นAdGroupเดียวกันจะจัดกลุ่มไว้ด้วยกันในกลุ่มย่อยแบบอะตอมมิก (ไม่มีลักษณะการทำงานที่ล้มเหลวบางส่วน) - การดำเนินการอื่นๆ ทั้งหมดจะจัดกลุ่มไว้ด้วยกันในกลุ่มย่อยที่ไม่ใช่แบบอะตอมมิก (ลักษณะการทำงานที่ล้มเหลวบางส่วน)
แผนภาพต่อไปนี้แสดงแนวคิดนี้ กล่องสีเทาแต่ละกล่องแสดงถึงงานแบบกลุ่มที่ส่งโดยใช้ Google Ads API ภายในกล่องสีเทา การดำเนินการแต่ละรายการจะจัดกลุ่มตามสีเพื่อแสดงกลุ่มย่อยที่เซิร์ฟเวอร์ Google Ads API สร้างขึ้น ลำดับการดำเนินการในกล่องสีเทาแต่ละกล่องจะสอดคล้องกับลำดับที่การดำเนินการจะถูกเพิ่มลงในงานแบบกลุ่ม
ข้อจำกัด
เมื่อทำงานกับตัวกรองกลุ่มรายชื่อในบริบทของงานแบบกลุ่ม จะมีข้อจำกัดต่อไปนี้
- กลุ่มย่อยแบบอะตอมมิกรายการเดียวของการดำเนินการ
AdGroupCriterionOperation(create,updateและremove) ที่ต่อเนื่องกันสำหรับเกณฑ์LISTING_GROUP(AdGroupCriterion.listing_group) ที่กำหนดเป้าหมายเป็นAdGroupเดียวกันต้องไม่เกิน 20,000 รายการใน ความยาว อย่างไรก็ตาม เราขอแนะนำว่าไม่ควรเกิน 10,000 รายการ เนื่องจากAddBatchJobOperationsRequestแต่ละรายการมีขีดจำกัดสูงสุด 10,000 รายการ กลุ่มย่อยAdGroupที่มี 10,001 ถึง 20,000 รายการจึงต้องอัปโหลดผ่านคำขอAddBatchJobOperationsที่ต่อเนื่องกันอย่างน้อย 2 รายการ - กลุ่มย่อยแบบอะตอมมิกรายการเดียวของการดำเนินการ
AssetGroupListingGroupFilterOperationที่ต่อเนื่องกัน (create,update, และremove) ซึ่งกำหนดเป้าหมายเป็นAssetGroupเดียวกันต้องไม่เกิน 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
ข้อผิดพลาดเหล่านี้บ่งชี้ว่าระบบได้ยกเลิกการดำเนินการที่ดัชนีนั้นเนื่องจากการดำเนินการอื่นในกลุ่มย่อยแบบอะตอมมิกเดียวกันไม่สำเร็จ หากต้องการระบุสาเหตุหลักของปัญหา ให้วนซ้ำข้อความstatusในBatchJobResultแต่ละรายการ ก่อนและหลังoperation_indexของข้อผิดพลาดในการทำธุรกรรม สำหรับการดำเนินการที่แชร์รหัสAdGroupหรือAssetGroupเดียวกัน