สคริปต์ 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 ที่กำหนดเองได้ เช่นV22
หากต้องการใช้เวอร์ชันอื่นนอกเหนือจาก ค่าเริ่มต้นของสคริปต์ คุณใช้เวอร์ชันใดก็ได้ที่เผยแพร่ต่อสาธารณะในขณะนั้น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});