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
Campaignużywa punktu końcowegoCampaignService.MutateCampaignsdo tworzenia, aktualizowania i usuwania kampanii. - Zmiany zbiorcze: punkt końcowy
GoogleAdsService.Mutateopakowuje 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ń
BatchJobServicewykonuje operacje asynchronicznie bez ryzyka przekroczenia limitu czasu żądania synchronicznego. W odróżnieniu odGoogleAdsService.MutatemetodaBatchJobServicezawsze działa w trybie częściowego niepowodzenia i nie obsługuje trybuvalidate_onlyani operacji działania (book_campaigns_operation,quote_campaigns_operation). Ponieważ tryb częściowego niepowodzenia jest zawsze aktywny, metodaBatchJobServiceodrzuca operacje na zasobach, których usługi nie obsługują tego trybu (np.CustomerOperation,CampaignConversionGoalOperation,ConversionGoalCampaignConfigOperation,CustomConversionGoalOperationiCustomerConversionGoalOperation), i zwraca błądMutateError.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.Mutateumoż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.