สคริปต์ Google Ads มีไว้สำหรับการจัดการบางอย่างใน Performance Max
แคมเปญ คุณสามารถใช้
สคริปต์เพื่อดึงข้อมูลแคมเปญ Performance Max, จัดการกลุ่มชิ้นงาน และเรียกใช้
รายงาน แต่จะใช้สคริปต์เพื่อสร้างแคมเปญ Performance Max ไม่ได้ ถึง
ดำเนินการขั้นสูงเพิ่มเติม โปรดดูส่วนที่เหลือของคู่มือนี้
จะแสดงวิธีการที่เป็นแบบทั่วไปมากขึ้นโดยใช้ mutate
การดึงข้อมูลแคมเปญ Performance Max
แคมเปญ Performance Max มีให้บริการผ่าน
performanceMaxCampaigns
คอลเล็กชันของ AdsApp
ออบเจ็กต์ คุณสามารถเรียกดูข้อมูลเหล่านี้ได้ตามปกติ:
const campaignName = "My Performance Max campaign";
const campaignIterator = AdsApp.performanceMaxCampaigns()
.withCondition(`campaign.name = "${campaignName}"`)
.get();
for (const campaign of campaignIterator) {
...
}
แคมเปญ Performance Max ต่างจากแคมเปญประเภทอื่นๆ ตรงที่ไม่มีโฆษณา กลุ่มหรือออบเจ็กต์โฆษณาที่คุณมองเห็น ทุกอย่างที่เกี่ยวข้องกับแนวคิดเหล่านี้ ระบบจะจัดการแคมเปญอื่นๆ ให้คุณโดยอัตโนมัติตามกลุ่มชิ้นงานที่คุณ ตั้งค่า
ชิ้นงานและกลุ่มชิ้นงาน
โฆษณาจากแคมเปญ Performance Max ไม่แสดง เนื้อหา เช่น วิดีโอ รูปภาพ บรรทัดแรก และคำอธิบายที่มาจากคุณหรือ ที่สร้างขึ้นโดยอัตโนมัติ หากต้องการดูภาพรวมทั้งหมดเกี่ยวกับประเภทของชิ้นงาน โปรดดูชิ้นงาน Performance Max ของ Google Ads API
ชิ้นงานสําหรับแคมเปญ Performance Max จะรวมอยู่ในกลุ่มชิ้นงาน และแคมเปญ Performance Max แต่ละแคมเปญต้องมีกลุ่มชิ้นงานอย่างน้อย 1 กลุ่ม คุณ ไม่สามารถสร้างกลุ่มชิ้นงานเหล่านี้ในสคริปต์โดยตรง แต่คุณเพิ่มและ นำชิ้นงานออกจากกลุ่มชิ้นงานที่มีอยู่
เพิ่มชิ้นงานลงในกลุ่มชิ้นงาน
ขั้นแรก ให้สร้างเนื้อหาโดยทำดังนี้
const imageUrl = "http://www.example.com/example.png";
const imageBlob = UrlFetchApp.fetch(imageUrl).getBlob();
const assetOperation = AdsApp.adAssets().newImageAssetBuilder()
.withName("new asset name")
.withData(imageBlob)
.build();
const imageAsset = assetOperation.getResult();
จากนั้นเพิ่มชิ้นงานลงในกลุ่มชิ้นงานที่มีอยู่โดยใช้ชิ้นงานที่เพิ่งสร้างขึ้น
// First, fetch the Performance Max campaign we want to operate on.
const campaignIterator = AdsApp.performanceMaxCampaigns()
.withCondition(`campaign.name = '${campaignName}'`)
.get();
let campaign;
if (campaignIterator.hasNext()) {
campaign = campaignIterator.next();
} else {
throw `No campaign found with name ${campaignName}.`
}
// Then, get that campaign's asset groups.
const assetGroupIterator = campaign.assetGroups().get();
// The campaign must have at least one asset group, so we can just assume so here.
const assetGroup = assetGroupIterator.next();
// Add the asset from the previous step.
assetGroup.addAsset(imageAsset, 'MARKETING_IMAGE');
ดูวิธีที่คุณต้องระบุประเภทของเนื้อหาในขั้นตอนสุดท้าย คุณสามารถค้นหา รายการประเภทชิ้นงานทั้งหมดใน Google Ads API เอกสารประกอบ
หากต้องการใช้ชิ้นงานที่มีอยู่ ให้สร้างตัวเลือกชิ้นงานก่อน
const assetSelector = AdsApp.adAssets().assets();
จากนั้นใช้ตัวกรอง withCondition
เพื่อจำกัดชิ้นงานเฉพาะที่คุณต้องการ
ดำเนินการ โปรดดู
AssetSelector
ข้อมูลอ้างอิงสำหรับรายการตัวเลือกตัวกรองทั้งหมด
สุดท้าย ให้ดึงข้อมูลตัววนซ้ำและทำซ้ำเช่นเดียวกับเอนทิตีอื่นๆ
const assetIterator = assetSelector.get();
for (const asset of assetIterator) {
...
}
เนื้อหาข้อความ
ชิ้นงานข้อความมีการทำงานต่างกันเล็กน้อย โดยที่คุณไม่ต้องสร้างชิ้นงาน ล่วงหน้า เพียงระบุข้อความแทนเนื้อหา แล้วระบบจะ สร้างชิ้นงานให้คุณโดยอัตโนมัติ หากข้อความที่ซ้ำกับ ชิ้นงานข้อความที่มีอยู่จะนำไปใช้ซ้ำแทน
เช่น วิธีสร้างชิ้นงานบรรทัดแรกมีดังนี้
assetGroup.addAsset('asset text here', 'HEADLINE');
นำเนื้อหาออกจากกลุ่มชิ้นงาน
นอกจากนี้ คุณยังนำเนื้อหาออกจากกลุ่มชิ้นงานได้ด้วย แต่โปรดทราบว่า คุณต้องมีประเภทขั้นต่ำของประเภท ชิ้นงาน เพื่อให้แคมเปญใช้งานได้
วิธีนำชิ้นงานที่เพิ่มไว้ในตัวอย่างก่อนหน้านี้ออกมีดังนี้
assetGroup.removeAsset(imageAsset, 'MARKETING_IMAGE');
นอกจากนี้คุณยังดูรายการชิ้นงานในกลุ่มชิ้นงานที่ระบุได้ด้วย search
ฟังก์ชัน:
// The resource name is a unique identifier for this asset group.
const assetGroupName = assetGroup.getResourceName();
results = AdsApp.search(
`SELECT asset.resource_name, asset_group_asset.field_type
FROM asset_group_asset
WHERE asset_group.resource_name = '${assetGroupName}'`
);
วิธีนี้จะเลือกชื่อทรัพยากรของเนื้อหาเป็นตัวระบุที่ไม่ซ้ำกัน คุณสามารถ
เลือกช่องอื่นๆ ด้วย เช่น asset.type
หรือ asset.text_asset.text
เพื่อ
ปรับแต่งผลลัพธ์เพิ่มเติม ใช้เครื่องมือสร้างคำค้นหาสำหรับรายงานนี้
type เพื่อสร้างสรรค์
คำค้นหาของคุณเอง
เมื่อคุณมีชิ้นงานเป้าหมายแล้ว ให้โทรหา remove
ในกลุ่มชิ้นงานเพื่อนำ
ชิ้นงานจากกลุ่มชิ้นงาน
// Let's assume at least one asset is returned. We'll just remove the first
// asset, whatever it is. In your code, customize this to choose the right asset.
const row_info = results.next().asset;
assetGroup.remove(row_info.asset.resource_name, row_info.asset_group_asset.field_type);