Como usar IDs temporários

Um recurso avançado do BatchJobService é que ele oferece suporte ao uso de IDs temporários.

Para fazer isso, especifique o resource_name do novo recurso para usar uma um ID negativo. Por exemplo, se você criar uma campanha e especificar o nome do recurso como customers/<YOUR_CUSTOMER_ID>/campaigns/-1, ao criar o grupo de anúncios em uma operação posterior, será possível fazer referência a ele por esse nome de recurso o valor de -1 que você especificou será substituído pelo ID real da campanha criada. automaticamente.

Confira o que é preciso considerar ao usar nomes de recursos temporários:

  • Um nome de recurso temporário só pode ser usado depois de ter sido definido em um recurso. No exemplo abaixo, a operação do grupo de anúncios teria que aparecer após a operação de campanha na lista de operações.
  • Nomes de recursos temporários não são lembrados em todas as tarefas ou solicitações mutate; para fazer referência a um recurso criado em um trabalho anterior ou uma solicitação de mutação, use o seu nome real do recurso.
  • Para um único trabalho ou solicitação mutate, cada nome de recurso temporário deve usar um número negativo exclusivo, mesmo que sejam de tipos de recursos diferentes. Se um ID temporário for reutilizado em uma única tarefa ou solicitação mutate, um erro é retornado.

Exemplo

Para dar um exemplo mais concreto da situação mencionada acima, suponha adicionar uma campanha, um grupo de anúncios e um anúncio em uma única solicitação de API. Você criaria uma estrutura para sua solicitação parecida com esta:

mutate_operations: [
  {
    campaign_operation: {
      create: {
        resource_name: "customers/<YOUR_CUSTOMER_ID>/campaigns/-1",
        ...
      }
    }
  },
  {
    ad_group_operation: {
      create: {
        resource_name: "customers/<YOUR_CUSTOMER_ID>/adGroups/-2",
        campaign: "customers/<YOUR_CUSTOMER_ID>/campaigns/-1"
        ...
      }
    }
  },
  {
    ad_group_ad_operation: {
      create: {
        ad_group: "customers/<YOUR_CUSTOMER_ID>/adGroups/-2"
        ...
      }
    }
  },
]

Um novo ID temporário é usado para o grupo de anúncios, já que não podemos reutilizar o -1 que usamos para a campanha, e também referenciamos esse grupo de anúncios quando criar um anúncio de grupo de anúncios. O próprio grupo de anúncios faz referência ao nome do recurso que estabelecida para a campanha em uma operação anterior na solicitação, enquanto resource_name em ad_group_ad_operation não é necessário porque não há faz referência a ele.