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

เมื่อทำงานกับตัวกรองกลุ่มรายชื่อในบริบทของ 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

ข้อผิดพลาดเหล่านี้บ่งชี้ว่าการดำเนินการที่ดัชนีนั้นถูกย้อนกลับเนื่องจากการดำเนินการอื่นในกลุ่มย่อยแบบอะตอมเดียวกันล้มเหลว หากต้องการระบุสาเหตุของปัญหา ให้ทำซ้ำผ่านข้อความ status ในแต่ละ BatchJobResult ทั้งก่อนและหลัง operation_index ของข้อผิดพลาดของธุรกรรม สำหรับการดำเนินการที่ใช้รหัส AdGroup หรือ AssetGroup เดียวกัน