Zmień

Większość zasobów jest modyfikowana (tworzona, aktualizowana lub usuwana) za pomocą metody Mutate. Metoda Mutate jest wywoływana jako żądanie HTTP POST do adresu URL specyficznego dla zasobu, który pasuje do wzorca nazwy zasobu, 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 :mutate:

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

Komunikat 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 operacji: create, update lub remove. Są to jedyne możliwe operacje mutacji.

POST /v25/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. Ograniczenia dotyczące rozmiarów żądań znajdziesz w przewodniku System Limits.

Operacje w ramach jednego żądania do interfejsu API są domyślnie wykonywane jako jeden zestaw działań, co oznacza, że wszystkie operacje kończą się powodzeniem lub cała partia nie powiedzie się, jeśli nie powiedzie się jakakolwiek operacja. Niektóre usługi obsługują atrybut partialFailure umożliwiający zmianę tego zachowania. Więcej informacji o semantyce operacji mutacji znajdziesz w artykule Modyfikowanie zasobów.

Utwórz

Operacje tworzenia powodują utworzenie nowych jednostek i muszą zawierać pełną reprezentację JSON zasobu, który chcesz utworzyć.

POST /v25/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 uformowaną reprezentację JSON obiektu (na przykład 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 updateMask i wysłać cały obiekt JSON.

Poniższy przykład zmienia name i status istniejącej kampanii o podanej wartości resourceName.

POST /v25/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 powodują usunięcie obiektu i ustawienie jego stanu w Google Ads na REMOVED. Wymagane jest tylko resourceName do usunięcia.

POST /v25/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"
    }
  ]
}