Gli script Google Ads consentono di gestire alcune campagne Performance Max. Puoi utilizzare gli script per recuperare le campagne Performance Max, gestire i gruppi di asset ed eseguire report. Non puoi utilizzare gli script per creare campagne Performance Max.
Recupero delle campagne Performance Max
Le campagne Performance Max sono disponibili tramite la raccolta performanceMaxCampaigns
di un oggetto AdsApp
. Puoi recuperarli come al solito:
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 campagna, le campagne Performance Max non contengono 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 impostati.
Asset e gruppi di asset
Gli annunci delle campagne Performance Max si basano su 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 sono 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.
Aggiungi asset al gruppo di asset
Per prima cosa, crea la risorsa:
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 come devi specificare il tipo di asset nell'ultimo passaggio. Puoi trovare un elenco completo dei tipi di asset nella documentazione dell'API Google Ads.
Per utilizzare un asset esistente, crea prima un selettore di asset:
const assetSelector = AdsApp.adAssets().assets();
Successivamente, utilizza un filtro withCondition
per restringere gli asset su cui vuoi
operare. Per un elenco completo delle opzioni di filtro, consulta la documentazione di riferimento di AssetSelector
.
Infine, recupera l'iteratore e ripeti l'iterazione come per altre entità:
const assetIterator = assetSelector.get();
for (const asset of assetIterator) {
...
}
Asset di testo
Gli asset di testo funzionano in modo leggermente diverso, poiché non è necessario crearli in anticipo. È sufficiente specificare il testo anziché un asset e il sistema lo creerà automaticamente. Se il testo è un duplicato esatto di un asset di testo esistente, verrà riutilizzato l'asset esistente.
Ad esempio, ecco come creare un asset titolo:
assetGroup.addAsset('asset text here', 'HEADLINE');
Rimuovi asset dal gruppo di asset
Puoi anche rimuovere un asset da un gruppo di asset. Tuttavia, tieni presente che devi disporre di 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}'`
);
Viene selezionato il nome della risorsa dell'asset come identificatore univoco. Puoi selezionare anche altri campi, ad esempio asset.type
o asset.text_asset.text
, per perfezionare ulteriormente i risultati. Utilizza Query Builder per questo tipo di report per creare la tua query.
Una volta ottenuto l'asset target, chiama remove
nel gruppo di asset per rimuoverlo
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);
Report
Le campagne Performance Max sono registrate nella risorsa campaign
insieme agli altri tipi di campagna. Per iniziare, puoi utilizzare qualcosa del genere:
SELECT
campaign.id,
campaign.url_expansion_opt_out,
campaign.status,
campaign.bidding_strategy_type,
metrics.clicks,
metrics.cost_micros,
metrics.impressions,
metrics.conversions,
metrics.all_conversions
FROM campaign
WHERE campaign.advertising_channel_type = 'PERFORMANCE_MAX'
AND metrics.clicks > 0
Non selezionare alcun campo ad_group
, poiché le campagne Performance Max non hanno gruppi di annunci e, di conseguenza, non ne verrà restituito nessuno. Inoltre, asset_group
non può essere segmentato.
Scopri di più sui report nella nostra guida ai report.
Puoi anche generare report direttamente sui gruppi di asset. Per ulteriori informazioni su come
risolvere questo problema, consulta la guida dell'API Google Ads
in questo argomento.
Puoi prendere qualsiasi query presente ed eseguirla con il metodo AdsApp.search
negli script Google Ads per ottenere gli stessi risultati.