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

ฟีเจอร์ที่มีประสิทธิภาพของ BatchJobService คือรองรับการใช้รหัสชั่วคราว

ซึ่งทำได้โดยการระบุ 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 ไม่จำเป็นเนื่องจากไม่มีการดำเนินการอื่นที่จะอ้างอิง