ตามที่กล่าวถึงในคู่มือโครงสร้าง 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 คุณจึงไม่สามารถใช้การดำเนินการเดียวเพื่อแก้ไขออบเจ็กต์หลายรายการได้ เช่น หากต้องการสร้างแคมเปญ 1 รายการและนําแคมเปญอื่นออก ให้เพิ่ม 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 อ่านเพิ่มเติมเกี่ยวกับการสตรีมรายงานโดยใช้ GoogleAdsService