Eine leistungsstarke Funktion von BatchJobService
ist die Unterstützung von temporären IDs.
Dazu geben Sie für resource_name
der neuen Ressource eine negative ID an. Angenommen, Sie erstellen eine Kampagne und geben als Ressourcennamen customers/<YOUR_CUSTOMER_ID>/campaigns/-1
an. Wenn Sie die Anzeigengruppe in einem späteren Vorgang erstellen, können Sie sie anhand dieses Ressourcennamens referenzieren. Die von Ihnen angegebene -1
wird dann automatisch durch die tatsächliche ID der erstellten Kampagne ersetzt.
Beachten Sie bei der Verwendung von temporären Ressourcennamen Folgendes:
- Ein temporärer Ressourcenname kann erst verwendet werden, nachdem er in einer Ressource definiert wurde. Im folgenden Beispiel muss der Vorgang für die Anzeigengruppe in der Liste der Vorgänge nach dem Vorgang für die Kampagne aufgeführt sein.
- Namen temporärer Ressourcen werden nicht für Jobs oder Mutanfragen gespeichert. Verwenden Sie den tatsächlichen Ressourcennamen, um auf eine Ressource zu verweisen, die in einem vorherigen Job oder einer vorherigen Mutanfrage erstellt wurde.
- Für einen einzelnen Job oder eine einzelne Mutanfrage muss für jeden temporären Ressourcennamen eine eindeutige negative Zahl verwendet werden, auch wenn es sich um verschiedene Ressourcentypen handelt. Wenn eine temporäre ID in einer einzelnen Job- oder Mutanfrage wiederverwendet wird, wird ein Fehler zurückgegeben.
Beispiel
Angenommen, Sie möchten in einer einzigen API-Anfrage eine Kampagne, eine Anzeigengruppe und eine Anzeige hinzufügen. Sie würden eine Struktur für Ihre Anfrage analog zu der folgenden erstellen:
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"
...
}
}
},
]
Für die Anzeigengruppe wird eine neue temporäre ID verwendet, da die -1
, die wir für die Kampagne verwendet haben, nicht wiederverwendet werden kann. Wir verweisen auch auf diese Anzeigengruppe, wenn wir eine Anzeigengruppenanzeige erstellen. Die Anzeigengruppe selbst verweist auf den Ressourcennamen, den wir in einem früheren Vorgang in der Anfrage für die Kampagne festgelegt haben. resource_name
in ad_group_ad_operation
ist dagegen nicht erforderlich, da kein weiterer Vorgang darauf verweist.