Una potente funzionalità di BatchJobService
è che supporta l'utilizzo di ID temporanei.
Per farlo, specifica resource_name
della nuova risorsa per utilizzare un ID negativo. Ad esempio, supponiamo di creare una campagna e di specificarne il nome della risorsa come customers/<YOUR_CUSTOMER_ID>/campaigns/-1
. Quando crei il gruppo di annunci in un'operazione successiva, puoi fare riferimento al nome della risorsa e il valore -1
specificato verrà sostituito automaticamente dall'ID effettivo della campagna creata.
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 seguente, 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 mutate. Per fare riferimento a una risorsa creata in un job o in una richiesta di modifica precedente, utilizza il nome reale 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 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 all'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"
...
}
}
},
]
Per il gruppo di annunci viene utilizzato un nuovo ID temporaneo, poiché non possiamo riutilizzare il valore -1
impiegato 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 impostato 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.