Używanie identyfikatorów tymczasowych

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.