ตามที่กล่าวไว้ในคู่มือโครงสร้าง 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