Używanie identyfikatorów tymczasowych

Zadbaj o dobrą organizację dzięki kolekcji Zapisuj i kategoryzuj treści zgodnie ze swoimi preferencjami.

Bardzo przydatną funkcją BatchJobService jest obsługa tymczasowych identyfikatorów.

W tym celu możesz określić nowy zasób resource_name, aby użyć ujemnego identyfikatora. Jeśli na przykład utworzysz kampanię i określisz jej nazwę zasobu jako customers/<YOUR_CUSTOMER_ID>/campaigns/-1, podczas tworzenia grupy reklam w późniejszym działaniu możesz utworzyć odwołanie do tej nazwy zasobu, a podany -1 zostanie automatycznie zastąpiony rzeczywistym identyfikatorem utworzonej kampanii.

Podczas korzystania z tymczasowych nazw zasobów pamiętaj o tych kwestiach:

  • Tymczasowej nazwy zasobu można użyć dopiero po zdefiniowaniu w zasobie. W poniższym przykładzie operacja grupy reklam pojawi się po działaniu kampanii na liście operacji.
  • Tymczasowe nazwy zasobów nie są zapamiętywane w zadaniach ani mutacjach. Aby odwołać się do zasobu utworzonego w poprzednim żądaniu lub mutacji, użyj jego rzeczywistej nazwy.
  • W przypadku pojedynczego zadania lub żądania mutacji każda tymczasowa nazwa zasobu musi mieć unikalną liczbę ujemną, nawet jeśli pochodzą z różnych typów zasobów. Jeśli tymczasowy identyfikator zostanie użyty ponownie w jednym zadaniu lub żądaniu mutacji, zostanie zwrócony błąd.

Przykład

Aby podać bardziej konkretny przykład sytuacji opisanej powyżej, załóżmy, że chcesz dodać kampanię, grupę reklam i reklamę w pojedynczym żądaniu interfejsu API. W tym przypadku utworzysz strukturę podobnego do tego:

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 został użyty nowy identyfikator tymczasowy, ponieważ nie możemy użyć ponownie -1 w kampanii. Odwołamy się też do tej grupy reklam podczas tworzenia reklamy. Sama grupa reklam odwołuje się do nazwy zasobu określonej dla kampanii we wcześniejszej operacji w żądaniu, natomiast właściwość resource_name w polu ad_group_ad_operation nie jest wymagana, ponieważ nie odwołuje się do niej żadna inna operacja.