สคริปต์ Google Ads สนับสนุนแบบร่างแคมเปญและ การทดสอบ ซึ่งใช้เพื่อ เตรียมพร้อมและทดสอบการเปลี่ยนแปลงในแคมเปญบนเครือข่าย Search และเครือข่ายดิสเพลย์
ฉบับร่างคือโคลนของแคมเปญที่มีอยู่ซึ่งจะไม่แสดงโฆษณาของตนเอง แต่ เพื่อดำเนินการเปลี่ยนแปลงโดยไม่ต้องแก้ไขแคมเปญเดิมได้ การเปลี่ยนแปลงแบบทีละขั้นอาจนำไปใช้กับแคมเปญฐานได้
การทดสอบจะเรียกใช้แคมเปญที่ปรับแต่งได้ควบคู่ไปกับแคมเปญเดิม และแสดงโฆษณาตามเปอร์เซ็นต์การเข้าชมที่ระบุ อิงตาม ในการทดสอบ คุณสามารถใช้การเปลี่ยนแปลงกับแคมเปญดั้งเดิม แยกการทดสอบไปยังแคมเปญอิสระ หรือยกเลิกการทดสอบ แคมเปญ
คู่มือนี้จะอธิบายเวิร์กโฟลว์พื้นฐานสําหรับการทํางานกับฉบับร่างและการทดสอบ ในสคริปต์
ฉบับร่าง
สร้างฉบับร่าง
แบบร่างสร้างขึ้นจากแคมเปญพื้นฐานที่มีอยู่โดยใช้
DraftBuilder
และระบุชื่อที่ไม่ซ้ำ แคมเปญพื้นฐานต้องเป็นเครือข่าย Search และเครือข่าย Search
แคมเปญที่มีการขยายไปยังเครือข่าย Display หรือแคมเปญ Display (ยกเว้นแอปบนอุปกรณ์เคลื่อนที่
สำหรับเครือข่ายดิสเพลย์) และต้องไม่มีงบประมาณที่ใช้ร่วมกัน
const campaign = AdsApp.campaigns()
.withCondition(`campaign.name = "${campaignName}"`)
.get()
.next();
const draftBuilder = campaign.newDraftBuilder()
.withName("INSERT_DRAFT_NAME_HERE")
.build();
const draft = draftBuilder.getResult();
DraftBuilder.build()
แสดงผลเป็น
DraftOperation
,
การทำงานทั่วไปในสคริปต์ ดูคำแนะนำเกี่ยวกับ
ของเครื่องมือสร้างเพื่อดูรายละเอียดเพิ่มเติม
draft
จะได้รับการระบุโดยไม่ซ้ำกันด้วยชุดค่าผสมของรหัสแคมเปญฐานและ
รหัสฉบับร่าง โปรดดู
DraftSelector.withIds()
เพื่อดูข้อมูลเพิ่มเติม
จัดสรรแคมเปญร่าง
ออบเจ็กต์ draft
เกี่ยวข้องกับแคมเปญฐานและแคมเปญร่าง ไปยังขั้นตอนการอัปเดต
กับแคมเปญพื้นฐาน คุณจะเผยแพร่การเปลี่ยนแปลงผ่านแคมเปญร่าง
แคมเปญร่างมีวิธีรับและตั้งค่าเช่นเดียวกับแคมเปญอื่นๆ แอตทริบิวต์ต่างๆ เช่น เกณฑ์ กลุ่มโฆษณา ราคาเสนอ และโฆษณา
const draftCampaign = draft.getDraftCampaign();
draftCampaign.setAdRotationType("CONVERSION_OPTIMIZE");
draftCampaign.createNegativeKeyword("shoes");
โปรดทราบว่า การตรวจสอบนโยบายโฆษณาจะทำกับแคมเปญร่างเช่นเดียวกับ กับแคมเปญพื้นฐาน คุณจะไม่สามารถเรียกใช้การทดสอบจาก แคมเปญร่างที่มีโฆษณาที่ละเมิดนโยบาย
ดำเนินการฉบับร่าง
หลังจากจัดสรรแคมเปญร่างแล้ว คุณสามารถดำเนินการอย่างใดอย่างหนึ่งต่อไปนี้
แต่หากไม่ต้องการใช้การเปลี่ยนแปลง คุณก็นำฉบับร่างออกได้ การนำฉบับร่างออกจะยกเลิกไม่ได้ แต่ยังดูได้ในส่วนทั้งหมด ในแท็บแบบร่างของ UI ของ Google Ads
draft.remove();
หากเลือกที่จะเก็บการเปลี่ยนแปลงที่ทำในฉบับร่างไว้ ก็ดำเนินการต่อได้ แล้วนำไปปรับใช้:
draft.startApplying();
วิธีนี้จะเริ่มต้นกระบวนการใช้การอัปเดตกับฐาน แคมเปญ ดังนั้นฉบับร่างจะมีสถานะ กำลังใช้... ในส่วน UI ของ Google Ads อย่างไรก็ตาม วิธีนี้จะไม่แจ้งให้คุณทราบเมื่อกระบวนการ เสร็จสมบูรณ์
หากต้องการทดสอบการเปลี่ยนแปลงก่อน คุณสามารถใช้แบบร่างเพื่อ สร้างการทดสอบ
การทดสอบ
สร้างการทดสอบ
experiment
คล้ายกับแบบร่างและยังสร้างขึ้นจากฐานด้วย
แคมเปญ คุณสร้าง experiment
ที่มี
ExperimentBuilder
วิธีนี้จะสร้างการทดสอบที่มี "สล็อตแมชชีน" 2 เครื่องโดยอัตโนมัติ ที่แสดงถึง
ส่วนต่างๆ ของการทดสอบ เครื่องหนึ่ง (เรียกว่ากลุ่มควบคุม) จะ
มีแคมเปญฐาน และอีกแคมเปญ (เรียกว่ากลุ่มทดสอบ) จะ
มีแคมเปญร่างใหม่ซึ่งคุณจะต้องปรับแต่งตามขั้นตอนต่างๆ สำหรับ
ฉบับร่างด้านบนก่อนที่จะตั้งเวลาการทดสอบ
ขณะที่สร้างการทดสอบ อย่าลืมตั้งค่าสิ่งต่อไปนี้ทั้งหมดใน เครื่องมือสร้าง:
withCampaign
- แคมเปญที่คุณต้องการให้ใช้การทดสอบ
withTrafficSplitPercent
- จำนวนการเข้าชมที่จะส่งไปยังกลุ่มทดสอบ สำหรับ 50% ให้ระบุ
50
withStartDate
และwithEndDate
- ระบุวันที่เริ่มต้นและวันที่สิ้นสุดของแคมเปญ ระบุใน
YYYYMMdd
รูปแบบ withType
SEARCH_CUSTOM
หรือDISPLAY_CUSTOM
ขึ้นอยู่กับเครือข่ายที่คุณใช้ กำลังใช้withSuffix
- ระบุคำต่อท้ายที่จะเพิ่มลงในชื่อแคมเปญกลุ่มทดสอบ เมื่อสร้างขึ้นมา
withGoals
- ระบุเป้าหมายของการทดสอบนี้ นี่เป็นการช่วยเตือนให้ตัวคุณเอง
เป้าหมายของคุณเมื่อจะสร้าง ค่าเริ่มต้นที่ดีคือ
[{metric: 'CLICKS', direction: 'INCREASE'}]
เปอร์เซ็นต์การแยกการเข้าชมจะเป็นตัวกำหนดส่วนของการเข้าชมที่จะแสดง โฆษณาจากแคมเปญการทดสอบแทนที่จะเป็นแคมเปญฐาน ด้วยเหตุนี้ แคมเปญฐานแต่ละแคมเปญมีการทดสอบที่ทำงานอยู่ได้เพียงครั้งละ 1 รายการ
const experiment = AdsApp.newExperimentBuilder()
.withCampaign(campaign)
.withTrafficSplitPercent(50)
.withStartDate("20230501")
.withEndDate("20230601")
.withType("SEARCH_CUSTOM")
.withSuffix("experiment")
.withGoals([{metric: 'CLICKS', direction: 'INCREASE'}])
.build();
// The experimentCampaign represents the customizeable draft.
const experimentCampaign = experiment.getExperimentCampaign();
การทดสอบจะได้รับการระบุโดยไม่ซ้ำกันด้วยรหัสเดียว ซึ่งต่างจากแบบร่าง โปรดดู
ExperimentSelector.withIds()
เพื่อดูข้อมูลเพิ่มเติม
จัดสรรแคมเปญการทดสอบ
เช่นเดียวกับ draft
experiment
เองก็ไม่ใช่แคมเปญ แต่เป็น
จะเกี่ยวข้องกับแคมเปญพื้นฐาน แบบร่าง และแคมเปญการทดสอบ ช่องของ
แคมเปญทดสอบจะแก้ไขได้โดยมีข้อยกเว้นต่อไปนี้
- ชื่อ
- สถานะ
- วันที่เริ่มต้น
- วันที่สิ้นสุด
- งบประมาณ
const experimentCampaign = experiment.getExperimentCampaign();
// Will succeed.
experimentCampaign.setAdRotationType("ROTATE_FOREVER");
experimentCampaign.createNegativeKeyword("sneakers");
// Will fail.
experimentCampaign.setName("INSERT_EXPERIMENT_NAME_HERE");
สามารถเปลี่ยนชื่อ วันที่เริ่มต้น และวันที่สิ้นสุดในการทดสอบได้ หลังจากนั้น การทดสอบก็จะมีผลกับแคมเปญการทดสอบ
// Will succeed.
experiment.setName("INSERT_EXPERIMENT_NAME_HERE");
// Will succeed if date is acceptable.
const date = "20220601";
experiment.setStartDate(date);
หากต้องการเริ่มการทดสอบ โปรดโทรหา experiment.startScheduling()
นี่คือ
แบบไม่พร้อมกัน เนื่องจากต้องคัดลอกการตั้งค่าทั้งหมดจากแคมเปญพื้นฐาน
หลังจากการทดสอบสิ้นสุด
คุณมีตัวเลือก 2-3 อย่างเมื่อการทดสอบเสร็จสมบูรณ์ เราขอแนะนำให้ การทดสอบเสร็จสิ้นแล้ว จึงจะหยุดแสดงโฆษณา แต่คุณสามารถ ก็ยังคงโต้ตอบกับสิ่งนั้น คุณยังคงนำการทดสอบที่เสร็จสิ้นออกแล้ว นำไปใช้ได้ หรือไม่ก็ยังคงสามารถเข้าถึงสถิติประสิทธิภาพของแคมเปญได้
experiment.finish();
const stats = experimentCampaign.getStatsFor("INSERT_TIME_PERIOD_HERE");
หากคุณไม่พอใจกับการทดสอบที่พิจารณาจากสถิติ คุณสามารถดู นำการทดสอบออก ซึ่งจะเป็นการนำแคมเปญการทดสอบออกด้วย กำลังนำออก การทดสอบไม่สามารถย้อนกลับได้ แต่ยังสามารถดูได้ใน ทั้งหมด ในแท็บการทดสอบของ UI ของ Google Ads
experiment.remove();
หากคุณพอใจกับผลการทดสอบ คุณมี 2 ตัวเลือก ได้แก่
คุณเริ่มใช้การเปลี่ยนแปลงได้ และเช่นเดียวกันกับแบบร่าง คุณจะ จะได้รับแจ้งเมื่อกระบวนการเสร็จสมบูรณ์
experiment.startApplying();
คุณสามารถสร้างแคมเปญการทดสอบในฐานะ แคมเปญที่ทำงานอย่างเต็มรูปแบบ โดยไม่มีผลกระทบต่อแคมเปญพื้นฐาน ช่วงเวลานี้ หรือที่เรียกว่า สำเร็จการศึกษา เสร็จสมบูรณ์ทันทีและจําเป็นต้องมีการตั้งงบประมาณใหม่
const budget = AdsApp.budgets() .withCondition(`campaign_budget.id = ${budgetId}`) .get() .next(); experiment.graduate(budget);
แคมเปญใหม่จะใช้งบประมาณร่วมกับแคมเปญพื้นฐานไม่ได้อีก ซึ่งทำให้จำเป็นต้องใช้งบประมาณใหม่ แคมเปญที่จบการศึกษานั้นก็เหมือนกับ แคมเปญปกติ ในทุกฟิลด์สามารถแก้ไขได้ และ สามารถใช้เป็นแคมเปญฐานสําหรับแบบร่างและการทดสอบได้มากขึ้น
ข้อควรพิจารณาอื่นๆ
เอนทิตีฐาน
นอกจากนี้ การแนะนำแบบร่างและการทดสอบในสคริปต์ Google Ads ยังแนะนำ
ของเอนทิตีฐาน ร่างและทดลองแคมเปญและกลุ่มโฆษณาใน
แตกต่างจากแคมเปญฐานเดิม จึงเป็นเหตุผลที่
Campaign
และ AdGroup
ในตอนนี้ มีวิธีเข้าถึงแคมเปญพื้นฐานและกลุ่มโฆษณา:
getBaseCampaign()
และ getBaseAdGroup()
วิธีการเหล่านี้จะแสดงเอนทิตีการโทร หากเรียกใช้โดยแคมเปญพื้นฐานหรือโฆษณา กลุ่ม เอนทิตีภายในแคมเปญและกลุ่มโฆษณา เช่น คีย์เวิร์ดและโฆษณา รวมถึง ได้รับวิธีการดังกล่าว
แคมเปญได้รับแอตทริบิวต์
isBaseCampaign()
isDraftCampaign()
,
และ
isExperimentCampaign()
ฟิลด์
Campaign.draftCampaigns()
และ
Campaign.experimentCampaigns()
ช่วยให้คุณเข้าถึงแคมเปญฉบับร่างและแคมเปญการทดสอบทั้งหมดที่มี
โดยใช้แคมเปญหลักเป็นแคมเปญหลัก แต่คุณไม่สามารถเลือกฉบับร่าง
แคมเปญที่มี
CampaignSelector.withCondition()
;
ใช้
AdsApp.drafts()
แทน
การจัดการข้อผิดพลาด
วิธีการต่อไปนี้ที่เกี่ยวข้องกับฉบับร่างและการทดสอบจะดำเนินการต่อเมื่อ สคริปต์จะทำงาน แต่อาจล้มเหลวไม่พร้อมกัน
Draft.startApplying()
Experiment.startApplying()
Experiment.startScheduling()
คุณควรรอตรวจสอบว่าการดำเนินการเหล่านี้สำเร็จหรือไม่ UI ของ Google Ads
แสดงสถานะใช้แล้วหรือใช้งานอยู่หลังการดำเนินการเสร็จสิ้น
startApplying()
และ startScheduling()
ตามลำดับ และแสดงให้เห็นว่า
ไม่สามารถใช้ได้หรือไม่สามารถสร้างเมื่อล้มเหลว ให้คุณคลิกเพื่อ
ดูข้อผิดพลาดได้
นอกจากนี้ อาจเป็นไปได้ว่าบางวิธีดำเนินการไม่สำเร็จในขั้นแสดงตัวอย่าง แต่ดำเนินการสำเร็จ หลังจากทำงาน เช่น หลังจากสร้างฉบับร่าง
const draftCampaign = draft.getDraftCampaign();
draftCampaign.createNegativeKeyword("shoes"); // Will fail in preview.
การดำเนินการนี้จะไม่สำเร็จในโหมดแสดงตัวอย่างเนื่องจากเข้าถึงแคมเปญร่างไม่ได้ ทันที
ในทำนองเดียวกัน การสร้างการทดสอบและพยายามดึงข้อมูลแบบร่างทันที แคมเปญจะล้มเหลวในโหมดแสดงตัวอย่าง เนื่องจากไม่ได้สร้างแบบร่างจริง
ด้วยเหตุนี้ ให้ตรวจสอบบันทึกด้านล่างรายการสคริปต์หลังจากเรียกใช้สคริปต์ แล้วดำเนินการกับสคริปต์แสดงตัวอย่างที่ล้มเหลวต่อ หากคุณเชื่อว่าสาเหตุเกิดจาก ข้อจำกัดในโหมดแสดงตัวอย่าง