Jak opisano w przewodniku po strukturze interfejsu API, każdy zasób najwyższego poziomu w interfejsie Google Ads API ma odpowiadającą mu usługę odpowiadającą danemu typowi zasobu, która obsługuje:
- Modyfikowanie instancji zasobu
- Pobieranie pojedynczego wystąpienia zasobu do sprawdzenia
W tym przewodniku użyjemy usługi CampaignService
, aby pokazać, jak modyfikować i sprawdzać obiekty Campaign
, ale te same zasady dotyczą wszystkich innych usług związanych z danym typem zasobu.
Zmienianie obiektów
Każda usługa związana z konkretnym typem zasobu będzie mieć metodę mutate, która przyjmuje prośbę o zmianę. Ta prośba zawiera:
customerId
- zbiór operacji
- Ustawienie typu treści odpowiedzi, które określa, czy zmutowany zasób czy tylko nazwa zasobu ma być zwrócona po zmianie.
Na przykład metoda MutateCampaigns
klasy CampaignService
akceptuje argument MutateCampaignsRequest
, który składa się z:
customerId
- Kolekcja
CampaignOperation
obiektów - Pole
response_content_type
wskazujące preferowany typ odpowiedzi.
Operacje
Obiekt operacji, np. CampaignOperation
, umożliwia określenie działania, które chcesz wykonać na pojedynczym zasobie, przez ustawienie jego pola operation
. To pole to pole typu oneof, które składa się z tych atrybutów o typie typu zasobu:
create
- Tworzy nową instancję zasobu.
update
- Zaktualizuje zasób, aby jego atrybuty były zgodne z atrybutami zasobu
update
. Gdy to pole jest ustawione, musisz też ustawićupdate_mask
operacji, która informuje interfejs Google Ads API, które atrybuty należy zmodyfikować podczas operacji aktualizacji. Każda biblioteka klienta ma metodę pomocniczą, która wygeneruje dla Ciebieupdate_mask
, jak pokazano w naszych bibliotekach klienta. remove
- Usuwa zasób.
Ponieważ pole operation
jest polem oneof
, nie możesz użyć jednej operacji do modyfikowania wielu obiektów. Jeśli np. chcesz utworzyć jedną kampanię i usunąć inną, dodaj do żądania 2 wystąpieni elementu CampaignOperation
: jedno z wartością create
, a drugie z wartością remove
.
Operacje zbiorcze
Chociaż pojedyncza operacja może tworzyć, aktualizować lub usuwać tylko 1 zasób, pojedyncze żądanie zmiany może zawierać wiele operacji. Zamiast wysyłać wiele żądań z pojedynczą operacją, należy połączyć operacje w pojedyncze żądanie zmodyfikowania.
Jeśli np. chcesz utworzyć 10 kampanii, wyślij pojedynczy obiekt MutateCampaignsRequest
, który zawiera 10 obiektów CampaignOperation
.
Zmiana odpowiedzi
Dane zwracane w odpowiedzi zależą od tego, co zostało przesłane w polu response_content_type
żądania zmodyfikowania. Jeśli np. podano wartość MUTABLE_RESOURCE
, odpowiedź będzie zawierać tylko pola zmienne w kampanii. Następnie możesz wprowadzić dalsze zmiany w tym obiekcie zasobu bez konieczności jego odtwarzania.
Błędy funkcji mutate
Operacje w danym żądaniu zmiany zostaną zastosowane na koncie Google Ads tylko wtedy, gdy wszystkie operacje w tym żądaniu zakończą się powodzeniem. Zapoznaj się z przewodnikiem po typowych błędach, aby poznać listę typowych błędów i sposoby ich rozwiązywania.