ใช้ตัวกรองกลุ่มรายชื่อในงานแบบกลุ่ม

เมื่อทำงานกับตัวกรองกลุ่มข้อมูลในบริบทของ AdGroupCriterion.listing_group หรือ AssetGroupListingGroupFilter โปรดคำนึงถึง ข้อควรพิจารณาต่อไปนี้เมื่อออกแบบการผสานรวม

การแยกแบบกลุ่ม

หากมีกลุ่มโฆษณาหรือตัวกรองกลุ่มข้อมูลชิ้นงานในงานแบบกลุ่ม ระบบจะแยกการดำเนินการในงานแบบกลุ่มออกเป็น กลุ่มย่อยหลายกลุ่มเมื่อเซิร์ฟเวอร์ Google Ads API ได้รับ การดำเนินการแต่ละกลุ่มย่อยที่มีการดำเนินการตัวกรองกลุ่มข้อมูลจะได้รับการปฏิบัติแบบอะตอมมิก ซึ่งแตกต่างจากการดำเนินการมาตรฐานในงานแบบกลุ่ม

วิธีที่ระบบแยกงานแบบกลุ่มที่มีตัวกรองกลุ่มรายชื่อออกเป็นกลุ่มย่อยจะขึ้นอยู่กับปัจจัยต่อไปนี้

  1. ประเภทตัวกรองกลุ่มรายชื่อ
  2. AdGroup หรือ AssetGroup ที่ตัวกรองกลุ่มรายชื่อ กำหนดเป้าหมาย
  3. ลำดับการดำเนินการ

พิจารณาวิธีจัดกลุ่มการดำเนินการดังนี้

  • การดำเนินการ 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เดียวกัน