Como se explica en la guía de estructura de la API, cada recurso de nivel superior en la API de Google Ads tiene un servicio correspondiente específico del tipo de recurso que admite lo siguiente:
- Modifica las instancias del recurso
- Cómo recuperar una sola instancia del recurso para su inspección
En esta guía, se usará CampaignService
para
demonstrar la modificación y la inspección de objetos Campaign
,
pero los mismos conceptos se aplican a todos los demás servicios
específicos del tipo de recurso.
Cambiar objetos
Cada servicio específico del tipo de recurso tendrá un método mutate que acepte una solicitud de mutación. Esta solicitud consta de lo siguiente:
- A
customerId
- Una colección de operaciones
- Es un parámetro de configuración de tipo de contenido de respuesta que determina si se debe mostrar el recurso mutable o solo el nombre del recurso después de la mutación.
Por ejemplo, el método MutateCampaigns
de CampaignService
acepta un MutateCampaignsRequest
que consta de lo siguiente:
- A
customerId
- Una colección de objetos
CampaignOperation
- El campo
response_content_type
que indica el tipo de respuesta preferida
Operaciones
Un objeto de operación, como un CampaignOperation
, te permite especificar la acción que deseas realizar en un solo recurso configurando su campo operation
. Este campo es un campo oneof que consta de los siguientes atributos cuyo tipo es el tipo de recurso:
create
- Crea una instancia nueva del recurso.
update
- Actualiza el recurso para que coincida con los atributos del recurso
update
. Cuando se establece este campo, también debes establecer elupdate_mask
de la operación, que le indica a la API de Google Ads qué atributos modificar durante la operación de actualización. Cada biblioteca cliente tiene una utilidad o un método auxiliar que generará elupdate_mask
por ti, como se muestra en nuestras bibliotecas cliente. remove
- Quita el recurso.
Dado que el campo operation
es un campo oneof
, no puedes usar una sola operación para modificar varios objetos. Por ejemplo, si deseas crear una campaña y quitar otra, agrega dos instancias de CampaignOperation
a tu solicitud: una con create
establecido y otra con remove
establecido.
Operaciones por lotes
Si bien una sola operación solo puede crear, actualizar o quitar un recurso, una sola solicitud de mutación puede contener varias operaciones. Debes combinar tus operaciones en una sola solicitud de mutación en lugar de enviar varias solicitudes de mutación que contengan una sola operación.
Por ejemplo, si deseas crear diez campañas, debes enviar un MutateCampaignsRequest
único que tenga diez objetos CampaignOperation
.
Cómo mutar respuestas
Lo que se muestra en la respuesta depende de lo que se envió en el response_content_type
de la solicitud de mutación. Por ejemplo, si se especifica MUTABLE_RESOURCE
, la respuesta solo contendrá los campos mutables de la campaña. Luego, puedes realizar mutaciones de seguimiento en ese objeto de recurso sin tener que reconstruirlo.
Errores de mutación
Las operaciones de una solicitud de mutación determinada solo se aplicarán a tu cuenta de Google Ads si todas las operaciones de la solicitud se realizan correctamente. Consulta la guía de errores comunes para obtener una lista de errores comunes y cómo abordarlos.
Cómo inspeccionar objetos con get (obsoleto)
Además de cambiar objetos, cada servicio específico del tipo de recurso también tiene un método get para recuperar todos los atributos de un recurso único.
Este método acepta una solicitud get cuyo único atributo es resource_name
.
Los métodos get son una función conveniente que ofrece la API de Google Ads para recuperar todos los atributos de un solo objeto. Si bien esta es una gran herramienta para aprender a usar la API o inspeccionar un objeto individual con fines educativos o de depuración, tu app no debe usar métodos get para recuperar objetos para su procesamiento o generación de informes.
En su lugar, usa GoogleAdsService
, ya que te permite recuperar solo atributos específicos de los objetos, admite la recuperación de métricas de rendimiento y permite la transmisión a través de conjuntos de resultados grandes. Si tu app envía una gran cantidad de solicitudes de get, es posible que se produzcan límites de frecuencia.