Para gerar uma campanha Performance Max do zero, você precisa criar pelo menos o seguinte:
- A campanha em si
- Um orçamento
- Recursos no nível da conta
- Um grupo de recursos
- Links entre os recursos na sua conta e o grupo de recursos que você vai usar para esta campanha.
A campanha e o orçamento são úteis para criar todos os tipos de campanhas, enquanto as operações relacionadas a recursos são especialmente úteis para criar campanhas Performance Max.
Confira se você conhece a estratégia de mutação, já que este guia só vai fornecer os objetos JavaScript a serem usados nas mutações.
Orçamento
O orçamento não pode ser compartilhado e precisa ter um nome exclusivo na sua conta. Use
um CampaignBudgetOperation.
const budgetOperation = {
  "campaignBudgetOperation": {
    "create": {
      "resourceName": `customers/${customerId}/campaignBudgets/${getNextTempId()}`,
      "name": "Performance Max campaign budget",
      "amountMicros": "50000000",
      "deliveryMethod": "STANDARD",
      "explicitlyShared": false
    }
  }
}
operations.push(budgetOperation);
Campanha
A campanha precisa fazer referência ao orçamento criado anteriormente. Portanto, além de especificar o próprio nome de recurso com um ID temporário, você vai precisar do nome de recurso exato definido na etapa anterior para criar a campanha e identificar de forma exclusiva o orçamento criado anteriormente nesta solicitação.
Use um CampaignOperation.
const campaignOperation = {
  "campaignOperation": {
    "create": {
      "resourceName": `customers/${customerId}/campaigns/${getNextTempId()}`,
      "name": "Performance Max campaign",
      "status": "PAUSED",
      "advertisingChannelType": "PERFORMANCE_MAX",
      "campaignBudget": budgetOperation.campaignBudgetOperation.create.resourceName,
      "biddingStrategyType": "MAXIMIZE_CONVERSION_VALUE",
      "startDate": "20240314",
      "endDate": "20250313",
      "urlExpansionOptOut": false,
      "maximizeConversionValue": {
        "targetRoas": 3.5
      }
    }
  }
}
operations.push(campaignOperation);
Grupo de recursos
O grupo de recursos dessa campanha exige uma referência a ela, que será necessária mais tarde, quando você vincular recursos a ele. Use um
AssetGroupOperation.
const assetGroupOperation = {
  "assetGroupOperation": {
    "create": {
      "resourceName": `customers/${customerId}/assetGroups/${getNextTempId()}`,
      "campaign": campaignOperation.campaignOperation.create.resourceName,
      "name": "Performance Max asset group",
      "finalUrls": [
        "http://www.example.com"
      ],
      "finalMobileUrls": [
        "http://www.example.com"
      ],
      "status": "PAUSED"
    }
  }
}
operations.push(assetGroupOperation);
Links do grupo de recursos
Agora que você tem os grupos de recursos e os recursos (da etapa anterior), é necessário vinculá-los para que a campanha Performance Max saiba quais recursos você quer usar. Você precisa fazer isso na mesma solicitação em que cria
o grupo de recursos inicialmente. Para fazer isso, use um
AssetGroupAssetOperation.
Você precisará fornecer o nome correto do recurso de recurso e modificar
o fieldType para o valor adequado do recurso que está vinculando. Confira a lista completa de tipos de campos válidos.
Você vai precisar de várias dessas operações para atender aos requisitos mínimos de uma campanha Performance Max.
operations.push({
  "assetGroupAssetOperation": {
    "create": {
      "assetGroup": assetGroupOperation.assetGroupOperation.create.resourceName,
      // assetResourceName here is a placeholder; you will need to determine
      // the correct resource name to use depending on which asset you want
      // to add to the asset group.
      "asset": assetResourceName,
      "fieldType": "HEADLINE"
    }
  }
});