Utilizzare gli ID temporanei

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

Per farlo, specifica resource_name della nuova risorsa per utilizzare 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 fare riferimento a questo nome della risorsa e il valore customers/<YOUR_CUSTOMER_ID>/campaigns/-1 specificato verrà sostituito automaticamente dall'ID effettivo della campagna creata.-1

Ecco alcuni aspetti da tenere presente quando utilizzi nomi di risorse temporanee:

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

Esempio

Per fare un esempio più concreto della situazione sopra menzionata, supponiamo che tu voglia aggiungere una campagna, un gruppo di annunci e un annuncio in 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, poiché non possiamo riutilizzare il valore -1 utilizzato per la campagna e facciamo riferimento a questo gruppo di annunci anche 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 della richiesta, mentre resource_name in ad_group_ad_operation non è necessario perché non fa riferimento a nessun'altra operazione.