Componentes opcionais das campanhas Performance Max

Metas de conversão

Ao criar uma campanha Performance Max, uma série de metas de conversão são criadas automaticamente para corresponder aos CustomerConversionGoals na conta. Você pode personalizar essas metas especificamente para cada uma das suas campanhas Performance Max atualizando-as.

Para fazer isso, primeiro você precisa buscar o ID da campanha das suas campanhas Performance Max e uma lista de todas as metas de conversão do cliente. Confira um exemplo de como mudar as metas de uma campanha, mas 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, personalizando a segmentação de cada meta. O exemplo de código mostrado mais adiante nesta seção define todas as metas como lances, mas você vai querer personalizar essa parte da lógica para corresponder ao que deseja da sua campanha.

Recomendamos configurar as metas de conversão em uma transação separada do restante do processo de criação da campanha. CampaignConversionGoalOperation exige que partialFailure para a solicitação seja definido como false. Se você quiser executar esse código na mesma transação em que cria a campanha, defina todo o conjunto de operações para que a falha parcial seja desativada. 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 de campanhas na Performance Max, consulte o guia da API para conferir uma lista completa dos tipos de critérios permitidos.

Outros critérios não são necessários para criar uma campanha Performance Max, mas 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 um destino geográfico. Consulte a CampaignCriterion documentação para conferir o formato de outros tipos de critérios.

Você pode criar esses critérios junto com a campanha como parte da mesma chamada para mutateAll. Este exemplo de código considera 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 os indicadores do 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 existente AudienceInfo ou SearchThemeInfo. Se você quiser usar um público-alvo, especifique o campo audience em vez do campo searchTheme com o nome do recurso do público-alvo.

operations.push({
  "assetGroupSignalOperation": {
    "create": {
      "assetGroup": assetGroupOperation.assetGroupOperation.create.resourceName,
      "searchTheme": {
        "text": "mars cruise"
      }
    }
  }
});