Utilizzare gli ID temporanei

Una potente funzionalità di BatchJobService è che supporta l'utilizzo di ID temporanei.

Puoi farlo specificando il nuovo resource_name della risorsa da utilizzare un ID negativo. Ad esempio, supponiamo di creare una campagna e di specificare il relativo nome risorsa come customers/<YOUR_CUSTOMER_ID>/campaigns/-1. Quando crei il gruppo di annunci in un'operazione successiva, puoi farvi riferimento in base al nome della risorsa e il -1 che hai specificato verrà sostituito automaticamente dall'ID effettivo della campagna creata.

Ecco alcuni aspetti da tenere presente quando utilizzi i nomi delle risorse temporanei:

  • Un nome di risorsa temporaneo può essere utilizzato solo dopo essere stato definito in una risorsa. Nell'esempio seguente, l'operazione del gruppo di annunci deve essere visualizzata dopo l'operazione della campagna nell'elenco delle operazioni.
  • I nomi delle risorse temporanee non vengono memorizzati tra job o richieste di mutazione. Per fare riferimento a una risorsa creata in un job o in una richiesta di mutazione precedente, utilizza il relativo nome risorsa effettivo.
  • Per una singola richiesta di mutate o di lavoro, ogni nome di risorsa temporanea deve utilizzare un numero negativo univoco, anche se appartengono a tipi di risorse diversi. Se un ID temporaneo viene riutilizzato in un singolo job o in una richiesta di modifica, viene restituito un errore.

Esempio

Supponiamo che tu voglia aggiungere una campagna, un gruppo di annunci e un annuncio in un'unica richiesta API. Creeresti una struttura per la tua richiesta analoga alla seguente:

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"
        ...
      }
    }
  },
]

Per il gruppo di annunci viene utilizzato un nuovo ID temporaneo, poiché non possiamo riutilizzare -1 che abbiamo utilizzato per la campagna. Facciamo riferimento a questo gruppo di annunci anche quando creiamo un annuncio del gruppo di annunci. Il gruppo di annunci fa riferimento al nome della risorsa che abbiamo stabilito per la campagna in un'operazione precedente della richiesta, mentre resource_name in ad_group_ad_operation non è necessario perché non fa riferimento a nessun'altra operazione.