Zmienianie zasobów

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

  • Usługa zasobów zmienia stan: każdy zasób, którego stan można zmienić, 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.
  • Zbiorcze zmiany: punkt końcowy GoogleAdsService.Mutate obejmuje sekwencję operacji modyfikacji w przypadku wielu typów zasobów (a w wersji 23 i nowszych także obsługiwanych operacji, takich jak rezerwowanie lub wycenianie kampanii) w ramach jednego żądania synchronicznego.
  • Asynchroniczne zadania wsadowe: w przypadku mutacji na dużą skalę lub długotrwałych zbiorów zadań BatchJobService wykonuje operacje asynchronicznie bez ryzyka przekroczenia limitu czasu żądania synchronicznego. W przeciwieństwie do GoogleAdsService.Mutate, BatchJobService zawsze wykonuje się w ramach semantyki częściowej awarii i nie obsługuje trybu validate_only ani operacji działania (book_campaigns_operation, quote_campaigns_operation). Ponieważ częściowa awaria jest zawsze aktywna, BatchJobService odrzuca operacje na zasobach, których usługi bazowe nie obsługują częściowej awarii (np. CustomerOperation, CampaignConversionGoalOperation, ConversionGoalCampaignConfigOperation, CustomConversionGoalOperation i CustomerConversionGoalOperation) z kodem MutateError.OPERATION_DOES_NOT_SUPPORT_PARTIAL_FAILURE.

Zalety zbiorczych zmian

Korzystanie z atrybutu GoogleAdsService.Mutate ma te zalety (wskazówki dotyczące implementacji znajdziesz w sprawdzonych metodach modyfikowania):

  • Pogrupowane działania w różnych usługach zasobów: poszczególne wywołania usługi zasobów akceptują tylko operacje dotyczące jednego typu zasobu, a GoogleAdsService.Mutate umożliwia modyfikowanie wielu typów zasobów w jednym wywołaniu.
  • Tymczasowe nazwy zasobów: możesz przypisywać nowo utworzonym elementom nadrzędnym identyfikatory w postaci ujemnych liczb całkowitych (np. customers/CUSTOMER_ID/campaigns/-1) i odwoływać się do tych tymczasowych identyfikatorów w operacjach na elementach podrzędnych w ramach tej samej prośby.

Dzięki tym możliwościom możesz używać GoogleAdsService.Mutate do atomowego tworzenia całej hierarchii kampanii, tak aby wszystkie operacje kończyły się powodzeniem lub niepowodzeniem razem, albo ustawić partial_failure na true, aby zatwierdzać prawidłowe operacje niezależnie od siebie.

.