Os scripts do Google Ads permitem um certo nível de gerenciamento das suas campanhas Performance Max
do Shopping. Você pode usar
para recuperar campanhas Performance Max, gerenciar grupos de recursos e veicular
Relatórios No entanto, não é possível usar scripts para criar campanhas Performance Max. Para
realizar operações mais avançadas, consulte o restante deste guia, que
demonstra uma abordagem mais genérica usando mutate
.
Recuperação de campanhas Performance Max
As campanhas Performance Max estão disponíveis
performanceMaxCampaigns
coleção de um AdsApp
objeto. É possível recuperá-las 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 de campanha, as campanhas Performance Max não têm grupos ou objetos de anúncio que você pode ver, tudo relacionado a esses conceitos para as outras campanhas são administradas automaticamente com base nos grupos de recursos que você definido.
Recursos e grupos de recursos
Os anúncios das campanhas Performance Max recursos como vídeos, imagens, títulos e descrições fornecidos por você ou geradas automaticamente. Para uma visão geral completa dos tipos de recursos obrigatório, consulte o recurso de campanhas Performance Max da API Google Ads guia.
Os recursos das campanhas Performance Max são agrupados em um grupo. e cada campanha Performance Max precisa ter pelo menos um grupo de recursos. Você não pode criar esses grupos de recursos diretamente em scripts, mas você pode adicionar e remover recursos de um grupo atual.
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();
Use o recurso que você acabou de criar para adicioná-lo a um grupo:
// 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. É possível encontrar um lista completa dos tipos de recursos na API Google Ads documentação
Para usar um recurso atual, primeiro crie um seletor de recursos:
const assetSelector = AdsApp.adAssets().assets();
Em seguida, use um filtro withCondition
para restringir os recursos que você quer
operar. Consulte a
AssetSelector
documentação de referência para uma lista completa de opções de filtro.
Por fim, busque o iterador e itere da mesma forma que fez 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 não é preciso torná-los com antecedência. Basta especificar o texto em vez de um recurso, e o sistema para criar o recurso automaticamente. Se o texto for uma cópia exata de uma de texto existente, o 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, tenha em mente que você deve ter um número mínimo de certos tipos de recursos para que a campanha seja válida.
Veja como remover o recurso que foi adicionado no exemplo anterior:
assetGroup.removeAsset(imageAsset, 'MARKETING_IMAGE');
Também é possível acessar uma lista dos recursos de um determinado grupo com o search
.
função:
// 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}'`
);
Isso seleciona o nome do recurso do recurso como identificador exclusivo. Você pode
selecione outros campos também, como asset.type
ou asset.text_asset.text
para
refinar ainda mais os resultados. Usar o criador de consultas para esse relatório
type para criar
sua própria consulta.
Assim que você tiver o recurso de destino, chame remove
no grupo de recursos para remover o
recurso do grupo:
// 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);