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

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

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