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 da utilizzare un ID negativo. Ad esempio, se crei una campagna e specifichi come nome della risorsa customers/<YOUR_CUSTOMER_ID>/campaigns/-1, quando crei il gruppo di annunci in un'operazione successiva puoi farvi riferimento con il nome della risorsa specificato e il valore -1 specificato verrà sostituito automaticamente dall'ID effettivo della campagna creata.

Di seguito sono riportati alcuni aspetti da tenere presente quando utilizzi i nomi temporanei delle risorse:

  • Un nome risorsa temporaneo può essere utilizzato solo dopo essere stato definito in una risorsa. Nell'esempio riportato di seguito, l'operazione relativa al gruppo di annunci dovrebbe apparire nell'elenco delle operazioni dopo l'operazione sulla campagna.
  • I nomi delle risorse temporanee non vengono memorizzati nei job né 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 richiesta di modifica, ogni nome di risorsa temporanea deve utilizzare un numero negativo univoco, anche se provengono da 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

Per fornire un esempio più concreto alla situazione sopra descritta, supponi di voler aggiungere una campagna, un gruppo di annunci e un annuncio in una singola richiesta API. Crei 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"
        ...
      }
    }
  },
]

Tieni presente che viene utilizzato un nuovo ID temporaneo per il gruppo di annunci, poiché non possiamo riutilizzare il -1 che abbiamo utilizzato per la campagna. Inoltre, facciamo riferimento a questo gruppo di annunci quando creiamo un annuncio del gruppo di annunci. Lo stesso gruppo di annunci 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 fa riferimento al'altra operazione.