Modificar

La mayoría de los recursos se modifican (se crean, actualizan o quitan) con un método Mutate. El método Mutate se invoca como un POST HTTP para una URL específica del recurso que coincide con el patrón del nombre del recurso, sin el ID del recurso final. En su lugar, los IDs de los recursos que se mutarán se envían en el cuerpo de la solicitud JSON. Esto te permite enviar una sola llamada a la API que contiene varias operaciones en diferentes recursos.

Por ejemplo, el nombre del recurso de una campaña utiliza el siguiente formato:

customers/CUSTOMER_ID/campaigns/CAMPAIGN_ID

Para derivar la URL que se usa para la mutación de campañas, omite el ID del recurso final y agrega :mutate:

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

Un mensaje Mutate contiene un objeto JSON de nivel superior con un array operations que puede contener muchos objetos operation. A su vez, cada operación puede ser una de las siguientes opciones: create, update o remove. Estas son las únicas operaciones de modificación posibles.

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

La mayoría de los servicios admiten miles de operaciones en una sola llamada a la API. En la guía de Límites del sistema, se documentan las limitaciones de los tamaños de las solicitudes.

Las operaciones dentro de una misma solicitud a la API se ejecutan como un conjunto de acciones de forma predeterminada, lo que significa que todas se completan de forma correcta o si falla cualquier operación. Algunos servicios admiten un atributo partialFailure para cambiar este comportamiento. Consulta Recursos de mutación para obtener información más detallada sobre la semántica de las operaciones de mutación.

Crear

Las operaciones de creación producen entidades nuevas y deben incluir una representación JSON completa del recurso que deseas crear.

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

Actualizar

Las operaciones de actualización realizan actualizaciones dispersas en un recurso existente. Solo debes especificar los campos que deseas modificar.

Para especificar los campos que deseas actualizar, configura el atributo updateMask en una lista de nombres de campo separados por comas. Esto es muy útil si ya tienes una representación JSON totalmente formada de un objeto (por ejemplo, como lo muestra una llamada a la API anterior), pero solo deseas cambiar ciertos campos. En lugar de reducir el objeto JSON, puedes enumerar los nombres de los campos que se modificarán en updateMask y enviar el objeto JSON completo.

En el siguiente ejemplo, se cambian los elementos name y status de una campaña existente que tiene el resourceName especificado.

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

Quitar

Las operaciones de eliminación borran un objeto de forma eficaz, lo que establece su estado en Google Ads en REMOVED. Solo se requiere el resourceName que se quitará.

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