เมื่อใช้ตัวกรองกลุ่มรายชื่อในบริบทของ
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แบบอะตอมมิก (createupdateremove)LISTING_GROUP(AdGroupCriterion.listing_group) ในระดับแถวAdGroupอย่างไรก็ตาม ขอแนะนำว่าไม่ควรเกิน 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 เดียวกัน