ชื่อทรัพยากรชั่วคราว
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