Zaletą BatchJobService
jest to, że
obsługuje stosowanie identyfikatorów tymczasowych.
Możesz to zrobić, określając resource_name
nowego zasobu do użycia
identyfikator wykluczający. Jeśli na przykład utworzysz kampanię i podasz nazwę jej zasobu
jako customers/<YOUR_CUSTOMER_ID>/campaigns/-1
, to podczas tworzenia pliku
grupy reklam w późniejszej operacji, możesz odwołać się do niej za pomocą tej nazwy zasobu
podany przez Ciebie identyfikator (-1
) zostanie zastąpiony rzeczywistym identyfikatorem utworzonej kampanii
automatycznie.
Jeśli używasz tymczasowych nazw zasobów, pamiętaj o tych uwagach:
- Tymczasowej nazwy zasobu można użyć tylko po zdefiniowaniu jej w . W przykładzie poniżej działanie w grupie reklam powinno wyglądać tak: po zakończeniu kampanii na liście operacji.
- Nazwy zasobów tymczasowych nie są zapamiętywane w zadaniach ani w żądaniach mutacji. aby odwołać się do zasobu utworzonego w poprzednim zadaniu lub zmodyfikować żądanie, użyj funkcji rzeczywistej nazwy zasobu.
- W przypadku pojedynczego zadania lub żądania mutacji każda nazwa zasobu tymczasowego musi używać parametru niepowtarzalna liczba ujemna, nawet jeśli pochodzą one z różnych typów zasobów. Jeśli identyfikator tymczasowy jest ponownie używany w jednym zadaniu lub żądaniu zmutowania, a następnie wystąpi błąd .
Przykład
Aby podać bardziej konkretny przykład powyższej sytuacji, załóżmy, chcesz dodać kampanię, grupę reklam i reklamę w pojedynczym żądaniu do interfejsu API. Ty stworzyłoby strukturę żądania analogiczną do tej:
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"
...
}
}
},
]
Zwróć uwagę, że w grupie reklam używany jest nowy tymczasowy identyfikator, bo nie możemy ponownie użyć tego samego identyfikatora
-1
, których użyliśmy w kampanii. Używamy też tej grupy reklam,
tworząc reklamę w grupie reklam. Sama grupa reklam odwołuje się do nazwy zasobu, którą określamy
określonych dla kampanii we wcześniejszej operacji w żądaniu, a
Parametr resource_name
w usłudze ad_group_ad_operation
nie jest wymagany, ponieważ nie jest już potrzebny
odwołuje się do niej.