Utilizzare gli ID temporanei

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

Puoi farlo specificando resource_name della nuova risorsa in modo che utilizzi un ID negativo. Ad esempio, se crei una campagna e specifichi il nome della risorsa come customers/<YOUR_CUSTOMER_ID>/campaigns/-1, quando crei il gruppo di annunci in un'operazione successiva, puoi farvi riferimento con il nome della risorsa e il valore -1 specificato verrà sostituito automaticamente dall'ID effettivo della campagna creata.

Ecco alcuni aspetti da tenere presenti quando utilizzi nomi di risorse temporanei:

  • È possibile utilizzare un nome temporaneo della risorsa solo dopo che è stato definito in una risorsa. Nell'esempio riportato di seguito, l'operazione relativa al gruppo di annunci deve essere visualizzata dopo l'operazione relativa alla campagna nell'elenco delle operazioni.
  • I nomi temporanei delle risorse non vengono memorizzati nei job o nelle richieste di modifica. Per fare riferimento a una risorsa creata in un job precedente o in una richiesta di modifica, utilizza il nome effettivo della risorsa.
  • Per un singolo job o una singola richiesta di modifica, ogni nome di risorsa temporaneo deve utilizzare un numero negativo univoco, anche se proviene da tipi di risorse diversi. Se un ID temporaneo viene riutilizzato in un singolo job o richiesta di modifica, viene restituito un errore.

Esempio

Per fornire un esempio più concreto alla situazione menzionata sopra, supponi di voler aggiungere una campagna, un gruppo di annunci e un annuncio a una singola richiesta API. Dovresti creare una struttura per la 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"
        ...
      }
    }
  },
]

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