เปลี่ยนวัตถุ

ตามที่กล่าวไว้ในคู่มือโครงสร้าง API ทรัพยากรระดับบนสุดแต่ละรายการใน Google Ads API จะมีบริการเฉพาะประเภททรัพยากรที่เกี่ยวข้องซึ่งรองรับการแก้ไขอินสแตนซ์ของทรัพยากร นอกจากนี้ คุณยังใช้ GoogleAdsService.Mutate เพื่อเปลี่ยนแปลง ทรัพยากรหลายประเภทแบบอะตอมมิกในคำขอเดียวได้ด้วย

คู่มือนี้ใช้ CampaignService เพื่อ แสดงวิธีแก้ไขออบเจ็กต์ Campaign แต่แนวคิดเดียวกันนี้ใช้ได้กับบริการเฉพาะประเภททรัพยากรอื่นๆ ทั้งหมด

คำขอเปลี่ยนแปลงข้อมูลในเซิร์ฟเวอร์

บริการเฉพาะประเภททรัพยากรแต่ละรายการมีเมธอด mutate ที่รับคำขอเปลี่ยนแปลงข้อมูลในเซิร์ฟเวอร์ คำขอนี้ประกอบด้วยข้อมูลต่อไปนี้

  • customer_id (หรือ customerId ใน URL ของ REST)
  • คอลเล็กชันของ operations
  • การตั้งค่าการดำเนินการที่ไม่บังคับ เช่น partial_failure, validate_only และ response_content_type (ซึ่งกำหนดว่าจะแสดงผลทรัพยากรที่เปลี่ยนแปลงได้หรือเฉพาะชื่อทรัพยากรหลังการเปลี่ยนแปลง)

ตัวอย่างเช่น เมธอด MutateCampaigns ของ CampaignService รับ MutateCampaignsRequest ซึ่งประกอบ ด้วยข้อมูลต่อไปนี้

  • customer_id
  • คอลเล็กชันของออบเจ็กต์ CampaignOperation (operations)
  • การตั้งค่าการดำเนินการที่ไม่บังคับ (partial_failure, validate_only และ response_content_type ที่ระบุประเภทการตอบกลับที่ต้องการ)

การดำเนินการ

ออบเจ็กต์การดำเนินการ เช่น CampaignOperation ช่วยให้คุณระบุการดำเนินการที่ต้องการทำกับทรัพยากรเดียวได้โดยการตั้งค่าฟิลด์ operation ฟิลด์นี้เป็นฟิลด์ oneof ที่ประกอบด้วยแอตทริบิวต์ต่อไปนี้

create
สร้างอินสแตนซ์ใหม่ของทรัพยากร
update
อัปเดตทรัพยากรให้ตรงกับแอตทริบิวต์ของทรัพยากร update เมื่อตั้งค่าฟิลด์นี้ คุณต้องตั้งค่า update_mask ของการดำเนินการด้วย ซึ่งจะบอก Google Ads API ว่าจะแก้ไขแอตทริบิวต์ใดระหว่างการดำเนินการอัปเดต ไลบรารีของไคลเอ็นต์แต่ละรายการ จะมียูทิลิตีมาสก์ของฟิลด์หรือเมธอดตัวช่วย ที่จะสร้าง update_mask ให้คุณ
remove
นำทรัพยากรที่ระบุโดยสตริงชื่อทรัพยากรออก (เช่น customers/1234567890/campaigns/987654321)

เนื่องจากฟิลด์ operation เป็นฟิลด์ oneof คุณจึงใช้การดำเนินการเดียวเพื่อแก้ไขออบเจ็กต์หลายรายการไม่ได้ ตัวอย่างเช่น หากต้องการสร้างแคมเปญหนึ่งรายการและนำแคมเปญอื่นออก ให้เพิ่ม CampaignOperation 2 อินสแตนซ์ลงในคำขอ โดยอินสแตนซ์หนึ่งตั้งค่า create และอีกอินสแตนซ์หนึ่งตั้งค่า remove

การทำงานเป็นแบตช์

แม้ว่าการดำเนินการเดียวจะสร้าง อัปเดต หรือนำทรัพยากรเดียวออกได้เท่านั้น แต่คำขอเปลี่ยนแปลงข้อมูลในเซิร์ฟเวอร์เดียวก็สามารถมีการดำเนินการหลายรายการได้ คุณควรรวมการดำเนินการไว้ในคำขอเปลี่ยนแปลงข้อมูลในเซิร์ฟเวอร์เดียวแทนการส่งคำขอเปลี่ยนแปลงข้อมูลในเซิร์ฟเวอร์หลายรายการซึ่งแต่ละรายการมีการดำเนินการเดียว

ตัวอย่างเช่น หากต้องการสร้างแคมเปญ 10 รายการ คุณควรส่ง MutateCampaignsRequest รายการเดียว ที่มีออบเจ็กต์ CampaignOperation 10 รายการ หากต้องการจัดกลุ่ม การดำเนินการในทรัพยากรประเภทต่างๆ ไว้ในคำขอเดียว ให้ใช้ GoogleAdsService.Mutate หรือ การเปลี่ยนแปลงทรัพยากร

การตอบกลับการเปลี่ยนแปลงข้อมูลในเซิร์ฟเวอร์

สิ่งที่แสดงผลในการตอบกลับจะขึ้นอยู่กับสิ่งที่ส่งในฟิลด์ response_content_typeของคำขอเปลี่ยนแปลงข้อมูลในเซิร์ฟเวอร์ ตัวอย่างเช่น หากระบุ MUTABLE_RESOURCE การตอบกลับจะมีทั้ง resource_name ของทรัพยากรและฟิลด์ที่เปลี่ยนแปลงได้ของแคมเปญใน campaign โดย ค่าเริ่มต้น (RESOURCE_NAME_ONLY) ระบบจะป้อนข้อมูลเฉพาะ resource_name ในแต่ละ MutateCampaignResult

ข้อผิดพลาดในการเปลี่ยนแปลงข้อมูลในเซิร์ฟเวอร์

โดยค่าเริ่มต้น (partial_failure = false) ระบบจะใช้การดำเนินการในคำขอเปลี่ยนแปลงข้อมูลในเซิร์ฟเวอร์กับบัญชี Google Ads ของคุณก็ต่อเมื่อการดำเนินการ ทุกรายการ ในคำขอสำเร็จ หากการดำเนินการใดล้มเหลว ระบบจะย้อนกลับคำขอทั้งหมด สำหรับคำขอเปลี่ยนแปลงข้อมูลในเซิร์ฟเวอร์ที่รองรับความล้มเหลวบางส่วน (คำขอที่มีฟิลด์ partial_failure ในข้อความคำขอ) การตั้งค่า partial_failure = true จะคอมมิตการดำเนินการที่ถูกต้อง ขณะที่การดำเนินการที่ล้มเหลวจะแสดงข้อผิดพลาดเฉพาะการดำเนินการในฟิลด์ partial_failure_error ของการตอบกลับ ดูรายละเอียดเกี่ยวกับการจัดการข้อผิดพลาดได้ในคู่มือ ความล้มเหลวบางส่วนและคู่มือ ข้อผิดพลาดที่พบบ่อย

ติดตามการเปลี่ยนแปลง

หากต้องการติดตามการเปลี่ยนแปลงที่เกิดขึ้นกับออบเจ็กต์ในบัญชี Google Ads หรือดึงข้อมูลสถานะปัจจุบันของออบเจ็กต์ คุณสามารถใช้ทรัพยากร change_status และ change_event ได้

  • change_status แสดงข้อมูลสรุปของทรัพยากรที่มีการเปลี่ยนแปลงภายในระยะเวลาที่กำหนด
  • change_event แสดงประวัติการเปลี่ยนแปลงโดยละเอียด รวมถึงค่าเก่าและค่าใหม่ของฟิลด์ที่มีการเปลี่ยนแปลง

หากต้องการค้นหาทรัพยากรเหล่านี้ ให้ใช้เมธอด GoogleAdsService.SearchStream หรือ GoogleAdsService.Search ดูข้อมูลเพิ่มเติมเกี่ยวกับการส0}ตรีมรายงาน โดยใช้ GoogleAdsService