Gli script Google Ads consentono una certa gestione delle tue
campagne Performance Max.
Puoi utilizzare gli script per recuperare le campagne Performance Max, gestire i gruppi di asset e generare report. Tuttavia, non puoi utilizzare gli script per creare campagne Performance Max. Per eseguire operazioni più avanzate, consulta il resto di questa guida,
che illustra un approccio più generico utilizzando mutate
.
Recupero delle campagne Performance Max
Le campagne Performance Max sono disponibili tramite la
raccolta performanceMaxCampaigns
di un oggetto AdsApp
. Puoi recuperarli come di consueto:
const campaignName = "My Performance Max campaign";
const campaignIterator = AdsApp.performanceMaxCampaigns()
.withCondition(`campaign.name = "${campaignName}"`)
.get();
for (const campaign of campaignIterator) {
...
}
A differenza di altri tipi di campagne, le campagne Performance Max non hanno gruppi di annunci o oggetti annuncio visibili. Tutto ciò che riguarda questi concetti per altre campagne viene gestito automaticamente in base ai gruppi di asset che imposti.
Asset e gruppi di asset
Gli annunci delle campagne Performance Max vengono pubblicati a partire dagli asset, come video, immagini, titoli e descrizioni, forniti da te o generati automaticamente. Per una panoramica completa dei tipi di asset richiesti, consulta la Guida agli asset Performance Max dell'API Google Ads.
Gli asset per le campagne Performance Max vengono raggruppati in un gruppo di asset e ogni campagna Performance Max deve avere almeno un gruppo di asset. Non puoi creare questi gruppi di asset direttamente negli script, ma puoi aggiungere e rimuovere asset da un gruppo di asset esistente.
Aggiungere un asset a un gruppo di asset
Innanzitutto, crea l'asset:
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();
Poi, utilizzando l'asset appena creato, aggiungilo a un gruppo di asset esistente:
// 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');
Tieni presente che nell'ultimo passaggio devi specificare il tipo di asset. Puoi trovare un elenco completo dei tipi di asset nella documentazione dell'API Google Ads.
Per utilizzare una risorsa esistente, crea prima un selettore di risorse:
const assetSelector = AdsApp.adAssets().assets();
Poi utilizza un filtro withCondition
per restringere la ricerca agli asset su cui vuoi
intervenire. Consulta la
AssetSelector
documentazione di riferimento per un elenco completo delle opzioni di filtro.
Infine, recupera l'iteratore e itera come con altre entità:
const assetIterator = assetSelector.get();
for (const asset of assetIterator) {
...
}
Asset di testo
Gli asset di testo funzionano in modo leggermente diverso, in quanto non è necessario creare l'asset in anticipo. Basta specificare il testo anziché un asset e il sistema creerà automaticamente l'asset. Se il testo è una copia esatta di un asset di testo esistente, verrà riutilizzato l'asset esistente.
Ad esempio, ecco come creare una risorsa titolo:
assetGroup.addAsset('asset text here', 'HEADLINE');
Rimuovere un asset da un gruppo di asset
Puoi anche rimuovere un asset da un gruppo di asset, ma tieni presente che devi avere un numero minimo di determinati tipi di asset affinché la campagna sia valida.
Ecco come rimuovere l'asset aggiunto nell'esempio precedente:
assetGroup.removeAsset(imageAsset, 'MARKETING_IMAGE');
Puoi anche ottenere un elenco degli asset in un determinato gruppo di asset con la funzione 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}'`
);
In questo modo, il nome risorsa dell'asset viene selezionato come identificatore univoco. Puoi
selezionare anche altri campi, come asset.type
o asset.text_asset.text
, per
perfezionare ulteriormente i risultati. Utilizza lo
strumento di creazione delle query per questo tipo di report
per creare la tua query.
Una volta ottenuto l'asset di destinazione, chiama remove
sul gruppo di asset per rimuovere l'asset dal gruppo di asset:
// 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);