Campagne Performance Max con AdsApp

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. 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 all'utilizzo di mutate.

Recupero delle campagne Performance Max

Le campagne Performance Max sono disponibili tramite la raccolta di un oggetto AdsApp.performanceMaxCampaigns 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 impostati.

Asset e gruppi di asset

Gli annunci delle campagne Performance Max vengono pubblicati in base a 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 al 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();

A questo punto, aggiungi l'asset appena creato 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 devi specificare il tipo di risorsa nell'ultimo passaggio. Puoi trovare un elenco completo dei tipi di asset nella documentazione dell'API di Google Ads

Per utilizzare una risorsa esistente, crea prima un selettore di risorse:

const assetSelector = AdsApp.adAssets().assets();

Quindi, utilizza un filtro withCondition per restringere la ricerca agli asset su cui vuoi eseguire operazioni. Consulta la documentazione di riferimento di AssetSelector per un elenco completo delle opzioni di filtro.

Infine, recupera l'iteratore ed esegui l'iterazione come per le 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 crearli in anticipo. Devi solo 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, di seguito è riportato come creare una risorsa titolo:

assetGroup.addAsset('asset text here', 'HEADLINE');

Rimuovere un asset dal gruppo di asset

Puoi anche rimuovere un asset da un gruppo di asset. Tuttavia, tieni presente che per la validità della campagna è necessario un numero minimo di determinati tipi di asset.

Ecco come rimuovere la risorsa aggiunta nell'esempio precedente:

assetGroup.removeAsset(imageAsset, 'MARKETING_IMAGE');

Puoi anche ottenere un elenco di 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 anche selezionare altri campi, come asset.type o asset.text_asset.text, per perfezionare ulteriormente i risultati. Utilizza lo strumento per la creazione di 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 rimuoverlo dal gruppo:

// 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);