สคริปต์ Google Ads รองรับการเปลี่ยนแปลงทั่วไปที่มีอยู่ใน Google Ads API การดำเนินการส่วนใหญ่ที่ทำได้จาก GoogleAdsService.mutate ก็ทำได้ในสคริปต์ Google Ads เช่นกัน รวมถึงการสร้างและจัดการแคมเปญ
เนื่องจากฟีเจอร์นี้อนุญาตให้เข้าถึง Google Ads API เป็นจำนวนมาก จึง ควรทำความเข้าใจหลักการพื้นฐานของข้อกำหนด Google Ads API เพื่อใช้ ฟีเจอร์นี้ คุณข้ามหลายๆ ส่วนได้ เช่น โทเค็นนักพัฒนาแอปและ การให้สิทธิ์ เนื่องจากสคริปต์ Google Ads จะจัดการให้คุณ แต่คุณต้อง สร้างคำขอเปลี่ยนแปลงที่ถูกต้อง
ต่อไปนี้คือแหล่งข้อมูลพื้นฐานเกี่ยวกับอินเทอร์เฟซ REST ของ Google Ads API ที่คุณควรทำความคุ้นเคยก่อนที่จะอ่านคำแนะนำนี้ต่อ
ตัวอย่างพื้นฐาน
หากต้องการแสดงฟังก์ชันการทำงาน ให้พิจารณาตัวอย่างพื้นฐานนี้ซึ่งสร้างงบประมาณแคมเปญ
const budgetResult = AdsApp.mutate({
campaignBudgetOperation: {
create: {
amountMicros: 10000000,
explicitlyShared: false
}
}
});
การเรียก
AdsApp.mutate
จะใช้ออบเจ็กต์ JSON ที่แสดงถึง
MutateOperation รายการเดียว ภายในออบเจ็กต์นี้ คุณ
ระบุประเภทการดำเนินการที่คุณกำลังทำ ซึ่งในกรณีนี้คือ campaignBudgetOperation
จากนั้นให้ระบุ create, remove หรือทั้ง update และ updateMask ฟิลด์ที่เฉพาะเจาะจงภายใน create และ update
จะขึ้นอยู่กับประเภททรัพยากรที่คุณกำลังดำเนินการ
สร้างการดำเนินการ
คุณสามารถใช้กลยุทธ์บางอย่างเพื่อสร้างการดำเนินการที่ถูกต้องได้ เมื่อใช้ตัวอย่างงบประมาณแคมเปญ คุณสามารถค้นหาเอกสารอ้างอิง REST สำหรับงบประมาณแคมเปญ เพื่อดูรายการฟิลด์ที่ถูกต้องทั้งหมด จากนั้นกรอกข้อมูลในฟิลด์ที่เหมาะสม หรือเขียนโค้ด JavaScript ที่กำหนดเองในสคริปต์เพื่อสร้างออบเจ็กต์ที่เหมาะสม
หรือคุณอาจลองสร้างการดำเนินการแบบไดนามิกโดยใช้ฟีเจอร์"ลองเลย" สำหรับงบประมาณแคมเปญ
ซึ่งช่วยให้คุณสร้างเนื้อหาคำขอแบบไดนามิกได้โดยการเลือกฟิลด์ที่ต้องการเพิ่ม จากนั้นคุณสามารถดึงเนื้อหาของการดำเนินการจากผลลัพธ์ที่สร้างขึ้นและเพิ่มลงในการเรียก mutate หลังจากระบุประเภทการดำเนินการแล้ว
ประเภทการดำเนินการ
สร้าง
ระบุ create ในการดำเนินการของคุณ โดยส่งการแสดงออบเจ็กต์ของ
ทรัพยากรที่คุณต้องการสร้าง
ดูตัวอย่างการดำเนินการ create ในข้อมูลโค้ดที่ให้ไว้ก่อนหน้านี้
นำออก
ระบุ remove ในการดำเนินการ โดยส่งชื่อทรัพยากรของทรัพยากรที่ต้องการนำออก เช่น
AdsApp.mutate({
adGroupOperation: {
remove: "customers/[CUSTOMER_ID]/adGroups/[AD_GROUP_ID]"
}
});
หากไม่ทราบชื่อทรัพยากรของเอนทิตี คุณสามารถดึงข้อมูลได้โดยใช้คำขอ
Adsapp.search
อัปเดต
ระบุ update ในการดำเนินการ โดยส่งออบเจ็กต์ที่มีชื่อทรัพยากร
ที่ระบุเพื่อให้ระบบระบุได้ว่าคุณต้องการอัปเดตออบเจ็กต์ใด
นอกจากนี้ ให้กรอกข้อมูลในช่องที่ต้องการอัปเดตค่า
และระบุ updateMask ซึ่งจะระบุช่องที่คุณวางแผนที่จะเปลี่ยนแปลงในคำขอนี้อย่างชัดเจน
อย่าใส่ชื่อทรัพยากรในมาสก์การอัปเดต
ตัวอย่างupdateการดำเนินการ
const campaignResult = AdsApp.mutate({
campaignOperation: {
update: {
resourceName: "customers/[CUSTOMER_ID]/campaigns/[CAMPAIGN_ID]",
status: "PAUSED",
name: "[Paused] My campaign"
},
updateMask: "name,status"
}
});
จัดการผลลัพธ์
ไม่ว่าจะเป็นการดำเนินการประเภทใด ค่าที่แสดงผลจะเป็น MutateResult
คุณสามารถใช้ชื่อทรัพยากรที่ส่งคืนเพื่อค้นหาสถานะปัจจุบันของ
ทรัพยากรหลังจากการเปลี่ยนแปลง และตรวจสอบว่าการดำเนินการสำเร็จหรือไม่
หรือมีข้อผิดพลาดใดเกิดขึ้น
ตัวอย่างต่อไปนี้แสดงโฟลว์พื้นฐานสำหรับการตรวจสอบผลลัพธ์และการพิมพ์ข้อมูลบางอย่างลงในบันทึก
const result = AdsApp.mutate( ... );
if (result.isSuccessful()) {
console.log(`Resource ${result.getResourceName()} successfully mutated.`);
} else {
console.log("Errors encountered:");
for (const error of result.getErrorMessages()) {
console.log(error);
}
}
การดำเนินการหลายอย่าง
สคริปต์ Google Ads ยังรองรับการเปลี่ยนแปลงการดำเนินการหลายอย่างในคำขอเดียวด้วยเมธอด
AdsApp.mutateAll
คุณสามารถสร้างเอนทิตีที่ขึ้นต่อกัน เช่น ลำดับชั้นของแคมเปญแบบเต็ม
ในคำขอเดียว คุณเลือกทำให้ชุดการดำเนินการทั้งหมดเป็นแบบอะตอมได้ (ไม่บังคับ) เพื่อให้หากการดำเนินการใดล้มเหลว จะไม่มีการดำเนินการใดๆ
ค่าที่ส่งคืนคืออาร์เรย์ของออบเจ็กต์
MutateResult
โดยมีออบเจ็กต์หนึ่งรายการสําหรับการดําเนินการแต่ละรายการที่คุณระบุ และอยู่ในลําดับเดียวกับ
การดําเนินการเริ่มต้น
ฟีเจอร์นี้ทํางานเหมือนกับฟีเจอร์ Google Ads API ดังนั้นโปรดอ่านคําแนะนําแนวทางปฏิบัติแนะนําของ Google Ads API เพื่อดูคําอธิบายแบบเต็มเกี่ยวกับรหัสชั่วคราวและข้อควรพิจารณาอื่นๆ โปรดทราบว่าคําแนะนําใช้ snake_case เพื่อแสดงชื่อช่อง ในขณะที่เอกสารประกอบของ Google Ads Scripts ใช้ lowerCamelCase ทั้ง 2 กรณีนี้ใช้ได้ในสคริปต์ Google Ads คุณจึงคัดลอกโค้ดจากคำแนะนำนั้นได้โดยตรง
หากต้องการดำเนินการหลายอย่างในคำขอเดียว ให้รวบรวมการดำเนินการทั้งหมด
ลงในอาร์เรย์ แล้วเรียกใช้ AdsApp.mutateAll การเรียก mutateAll จะใช้อาร์เรย์ของการดำเนินการเป็นอาร์กิวเมนต์แรกและอาร์กิวเมนต์ที่ 2 ที่ไม่บังคับของ
ตัวเลือก ซึ่งรวมถึง
apiVersion: คุณระบุเวอร์ชัน API ที่กำหนดเองได้ เช่นV24หากต้องการใช้เวอร์ชันอื่นนอกเหนือจาก ค่าเริ่มต้นของสคริปต์ คุณสามารถใช้เวอร์ชันใดก็ได้ที่เผยแพร่ต่อสาธารณะในขณะนั้นpartialFailure: ฟิลด์นี้มีค่าเริ่มต้นเป็นtrueหากตั้งค่าเป็นtrueระบบจะ ดำเนินการที่ถูกต้องและแสดงข้อผิดพลาดสำหรับการดำเนินการที่ไม่สำเร็จ หากตั้งค่าเป็นfalseหากการดำเนินการใดล้มเหลว ระบบจะไม่ดำเนินการใดๆ ซึ่งจะทำให้ชุดการดำเนินการนี้เป็นแบบอะตอม
ต่อไปนี้เป็นตัวอย่างที่มีการดำเนินการหลายอย่างซึ่งสร้างงบประมาณแคมเปญ แคมเปญ และกลุ่มโฆษณาในคำขอแบบอะตอม
const operations = [];
const customerId = 'INSERT_CUSTOMER_ID_HERE';
const budgetId = `customers/${customerId}/campaignBudgets/-1`;
const campaignId = `customers/${customerId}/campaigns/-2`;
operations.push({
campaignBudgetOperation: {
create: {
resourceName: budgetId,
amountMicros: 10000000,
explicitlyShared: false
}
}
});
operations.push({
campaignOperation: {
create: {
resourceName: campaignId,
name: 'New Campaign ' + new Date(),
advertisingChannelType: 'SEARCH',
manualCpc: {},
campaignBudget: budgetId,
advertisingChannelType: 'DISPLAY',
networkSettings: {
targetContentNetwork: true
}
}
}
});
operations.push({
adGroupOperation: {
create: {
campaign: campaignId,
name: 'New AdGroup ' + new Date(),
optimizedTargetingEnabled: true
}
}
});
const results = AdsApp.mutateAll(
operations, {partialFailure: false});