Google Ads 指令碼可協助您管理最高成效廣告活動。您可以使用指令碼擷取最高成效廣告活動、管理素材資源群組和執行報表,但無法使用指令碼建立最高成效廣告活動。如要執行更進階的作業,請參閱本指南的其餘部分,瞭解如何使用 mutate
執行更通用的方法。
擷取最高成效廣告活動
您可以透過 AdsApp
物件的 performanceMaxCampaigns
集合,使用最高成效廣告活動。你可以照常擷取這些資訊:
const campaignName = "My Performance Max campaign";
const campaignIterator = AdsApp.performanceMaxCampaigns()
.withCondition(`campaign.name = "${campaignName}"`)
.get();
for (const campaign of campaignIterator) {
...
}
與其他廣告活動類型不同,最高成效廣告活動沒有您能看到的廣告群組或廣告物件;其他廣告活動中與這些概念相關的所有內容,都會根據您設定的素材資源群組自動處理。
素材資源和素材資源群組
最高成效廣告活動的廣告會使用素材資源 (例如影片、圖片、廣告標題和說明) 放送,這些素材資源可能是您提供的,也可能是系統自動產生的。如需完整的素材資源類型需求總覽,請參閱 Google Ads API 最高成效廣告活動素材資源指南。
最高成效廣告活動的素材資源會組合成素材資源群組,且每個最高成效廣告活動至少要有一個素材資源群組。您無法直接在指令碼中建立這些素材資源群組,但可以新增及移除現有素材資源群組中的素材資源。
將素材資源新增至素材資源群組
首先,請建立素材資源:
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}'`
);
這會選取資產的資源名稱做為專屬 ID。您也可以選取其他欄位,例如 asset.type
或 asset.text_asset.text
,進一步精進結果。使用這類報表的查詢建立工具,自行撰寫查詢。
取得目標資產後,請對素材資源群組呼叫 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);