Campagne Performance Max

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.