Os scripts do Google Ads fornecem certo gerenciamento das suas campanhas Performance Max. É possível usar scripts para recuperar campanhas Performance Max, gerenciar grupos de recursos e gerar relatórios. No entanto, não é possível usar scripts para criar campanhas Performance Max.
Recuperação de campanhas Performance Max
As campanhas Performance Max estão disponíveis no conjunto performanceMaxCampaigns
de um objeto AdsApp
. Elas podem ser recuperadas normalmente:
const campaignName = "My Performance Max campaign";
const campaignIterator = AdsApp.performanceMaxCampaigns()
.withCondition(`campaign.name = "${campaignName}"`)
.get();
for (const campaign of campaignIterator) {
...
}
Ao contrário de alguns outros tipos, as campanhas Performance Max não têm grupos ou objetos de anúncio visíveis. Tudo relacionado a esses conceitos para outras campanhas é processado automaticamente com base nos grupos de recursos definidos.
Recursos e grupos de recursos
Os anúncios das campanhas Performance Max não contêm recursos, como vídeos, imagens, títulos e descrições, tanto fornecidos por você quanto gerados automaticamente. Para uma visão geral completa dos tipos de recurso necessários, consulte o Guia de recursos das campanhas Performance Max da API Google Ads.
Os recursos das campanhas Performance Max são agrupados em um grupo de recursos, e cada campanha Performance Max precisa ter pelo menos um grupo. Não é possível criar esses grupos de recursos diretamente nos scripts, mas você pode adicionar e remover recursos de um grupo existente.
Adicionar recurso ao grupo
Primeiro, crie o recurso:
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();
Em seguida, adicione o recurso a um grupo existente usando o recurso que você acabou de criar:
// 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');
Observe como você precisa especificar o tipo de recurso na última etapa. Você encontra uma lista completa dos tipos de recurso na documentação da API Google Ads.
Para usar um recurso atual, crie um seletor:
const assetSelector = AdsApp.adAssets().assets();
Em seguida, use um filtro withCondition
para restringir aos recursos com que você quer operar. Para ver uma lista completa de opções de filtro,
consulte a documentação de referência
AssetSelector
.
Por fim, busque o iterador e itere como com outras entidades:
const assetIterator = assetSelector.get();
for (const asset of assetIterator) {
...
}
Recursos de texto
Os recursos de texto funcionam de maneira um pouco diferente, porque você não precisa criar o recurso com antecedência. Basta especificar o texto em vez de um recurso e o sistema criará o recurso automaticamente. Se o texto for uma cópia exata de um recurso de texto existente, o recurso atual será reutilizado.
Por exemplo, confira como criar um recurso de título:
assetGroup.addAsset('asset text here', 'HEADLINE');
Remover recurso do grupo
Também é possível remover um recurso de um grupo. No entanto, você precisa ter um número mínimo de determinados tipos de recursos para que a campanha seja válida.
Veja como remover o recurso adicionado no exemplo anterior:
assetGroup.removeAsset(imageAsset, 'MARKETING_IMAGE');
Também é possível consultar uma lista de recursos em um determinado grupo com a função
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}'`
);
Essa ação seleciona o nome do recurso como identificador exclusivo. Também é possível
selecionar outros campos, como asset.type
ou asset.text_asset.text
, para
refinar ainda mais os resultados. Use o criador de consultas para este tipo de relatório para criar sua própria consulta.
Quando você tiver o recurso de destino, chame remove
no grupo para removê-lo:
// 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);
Relatórios
As campanhas Performance Max são informadas no recurso campaign
com outros tipos de campanha. Para começar, você pode usar algo assim:
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
Não selecione nenhum campo ad_group
, já que as campanhas Performance Max não têm grupos de anúncios. Portanto, nenhum grupo vai ser retornado. Além disso, asset_group
não pode ser segmentado.
Saiba mais sobre os relatórios no nosso guia de relatórios.
Também é possível gerar relatórios diretamente sobre os grupos de recursos. Para mais informações sobre como fazer isso, consulte o guia da Google Ads API sobre esse tópico.
Você pode usar qualquer consulta exibida no método AdsApp.search
nos scripts do Google Ads para ver os mesmos resultados.