ระบบจะแก้ไขทรัพยากรส่วนใหญ่ (สร้าง อัปเดต หรือนําออก) โดยใช้เมธอด Mutate
ระบบจะเรียกใช้เมธอด Mutate
เป็น HTTP POST
ไปยัง URL เฉพาะทรัพยากรที่ตรงกับรูปแบบชื่อทรัพยากร โดยไม่มีรหัสทรัพยากรต่อท้าย
ระบบจะส่งรหัสของทรัพยากรที่จะเปลี่ยนแปลงในเนื้อหาคำขอ JSON แทน ซึ่งช่วยให้คุณส่งการเรียก API เดียวที่มีการดำเนินการหลายรายการในทรัพยากรที่แตกต่างกันได้
ตัวอย่างเช่น ชื่อทรัพยากรของแคมเปญใช้รูปแบบต่อไปนี้
customers/CUSTOMER_ID/campaigns/CAMPAIGN_ID
หากต้องการดึง URL ที่ใช้ในการเปลี่ยนแปลงแคมเปญ ให้ข้ามรหัสทรัพยากรต่อท้ายและต่อท้าย :mutate
ดังนี้
https://googleads.googleapis.com/v16/customers/CUSTOMER_ID/campaigns:mutate
ข้อความ Mutate
มีออบเจ็กต์ JSON ระดับบนสุดที่มีอาร์เรย์ operations
ที่มีออบเจ็กต์ operation
หลายรายการได้ ในทางกลับกัน การดำเนินการแต่ละรายการอาจเป็น create
, update
หรือ remove
วิธีนี้เป็นการดำเนินการเปลี่ยนแปลง
วิธีเดียวที่เป็นไปได้
POST /v16/customers/CUSTOMER_ID/campaigns:mutate HTTP/1.1 Host: googleads.googleapis.com Content-Type: application/json Authorization: Bearer ACCESS_TOKEN developer-token: DEVELOPER_TOKEN { "operations": [ ... ] }
บริการส่วนใหญ่รองรับการดำเนินการหลายพันรายการในการเรียก API ครั้งเดียว คำแนะนำขีดจำกัดของระบบจะบันทึกข้อจำกัดด้านขนาดคำขอ
การดำเนินการภายในคำขอ API เดียวจะดำเนินการเป็นชุดการดำเนินการ 1 ชุดโดยค่าเริ่มต้น ซึ่งหมายความว่าทั้งหมดสำเร็จร่วมกัน หรือทั้งกลุ่มจะล้มเหลวหากการดำเนินการ 1 ชุดล้มเหลว บริการบางอย่างรองรับแอตทริบิวต์ partialFailure
เพื่อเปลี่ยนลักษณะการทำงานนี้ ดูรายละเอียดเพิ่มเติมเกี่ยวกับการเปลี่ยนความหมายของการดำเนินการได้ในการแปลงทรัพยากร
สร้าง
การดำเนินการสร้างจะสร้างเอนทิตีใหม่ และต้องมีตัวแทน JSON แบบเต็มของทรัพยากรที่ต้องการสร้าง
POST /v16/customers/CUSTOMER_ID/campaigns:mutate HTTP/1.1 Host: googleads.googleapis.com Content-Type: application/json Authorization: Bearer ACCESS_TOKEN developer-token: DEVELOPER_TOKEN { "operations": [ { "create": { "name": "An example campaign", "status": "PAUSED", "campaignBudget": "customers/CUSTOMER_ID/campaignBudgets/CAMPAIGN_BUDGET_ID", "advertisingChannelType": "SEARCH", "networkSettings": { "targetGoogleSearch": true, "targetSearchNetwork": true, "targetContentNetwork": true, "targetPartnerSearchNetwork": false }, "target_spend": {} } } ] }
อัปเดต
การดำเนินการอัปเดตจะอัปเดตทรัพยากรที่มีอยู่เป็นระยะ คุณเพียงแค่ต้องระบุ ฟิลด์ที่คุณต้องการแก้ไข
หากต้องการระบุช่องที่ต้องการอัปเดต ให้ตั้งค่าแอตทริบิวต์ updateMask
เป็นรายการชื่อช่องที่คั่นด้วยคอมมา ซึ่งจะเป็นประโยชน์อย่างยิ่งหากคุณมีการแสดงออบเจ็กต์ JSON ที่มีรูปแบบที่สมบูรณ์อยู่แล้ว (เช่น ที่ส่งคืนโดยการเรียก API ครั้งก่อน) แต่ต้องการเปลี่ยนบางช่องเท่านั้น
คุณระบุชื่อช่องที่จะแก้ไขใน updateMask
และส่งออบเจ็กต์ JSON ทั้งหมดแทนการตัดออบเจ็กต์ JSON ได้
ตัวอย่างด้านล่างจะเปลี่ยน name
และ status
ของแคมเปญที่มีอยู่ซึ่งมี resourceName
ที่กำหนด
POST /v16/customers/CUSTOMER_ID/campaigns:mutate HTTP/1.1 Host: googleads.googleapis.com Content-Type: application/json Authorization: Bearer ACCESS_TOKEN developer-token: DEVELOPER_TOKEN { "operations": [ { "updateMask": "name,status", "update": { "resourceName": "customers/CUSTOMER_ID/campaigns/CAMPAIGN_ID", "name": "My renamed campaign", "status": "PAUSED", } } ] }
นำออก
การนำการดำเนินการออกอย่างมีประสิทธิภาพคือการลบออบเจ็กต์ออก โดยตั้งค่าสถานะ Google Ads เป็น REMOVED
มีเพียง resourceName
เท่านั้นที่จะถูกนำออก
POST /v16/customers/CUSTOMER_ID/campaigns:mutate HTTP/1.1 Host: googleads.googleapis.com Content-Type: application/json Authorization: Bearer ACCESS_TOKEN developer-token: DEVELOPER_TOKEN { "operations": [ { "remove": "customers/CUSTOMER_ID/campaigns/CAMPAIGN_ID" } ] }