Zmienianie zasobów

Interfejs Google Ads API udostępnia kilka sposobów modyfikowania zasobów w zależności od przypadku użycia:

  • Zmiany w usłudze zasobów: każdy zasób, który można modyfikować, ma dedykowaną usługę, która wykonuje operacje na tym konkretnym typie zasobu. Na przykład zasób Campaign używa punktu końcowego CampaignService.MutateCampaigns do tworzenia, aktualizowania i usuwania kampanii.
  • Zmiany zbiorcze: punkt końcowy GoogleAdsService.Mutate opakowuje sekwencję operacji zmiany w przypadku wielu typów zasobów (oraz obsługiwanych operacji, takich jak rezerwowanie kampanii lub wycenianie) w jedno żądanie synchroniczne.
  • Asynchroniczne zadania wsadowe: w przypadku mutacji na dużą skalę lub długotrwałych zadań BatchJobService wykonuje operacje asynchronicznie bez ryzyka przekroczenia limitu czasu żądania synchronicznego. W odróżnieniu od GoogleAdsService.Mutate metoda BatchJobService zawsze działa w trybie częściowego niepowodzenia i nie obsługuje trybu validate_only ani operacji działania (book_campaigns_operation, quote_campaigns_operation). Ponieważ tryb częściowego niepowodzenia jest zawsze aktywny, metoda BatchJobService odrzuca operacje na zasobach, których usługi nie obsługują tego trybu (np. CustomerOperation, CampaignConversionGoalOperation, ConversionGoalCampaignConfigOperation, CustomConversionGoalOperation i CustomerConversionGoalOperation), i zwraca błąd MutateError.OPERATION_DOES_NOT_SUPPORT_PARTIAL_FAILURE.

Zalety mutacji zbiorczych

Korzystanie z metody GoogleAdsService.Mutate zapewnia te korzyści (wskazówki dotyczące implementacji znajdziesz w artykule Sprawdzone metody dotyczące metody Mutate):

  • Grupowanie działań w różnych usługach zasobów: wywołania poszczególnych usług zasobów akceptują tylko operacje na jednym typie zasobu, natomiast GoogleAdsService.Mutate umożliwia modyfikowanie wielu typów zasobów w jednym wywołaniu.
  • Tymczasowe nazwy zasobów: nowo utworzonym encjom nadrzędnym możesz przypisywać identyfikatory będące ujemnymi liczbami całkowitymi (np. customers/CUSTOMER_ID/campaigns/-1) i odwoływać się do tych tymczasowych identyfikatorów w operacjach podrzędnych w ramach tego samego żądania.

Dzięki tym funkcjom możesz używać GoogleAdsService.Mutate do tworzenia całej hierarchii kampanii w sposób niepodzielny, tak aby wszystkie operacje zakończyły się powodzeniem lub niepowodzeniem, albo ustawić partial_failure na true, aby niezależnie zatwierdzać prawidłowe operacje.