ใช้รหัสชั่วคราว

ชื่อทรัพยากรชั่วคราว

BatchJobService รองรับชื่อทรัพยากรชั่วคราวที่ อ้างอิงได้ในการดำเนินการที่ตามมาภายในงานแบบกลุ่มเดียวกัน ซึ่งรวมถึง คำขอ AddBatchJobOperations ที่อัปโหลดตามลำดับหลายรายการด้วย sequence_token ซึ่งจะช่วยให้คุณ สร้างแคมเปญ กลุ่มโฆษณา โฆษณา และเกณฑ์ที่ขึ้นอยู่กับแคมเปญใน งานแบบกลุ่มเดียวได้ก่อนที่จะมีการกำหนดรหัสฝั่งเซิร์ฟเวอร์ ในกฎทั่วไปและตัวอย่างต่อไปนี้ คำขอเดียวหมายถึงBatchJobทั้งหมดใน การอัปโหลดAddBatchJobOperationsทั้งหมด

คุณทำได้โดยการระบุ resource_name ของทรัพยากรใหม่ให้ใช้รหัสติดลบ เช่น สมมติว่าคุณสร้างแคมเปญและระบุชื่อทรัพยากร เป็น customers/<YOUR_CUSTOMER_ID>/campaigns/-1 เมื่อสร้างกลุ่มโฆษณาในภายหลัง คุณจะอ้างอิงกลุ่มโฆษณานั้นได้โดยใช้ชื่อทรัพยากร และระบบจะแทนที่ -1 ที่คุณระบุด้วยรหัสจริงของแคมเปญที่สร้างขึ้น โดยอัตโนมัติ

สิ่งที่ควรคำนึงถึงเมื่อใช้ชื่อทรัพยากรชั่วคราวมีดังนี้

  • ชื่อทรัพยากรชั่วคราวจะใช้ได้ก็ต่อเมื่อมีการกำหนดไว้ใน ทรัพยากรแล้วเท่านั้น ในตัวอย่างต่อไปนี้ การดำเนินการกลุ่มโฆษณาจะต้อง ปรากฏหลังการดำเนินการแคมเปญในรายการการดำเนินการ
  • ระบบจะไม่จดจำชื่อทรัพยากรชั่วคราวในงานหรือคำขอเปลี่ยนแปลง หากต้องการอ้างอิงทรัพยากรที่สร้างขึ้นในงานหรือคำขอเปลี่ยนแปลงก่อนหน้า ให้ใช้ ชื่อทรัพยากรจริง
  • สำหรับงานเดียวหรือคำขอเปลี่ยนแปลงข้อมูลในเซิร์ฟเวอร์ ชื่อทรัพยากรชั่วคราวแต่ละชื่อต้องใช้ตัวเลขลบที่ไม่ซ้ำกัน แม้ว่าจะเป็นทรัพยากรประเภทต่างๆ ก็ตาม หากมีการนำรหัสชั่วคราวมาใช้ซ้ำในคำขอเดียวหรือคำขอเปลี่ยนแปลงข้อมูลในเซิร์ฟเวอร์ ระบบจะแสดงข้อผิดพลาด

ตัวอย่าง

สมมติว่าคุณต้องการเพิ่มแคมเปญ กลุ่มโฆษณา และโฆษณาในคำขอ API เดียว คุณจะสร้างโครงสร้างสำหรับคำขอที่คล้ายกับ ต่อไปนี้

mutate_operations: [
  {
    campaign_operation: {
      create: {
        resource_name: "customers/<YOUR_CUSTOMER_ID>/campaigns/-1",
        ...
      }
    }
  },
  {
    ad_group_operation: {
      create: {
        resource_name: "customers/<YOUR_CUSTOMER_ID>/adGroups/-2",
        campaign: "customers/<YOUR_CUSTOMER_ID>/campaigns/-1"
        ...
      }
    }
  },
  {
    ad_group_ad_operation: {
      create: {
        ad_group: "customers/<YOUR_CUSTOMER_ID>/adGroups/-2"
        ...
      }
    }
  },
]

ระบบจะใช้รหัสชั่วคราวใหม่สำหรับกลุ่มโฆษณา เนื่องจากเราไม่สามารถใช้ -1 ที่ใช้สำหรับแคมเปญซ้ำได้ นอกจากนี้ เรายังอ้างอิงกลุ่มโฆษณานี้เมื่อสร้างโฆษณากลุ่มโฆษณาด้วย กลุ่มโฆษณาอ้างอิงชื่อทรัพยากรที่เราสร้างขึ้นสําหรับแคมเปญในการดําเนินการก่อนหน้านี้ในคําขอ ส่วน resource_name ใน ad_group_ad_operation ไม่จําเป็นเนื่องจากไม่มีการดําเนินการเพิ่มเติมที่อ้างอิงถึง

การจัดการข้อผิดพลาดในงานแบบกลุ่ม

เนื่องจากการดำเนินการมาตรฐานในงานแบบกลุ่มจะทำงานโดยเปิดใช้การทำงานบางส่วนล้มเหลว (ยกเว้นภายในกลุ่มย่อยแบบอะตอม) หากทรัพยากรหลักที่มีรหัสชั่วคราวไม่ผ่านการตรวจสอบ การดำเนินการย่อยที่ขึ้นอยู่กับรหัสชั่วคราวนั้นจะล้มเหลวพร้อมกับNewResourceCreationError.TEMP_ID_RESOURCE_HAD_ERRORS การใช้รหัสเชิงลบเดียวกันซ้ำในการดำเนินการ create หลายรายการภายใน งานแบบกลุ่มเดียวกันจะแสดงผลเป็น NewResourceCreationError.DUPLICATE_TEMP_IDS รหัสชั่วคราวจะใช้ได้เมื่อสร้างทรัพยากร (create) หรืออ้างอิงทรัพยากรหลักที่สร้างขึ้นใหม่เท่านั้น เช่น การส่งรหัสชั่วคราวที่เป็นค่าลบใน AdGroupCriterionOperation.remove เมื่อเรียก AddBatchJobOperations จะแสดงผล RequestError.RESOURCE_NAME_MALFORMED