Una funzionalità efficace di BatchJobService è che
supporta l'utilizzo di ID temporanei.
Puoi farlo specificando il resource_name della nuova risorsa per utilizzare un ID negativo. Ad esempio, supponiamo che tu crei una campagna e ne 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 utilizzando il nome della risorsa e il valore -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 temporanee:
- 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 i job o le richieste di modifica. Per fare riferimento a una risorsa creata in un job o in una richiesta di modifica precedente, utilizza il nome della risorsa effettivo.
- Per un singolo job o una singola richiesta di modifica, ogni nome di risorsa temporaneo 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 singola 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. Devi 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"
...
}
}
},
]
Per il gruppo di annunci viene utilizzato un nuovo ID temporaneo, poiché non possiamo riutilizzare il valore -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 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 viene fatto riferimento a nessuna altra operazione.