Metas de conversão
Ao criar uma campanha Performance Max, uma série de metas de conversão são criadas automaticamente e correspondem aos CustomerConversionGoal
s na conta. Você pode personalizar esses recursos especificamente para cada uma das suas campanhas Performance Max atualizando-os.
Para isso, primeiro busque o ID das suas campanhas Performance Max e uma lista de todas as metas de conversão de cliente. Confira um exemplo de como mudar as metas de uma campanha. Também é possível configurar o código para fazer um loop em várias campanhas Performance Max.
// Query for a campaign by name. Update this logic to pull the campaigns you'd
// like to edit
const campaignName = "My PMax campaign";
let campaignId = "";
const search = AdsApp.search(`SELECT campaign.id FROM campaign WHERE campaign.name = "${campaignName}"`);
if (search.hasNext()) {
campaignId = search.next().campaign.id;
console.log(`Updating conversion goals for ${campaignName}: ${campaignId}`);
}
else
{
console.log(`No campaign named "${campaignName}" found`);
// Perform further error handling here
}
// Query for a list of customer conversion goals
const searchResults = AdsApp.search(
`SELECT
customer_conversion_goal.category,
customer_conversion_goal.origin
FROM customer_conversion_goal`
);
Em seguida, você pode iterar todas as metas de conversão recebidas e criar uma operação de atualização para a campanha Performance Max atual e personalizar a segmentação de cada meta. O exemplo de código mostrado mais adiante nesta seção define todas as metas como passíveis de lances, mas é recomendável personalizar essa parte da lógica para corresponder ao que você quer alcançar com sua campanha.
Recomendamos configurar metas de conversão em uma transação separada do restante do processo de criação da campanha.
CampaignConversionGoalOperation
exige que partialFailure
da solicitação seja definido como false
. Se você quiser executar esse código na mesma transação em que criou a campanha, desative a falha parcial em todo o conjunto de operações. Este exemplo de código demonstra como realizar essa operação em uma transação separada.
operations = [];
while (searchResults.hasNext()) {
const row = searchResults.next();
const conversionGoal = row.customerConversionGoal;
operations.push({
"campaignConversionGoalOperation": {
"update": {
"resourceName": `customers/${customerId}/campaignConversionGoals/${campaignId}~${conversionGoal.category}~${conversionGoal.origin}`,
// Insert your logic here to determine whether you want this particular
// campaign conversion goal to be biddable or not.
// This code will just default everything to being biddable, but that
// is not necessarily best for your use case.
"biddable": true
},
"updateMask": "biddable"
}
});
}
AdsApp.mutateAll(operations, {partialFailure: false});
Segmentação da campanha
Para a segmentação por campanha nas campanhas Performance Max, confira o guia da API para uma lista completa de tipos de critérios permitidos.
Não é necessário ter outros critérios para criar uma campanha Performance Max, mas eles podem ser úteis para restringir a segmentação com base no seu caso de uso. O exemplo de código a seguir mostra como configurar uma segmentação geográfica. Consulte a documentação CampaignCriterion
para ver o formato de outros tipos de critérios.
É possível criar esses critérios junto com a campanha como parte da mesma chamada para mutateAll
. Este exemplo de código pressupõe que é assim que você está
estruturando seu código.
operations.push({
"campaignCriterionOperation": {
"create": {
"campaign": campaignOperation.campaignOperation.create.resourceName,
"negative": false,
"location": {
// 1023191 represents New York City
"geoTargetConstant": "geoTargetConstants/1023191"
}
}
}
});
Indicadores do grupo de recursos
Leia sobre indicadores de grupo de recursos na documentação da API antes de começar. Eles são configurados vinculando um grupo de recursos a um critério AudienceInfo
ou SearchThemeInfo
. Se você quiser usar um público-alvo, especifique o campo audience
em vez de searchTheme
com o nome do recurso do público-alvo.
operations.push({
"assetGroupSignalOperation": {
"create": {
"assetGroup": assetGroupOperation.assetGroupOperation.create.resourceName,
"searchTheme": {
"text": "mars cruise"
}
}
}
});