Jak wspomnieliśmy w przewodniku po strukturze interfejsu API, każdy
zasób najwyższego poziomu w interfejsie Google Ads API ma odpowiadającą mu usługę specyficzną dla typu zasobu,
która umożliwia modyfikowanie instancji zasobu. Możesz też użyć
GoogleAdsService.Mutate, aby modyfikować
wiele typów zasobów w sposób niepodzielny w jednym żądaniu.
W tym przewodniku używamy CampaignService aby
pokazać, jak modyfikować obiekty Campaign, ale te same
zasady obowiązują w przypadku wszystkich innych usług specyficznych dla typu zasobu.
Żądania modyfikacji
Każda usługa specyficzna dla typu zasobu ma metodę mutate, która akceptuje żądanie modyfikacji. To żądanie składa się z tych elementów:
customer_id(lubcustomerIdw adresach URL REST),- kolekcja
operations, - opcjonalne ustawienia wykonania, takie jak
partial_failure,validate_onlyiresponse_content_type(które określają, czy po modyfikacji ma zostać zwrócony modyfikowalny zasób, czy tylko jego nazwa).
Na przykład metoda MutateCampaigns usługi CampaignService akceptuje
MutateCampaignsRequest, który składa się
z tych elementów:
customer_id,- kolekcja obiektów
CampaignOperation(operations), - opcjonalne ustawienia wykonania (
partial_failure,validate_onlyiresponse_content_typewskazujące preferowany typ odpowiedzi).
Operacje
Obiekt operacji, taki jak CampaignOperation, umożliwia określenie działania, które chcesz wykonać na pojedynczym zasobie, przez ustawienie jego pola operation.
To pole jest oneof polem składającym się z tych
atrybutów:
create- Tworzy nową instancję zasobu.
update- Aktualizuje zasób, aby pasował do atrybutów zasobu
update. Gdy to pole jest ustawione, musisz też ustawićupdate_maskoperacji, która informuje interfejs Google Ads API, które atrybuty mają zostać zmodyfikowane podczas operacji aktualizacji. Każda biblioteka klienta zawiera narzędzie do maskowania pól lub metodę pomocniczą , która generujeupdate_maskza Ciebie. remove- Usuwa zasób określony przez ciąg nazwy zasobu (np.
customers/1234567890/campaigns/987654321).
Ponieważ pole operation jest polem oneof, nie możesz użyć jednej operacji do zmodyfikowania wielu obiektów. Jeśli na przykład chcesz utworzyć jedną kampanię i usunąć inną, dodaj do żądania 2 instancje CampaignOperation: jedną z ustawionym polem create i drugą z ustawionym polem remove.
Operacje wsadowe
Chociaż pojedyncza operacja może tylko utworzyć, zaktualizować lub usunąć pojedynczy zasób, jedno żądanie modyfikacji może zawierać wiele operacji. Zamiast wysyłać wiele żądań modyfikacji, z których każde zawiera pojedynczą operację, połącz operacje w jedno żądanie modyfikacji.
Jeśli na przykład chcesz utworzyć 10 kampanii, wyślij jedno żądanie MutateCampaignsRequest, które zawiera 10 obiektów CampaignOperation. Aby pogrupować
operacje dotyczące różnych typów zasobów w jednym żądaniu, użyj
GoogleAdsService.Mutate lub
modyfikowania zasobów.
Odpowiedzi na żądania modyfikacji
To, co jest zwracane w odpowiedzi, zależy od tego, co zostało wysłane w polu
response_content_type żądania modyfikacji.
Jeśli na przykład określono MUTABLE_RESOURCE, to
odpowiedź zawiera zarówno
resource_name zasobu, jak i modyfikowalne pola kampanii w campaign. Domyślnie (RESOURCE_NAME_ONLY) w każdym
MutateCampaignResult wypełniana jest tylko resource_name.
Błędy modyfikacji
Domyślnie (partial_failure = false) operacje w żądaniu modyfikacji są stosowane do Twojego konta Google Ads tylko wtedy, gdy każda operacja w żądaniu zakończy się powodzeniem. Jeśli jakakolwiek operacja się nie powiedzie, całe żądanie zostanie wycofane. W przypadku żądań modyfikacji, które obsługują częściowe niepowodzenie (czyli tych, które mają pole partial_failure w wiadomości żądania), ustawienie partial_failure = true powoduje zatwierdzenie prawidłowych operacji, a nieudane operacje zwracają błędy specyficzne dla operacji w polu partial_failure_error odpowiedzi. Więcej informacji o obsłudze błędów znajdziesz w przewodniku
dotyczącym częściowego niepowodzenia i przewodniku
dotyczącym typowych błędów.
Śledzenie zmian
Aby śledzić zmiany wprowadzane w obiektach na koncie Google Ads lub pobierać bieżący stan obiektów, możesz użyć zasobów change_status i change_event.
change_statuszawiera podsumowanie, które zasoby uległy zmianie w danym okresie.change_eventzawiera szczegółową historię zmian, w tym stare i nowe wartości zmienionych pól.
Aby wysyłać zapytania do tych zasobów, użyj metody
GoogleAdsService.SearchStream lub
GoogleAdsService.Search. Więcej informacji o strumieniowaniu raportów
za pomocą GoogleAdsService.