สคริปต์ 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
1 รายการสําหรับการดำเนินการแต่ละรายการที่คุณระบุและอยู่ในลําดับเดียวกับการดำเนินการเริ่มต้น
ฟีเจอร์นี้ทํางานเหมือนกับฟีเจอร์ Google Ads API ดังนั้นโปรดดูคําอธิบายแนวทางปฏิบัติแนะนําของ Google Ads API เพื่อดูคําอธิบายที่สมบูรณ์เกี่ยวกับรหัสชั่วคราวและข้อควรพิจารณาอื่นๆ โปรดทราบว่าคําแนะนําใช้ snake_case
เพื่อแสดงชื่อช่อง ส่วนเอกสารประกอบสคริปต์ Google Ads ใช้ lowerCamelCase
เรายอมรับทั้ง 2 กรณีนี้ในสคริปต์ Google Ads คุณจึงคัดลอกโค้ดจากคู่มือดังกล่าวได้โดยตรง
หากต้องการดําเนินการหลายรายการในคําขอเดียว ให้รวบรวมการดําเนินการทั้งหมดไว้ในอาร์เรย์ แล้วเรียกใช้ AdsApp.mutateAll
การเรียก mutateAll
จะรับอาร์เรย์ของการดำเนินการเป็นอาร์กิวเมนต์แรกและอาร์กิวเมนต์ที่ 2 ที่ไม่บังคับของตัวเลือก ซึ่งได้แก่
apiVersion
: คุณระบุเวอร์ชัน API ที่กำหนดเอง เช่นV18
ได้หากต้องการใช้เวอร์ชันอื่นที่ไม่ใช่ค่าเริ่มต้นของสคริปต์ คุณจะใช้เวอร์ชันใดก็ได้ที่เผยแพร่ต่อสาธารณะในขณะนั้น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});