เป้าหมาย Conversion
เมื่อสร้างแคมเปญ Performance Max ระบบจะสร้างเป้าหมาย Conversion
หลายรายการโดยอัตโนมัติซึ่งตรงกับ CustomerConversionGoalใน
บัญชี คุณสามารถปรับแต่งเป้าหมายเหล่านี้สำหรับแคมเปญ Performance Max แต่ละแคมเปญได้โดยการอัปเดตเป้าหมาย
หากต้องการทำเช่นนั้น คุณต้องดึงข้อมูลรหัสแคมเปญของแคมเปญ Performance Max และรายการเป้าหมาย Conversion ของลูกค้าทั้งหมดก่อน ตัวอย่างนี้แสดงการเปลี่ยนเป้าหมายของแคมเปญหนึ่ง แต่คุณยังตั้งค่าโค้ดให้วนซ้ำในแคมเปญ Performance Max หลายแคมเปญได้ด้วย
// Query for a campaign by name. Update this logic to pull the campaigns you'd
// like to edit
const campaignName = "My PMax campaign";
let campaignId = "";
const search = AdsApp.search(`SELECT campaign.id FROM campaign WHERE campaign.name = "${campaignName}"`);
if (search.hasNext()) {
campaignId = search.next().campaign.id;
console.log(`Updating conversion goals for ${campaignName}: ${campaignId}`);
}
else
{
console.log(`No campaign named "${campaignName}" found`);
// Perform further error handling here
}
// Query for a list of customer conversion goals
const searchResults = AdsApp.search(
`SELECT
customer_conversion_goal.category,
customer_conversion_goal.origin
FROM customer_conversion_goal`
);
จากนั้นคุณสามารถวนซ้ำเป้าหมาย Conversion ทั้งหมดที่ได้รับกลับมาและสร้างการดำเนินการอัปเดตสำหรับแคมเปญ Performance Max ปัจจุบันเพื่อปรับแต่งการกำหนดเป้าหมายสำหรับแต่ละเป้าหมาย ตัวอย่างโค้ดที่แสดงในส่วนนี้จะตั้งค่าเป้าหมายทั้งหมดเป็นเสนอราคาได้ แต่คุณจะต้องปรับแต่งส่วนตรรกะให้ตรงกับสิ่งที่คุณต้องการจากแคมเปญ
เราขอแนะนำให้ตั้งค่าเป้าหมาย Conversion ในธุรกรรมแยกต่างหากจากกระบวนการสร้างแคมเปญอื่นๆ CampaignConversionGoalOperation
กำหนดให้ตั้งค่า partialFailure สำหรับคำขอเป็น false หากต้องการเรียกใช้โค้ดนี้ในธุรกรรมเดียวกันกับที่สร้างแคมเปญครั้งแรก คุณต้องตั้งค่าการดำเนินการทั้งหมดให้ปิดการล้มเหลวบางส่วน ตัวอย่างโค้ดนี้แสดงวิธีดำเนินการนี้ในธุรกรรม แยกต่างหาก
operations = [];
while (searchResults.hasNext()) {
const row = searchResults.next();
const conversionGoal = row.customerConversionGoal;
operations.push({
"campaignConversionGoalOperation": {
"update": {
"resourceName": `customers/${customerId}/campaignConversionGoals/${campaignId}~${conversionGoal.category}~${conversionGoal.origin}`,
// Insert your logic here to determine whether you want this particular
// campaign conversion goal to be biddable or not.
// This code will just default everything to being biddable, but that
// is not necessarily best for your use case.
"biddable": true
},
"updateMask": "biddable"
}
});
}
AdsApp.mutateAll(operations, {partialFailure: false});
การกำหนดเป้าหมายแคมเปญ
สำหรับการกำหนดเป้าหมายแคมเปญใน Performance Max โปรดดูรายการประเภทเกณฑ์ที่อนุญาตทั้งหมดใน คู่มือ API
คุณไม่จำเป็นต้องใช้เกณฑ์เพิ่มเติมในการสร้างแคมเปญ Performance Max แต่เกณฑ์เพิ่มเติมอาจมีประโยชน์ในการช่วยจำกัดการกำหนดเป้าหมายตามกรณีการใช้งาน ตัวอย่างโค้ดถัดไปจะแสดงวิธีตั้งค่าเป้าหมายตามสถานที่ทางภูมิศาสตร์ คุณสามารถดูรูปแบบของเกณฑ์ประเภทอื่นๆ ได้ในเอกสารประกอบ
CampaignCriterion
คุณสามารถสร้างเกณฑ์เหล่านี้พร้อมกับแคมเปญเองได้โดยเป็นส่วนหนึ่งของการเรียก mutateAll เดียวกัน ตัวอย่างโค้ดนี้ถือว่าคุณจัดโครงสร้างโค้ดในลักษณะดังกล่าว
operations.push({
"campaignCriterionOperation": {
"create": {
"campaign": campaignOperation.campaignOperation.create.resourceName,
"negative": false,
"location": {
// 1023191 represents New York City
"geoTargetConstant": "geoTargetConstants/1023191"
}
}
}
});
สัญญาณกลุ่มชิ้นงาน
อ่านข้อมูลเกี่ยวกับสัญญาณกลุ่มชิ้นงานในเอกสารประกอบ API ก่อนเริ่มต้น
ใช้งาน คุณตั้งค่าสัญญาณเหล่านี้ได้โดยการลิงก์กลุ่มชิ้นงานกับเกณฑ์ที่มีอยู่
AudienceInfo หรือ SearchThemeInfo หากต้องการใช้กลุ่มเป้าหมายแทน ให้ระบุฟิลด์ audience แทนฟิลด์ searchTheme ด้วยชื่อทรัพยากรของกลุ่มเป้าหมาย
operations.push({
"assetGroupSignalOperation": {
"create": {
"assetGroup": assetGroupOperation.assetGroupOperation.create.resourceName,
"searchTheme": {
"text": "mars cruise"
}
}
}
});