Die meisten Ressourcen werden mit einer Mutate
-Methode geändert (erstellt, aktualisiert oder entfernt). Die Methode Mutate
wird als HTTP-POST
für eine ressourcenspezifische URL aufgerufen, die dem Muster für den Ressourcennamen entspricht, ohne die nachgestellte Ressourcen-ID.
Die IDs der zu ändernden Ressourcen werden stattdessen im JSON-Anfragetext gesendet. So können Sie einen einzelnen API-Aufruf senden, der mehrere Vorgänge für verschiedene Ressourcen enthält.
Der Ressourcenname einer Kampagne hat beispielsweise das folgende Format:
customers/CUSTOMER_ID/campaigns/CAMPAIGN_ID
Wenn Sie die URL für das Ändern von Kampagnen ableiten möchten, lassen Sie die nachgestellte Ressourcen-ID weg und hängen Sie :mutate
an:
https://googleads.googleapis.com/v21/customers/CUSTOMER_ID/campaigns:mutate
Eine Mutate
-Nachricht enthält ein JSON-Objekt der obersten Ebene mit einem operations
-Array, das viele operation
-Objekte enthalten kann. Jeder Vorgang kann wiederum einer der folgenden sein: create
, update
oder remove
. Dies sind die einzigen möglichen „mutate“-Vorgänge.
POST /v21/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": [ ... ] }
Die meisten Dienste unterstützen Tausende von Vorgängen in einem einzigen API-Aufruf. Im Leitfaden System Limits (Systemlimits) werden die Beschränkungen für Anfragengrößen dokumentiert.
Vorgänge in einer einzelnen API-Anfrage werden standardmäßig als eine Reihe von Aktionen ausgeführt. Das bedeutet, dass sie entweder alle zusammen erfolgreich sind oder der gesamte Batch fehlschlägt, wenn ein einzelner Vorgang fehlschlägt. Einige Dienste unterstützen das Attribut partialFailure
, um dieses Verhalten zu ändern. Weitere Informationen zur Semantik von Mutate-Vorgängen finden Sie unter Ressourcen ändern.
Erstellen
Bei Create-Vorgängen werden neue Entitäten erstellt. Sie müssen eine vollständige JSON-Darstellung der Ressource enthalten, die Sie erstellen möchten.
POST /v21/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": {} } } ] }
Aktualisieren
Bei Aktualisierungsvorgängen werden nur bestimmte Felder einer vorhandenen Ressource aktualisiert. Sie müssen nur die Felder angeben, die Sie ändern möchten.
Wenn Sie die Felder angeben möchten, die aktualisiert werden sollen, legen Sie das Attribut updateMask
auf eine durch Kommas getrennte Liste von Feldnamen fest. Dies ist besonders nützlich, wenn Sie bereits eine vollständige JSON-Darstellung eines Objekts haben (z. B. als Ergebnis eines vorherigen API-Aufrufs), aber nur bestimmte Felder ändern möchten.
Anstatt das JSON-Objekt zu bereinigen, können Sie einfach die zu ändernden Feldnamen in updateMask
auflisten und das gesamte JSON-Objekt senden.
Im Beispiel unten werden die name
und status
einer bestehenden Kampagne mit der angegebenen resourceName
geändert.
POST /v21/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", } } ] }
Entfernen
Durch das Entfernen von Vorgängen wird ein Objekt effektiv gelöscht und sein Google Ads-Status auf REMOVED
gesetzt. Es ist nur die resourceName
erforderlich, die entfernt werden soll.
POST /v21/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" } ] }