Jak wspomnieliśmy w przewodniku po strukturze interfejsu API, każdy zasób najwyższego poziomu w interfejsie Google Ads API ma odpowiednią usługę specyficzną dla typu zasobu, która obsługuje modyfikowanie instancji zasobu.
W tym przewodniku do modyfikowania obiektów Campaign
będziemy używać CampaignService
, ale te same zasady obowiązują w przypadku wszystkich innych usług związanych z określonym typem zasobu.
Zmienianie obiektów
Każda usługa specyficzna dla typu zasobu będzie miała metodę mutate, która akceptuje żądanie zmiany. To żądanie składa się z tych elementów:
customerId
- zbiór operacji,
- Ustawienie typu treści odpowiedzi, które określa, czy po zmianie ma być zwracany zasób podlegający zmianom, czy tylko nazwa zasobu.
Na przykład metoda MutateCampaigns
klasy CampaignService
akceptuje 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 jest polem typu oneof, które zawiera te atrybuty, których typem jest typ zasobu:
create
- Tworzy nową instancję zasobu.
update
- Aktualizuje zasób, aby był zgodny z atrybutami zasobu
update
. Jeśli to pole jest ustawione, musisz też ustawićupdate_mask
operacji, które informuje interfejs Google Ads API, które atrybuty należy zmodyfikować podczas operacji aktualizacji. Każda biblioteka klienta ma narzędzie lub metodę pomocniczą, która wygeneruje za Ciebieupdate_mask
, jak pokazano w naszych bibliotekach klientów. remove
- Usuwa zasób.
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 wystąpienia elementu CampaignOperation
: jedno z ustawionym parametrem create
i drugie z ustawionym parametrem remove
.
Operacje wsadowe
Pojedyncza operacja może tylko utworzyć, zaktualizować lub usunąć pojedynczy zasób, ale pojedyncze żądanie zmiany może zawierać wiele operacji. Zamiast wysyłać wiele żądań zmiany, z których każde zawiera jedną operację, połącz operacje w jedno żądanie zmiany.
Jeśli na przykład chcesz utworzyć 10 kampanii, wyślij jeden MutateCampaignsRequest
zawierający 10 obiektów CampaignOperation
.
Odpowiedzi dotyczące zmiany
To, co jest zwracane w odpowiedzi, zależy od tego, co zostało wysłane w polu response_content_type
żądania zmiany. Jeśli na przykład określono wartość MUTABLE_RESOURCE
, odpowiedź będzie zawierać tylko pola, które można zmieniać w kampanii. Następnie możesz wprowadzać kolejne zmiany w tym obiekcie zasobu bez konieczności jego ponownego tworzenia.
Błędy modyfikacji
Operacje w danym żądaniu zmiany zostaną zastosowane na koncie Google Ads tylko wtedy, gdy każda operacja w żądaniu zakończy się powodzeniem. Zapoznaj się z przewodnikiem po typowych błędach, aby poznać listę najczęstszych błędów i sposoby ich rozwiązywania.