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
Campaignużywa punktu końcowegoCampaignService.MutateCampaignsdo tworzenia, aktualizowania i usuwania kampanii. - Zbiorcze zmiany: punkt końcowy
GoogleAdsService.Mutateobejmuje 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ń
BatchJobServicewykonuje operacje asynchronicznie bez ryzyka przekroczenia limitu czasu żądania synchronicznego. W przeciwieństwie doGoogleAdsService.Mutate,BatchJobServicezawsze wykonuje się w ramach semantyki częściowej awarii i nie obsługuje trybuvalidate_onlyani operacji działania (book_campaigns_operation,quote_campaigns_operation). Ponieważ częściowa awaria jest zawsze aktywna,BatchJobServiceodrzuca operacje na zasobach, których usługi bazowe nie obsługują częściowej awarii (np.CustomerOperation,CampaignConversionGoalOperation,ConversionGoalCampaignConfigOperation,CustomConversionGoalOperationiCustomerConversionGoalOperation) z kodemMutateError.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.Mutateumoż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.