Większość zasobów jest modyfikowana (utworzona, aktualizowana lub usuwana) za pomocą Mutate
. Metoda Mutate
jest wywoływana jako POST
dla określonego zasobu
Adres URL zgodny ze wzorcem nazwy zasobu, bez końcowego identyfikatora zasobu.
Identyfikatory zasobów, których dotyczą mutacje, są wysyłane w żądaniu JSON
. Pozwala to wysłać pojedyncze wywołanie interfejsu API, które zawiera wiele operacji na
za pomocą różnych zasobów.
Na przykład nazwa zasobu kampanii ma taki format:
customers/CUSTOMER_ID/campaigns/CAMPAIGN_ID
Aby uzyskać adres URL używany do mutacji kampanii, pomiń końcowy identyfikator zasobu i
dołącz :mutate
:
https://googleads.googleapis.com/v17/customers/CUSTOMER_ID/campaigns:mutate
Komunikat Mutate
zawiera obiekt JSON najwyższego poziomu z tablicą operations
który może zawierać wiele obiektów operation
. Każda operacja może być natomiast
z: create
, update
lub remove
. To są jedyne możliwe mutacje
operacji.
POST /v17/customers/CUSTOMER_ID/campaigns:mutate HTTP/1.1 Host: googleads.googleapis.com Content-Type: application/json Authorization: Bearer ACCESS_TOKEN developer-token: DEVELOPER_TOKEN { "operations": [ ... ] }
Większość usług obsługuje tysiące operacji w jednym wywołaniu interfejsu API. Narzędzie System Limity ograniczeń rozmiaru żądań.
Operacje w ramach pojedynczego żądania do interfejsu API są wykonywane jako jeden zbiór działań przez
domyślnie, co oznacza, że udają się wszystkie razem lub cała grupa kończy się niepowodzeniem, jeśli
każda pojedyncza operacja zakończy się niepowodzeniem. Niektóre usługi obsługują
Atrybut partialFailure
żeby to zmienić. Zobacz Zasoby dotyczące ignorowania zmian
.
Utwórz
Operacje tworzenia tworzą nowe encje i muszą zawierać pełny plik JSON reprezentujący zasób, który chcesz utworzyć.
POST /v17/customers/CUSTOMER_ID/campaigns:mutate HTTP/1.1 Host: googleads.googleapis.com Content-Type: application/json Authorization: Bearer ACCESS_TOKEN developer-token: DEVELOPER_TOKEN { "operations": [ { "create": { "name": "An example campaign", "status": "PAUSED", "campaignBudget": "customers/CUSTOMER_ID/campaignBudgets/CAMPAIGN_BUDGET_ID", "advertisingChannelType": "SEARCH", "networkSettings": { "targetGoogleSearch": true, "targetSearchNetwork": true, "targetContentNetwork": true, "targetPartnerSearchNetwork": false }, "target_spend": {} } } ] }
Aktualizuj
Operacje aktualizacji wykonują rozproszone aktualizacje istniejącego zasobu. Potrzebujesz tylko aby wskazać pola, które chcesz zmienić.
Aby określić pola, które chcesz zaktualizować, ustaw wartość atrybutu updateMask
na
rozdzielaną przecinkami listę nazw pól. Jest to szczególnie przydatne, jeśli
mają już w pełni uformowaną reprezentację obiektu JSON (na przykład jako
zwrócone przez poprzednie wywołanie interfejsu API), ale chcesz zmienić tylko niektóre pola.
Zamiast przycinać obiekt JSON, możesz wymienić nazwy pól
zmodyfikowany w updateMask
i wyślij cały obiekt JSON.
W przykładzie poniżej zmieniamy wartości name
i status
istniejącej kampanii mającej
podany resourceName
.
POST /v17/customers/CUSTOMER_ID/campaigns:mutate HTTP/1.1 Host: googleads.googleapis.com Content-Type: application/json Authorization: Bearer ACCESS_TOKEN developer-token: DEVELOPER_TOKEN { "operations": [ { "updateMask": "name,status", "update": { "resourceName": "customers/CUSTOMER_ID/campaigns/CAMPAIGN_ID", "name": "My renamed campaign", "status": "PAUSED", } } ] }
Usuń
Usuwanie operacji skutecznie usuwa obiekt, zmieniając jego stan w Google Ads na
REMOVED
Wymagany jest tylko resourceName
do usunięcia.
POST /v17/customers/CUSTOMER_ID/campaigns:mutate HTTP/1.1 Host: googleads.googleapis.com Content-Type: application/json Authorization: Bearer ACCESS_TOKEN developer-token: DEVELOPER_TOKEN { "operations": [ { "remove": "customers/CUSTOMER_ID/campaigns/CAMPAIGN_ID" } ] }