Zmień

Większość zasobów jest modyfikowana (tworzona, aktualizowana lub usuwana) za pomocą Mutatemetody. Metoda Mutate jest wywoływana jako żądanie HTTP POST do adresu URL konkretnego zasobu, który pasuje do wzorca nazwy zasobu, ale bez końcowego identyfikatora zasobu. Identyfikatory zasobów, które mają zostać zmienione, są wysyłane w treści żądania JSON. Dzięki temu możesz wysłać jedno wywołanie interfejsu API, które zawiera wiele operacji na różnych zasobach.

Nazwa zasobu kampanii ma na przykład ten format:

customers/CUSTOMER_ID/campaigns/CAMPAIGN_ID

Aby uzyskać adres URL używany do modyfikowania kampanii, pomiń końcowy identyfikator zasobu i dodaj znak :mutate:

https://googleads.googleapis.com/v21/customers/CUSTOMER_ID/campaigns:mutate

Wiadomość Mutate zawiera obiekt JSON najwyższego poziomu z tablicą operations, która może zawierać wiele obiektów operation. Każda operacja może być jedną z tych wartości: create, update lub remove. Są to jedyne możliwe operacje mutate.

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": [
    ...
  ]
}

Większość usług obsługuje tysiące operacji w ramach jednego wywołania interfejsu API. W przewodniku Limity systemu znajdziesz informacje o ograniczeniach rozmiarów żądań.

Operacje w ramach jednego żądania do interfejsu API są domyślnie wykonywane jako jeden zestaw działań, co oznacza, że wszystkie kończą się powodzeniem lub cała partia kończy się niepowodzeniem, jeśli nie powiedzie się choćby jedna operacja. Niektóre usługi obsługują atrybut partialFailure, aby zmienić to zachowanie. Więcej informacji o semantyce operacji modyfikowania znajdziesz w artykule Modyfikowanie zasobów.

Utwórz

Operacje tworzenia generują nowe elementy i muszą zawierać pełną reprezentację JSON zasobu, który chcesz utworzyć.

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": {}
      }
    }
  ]
}

Aktualizuj

Operacje aktualizacji wykonują rzadkie aktualizacje istniejącego zasobu. Musisz tylko określić pola, które chcesz zmodyfikować.

Aby określić pola, które chcesz zaktualizować, ustaw atrybut updateMask na listę nazw pól rozdzielonych przecinkami. Jest to szczególnie przydatne, jeśli masz już w pełni sformatowaną reprezentację JSON obiektu (np. zwróconą przez poprzednie wywołanie interfejsu API), ale chcesz zmienić tylko niektóre pola. Zamiast przycinać obiekt JSON, możesz po prostu wymienić nazwy pól, które mają zostać zmodyfikowane, w parametrze updateMask i wysłać cały obiekt JSON.

W przykładzie poniżej zmieniamy namestatus istniejącej kampanii o podanym resourceName.

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",
      }
    }
  ]
}

Usuń

Operacje usuwania skutecznie usuwają obiekt, ustawiając jego stan w Google Ads na REMOVED. Wymagany jest tylko adres resourceName, który ma zostać usunięty.

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"
    }
  ]
}