Estructura de API

Organiza tus páginas con colecciones Guarda y categoriza el contenido según tus preferencias.

Video: Mire la charla sobre servicios y recursos del taller de 2019

En esta guía, se presentan los componentes principales que componen la API de Google Ads. La API de Google Ads consta de recursos y servicios. Un recurso representa una entidad de Google Ads, mientras que los servicios recuperan y manipulan las entidades de Google Ads.

Jerarquía de objetos

Una cuenta de Google Ads puede verse como una jerarquía de objetos.

  • El recurso de nivel superior de una cuenta es el cliente.

  • Cada cuenta contiene una o más campañas activas.

  • Cada Campaign contiene uno o más grupos de anuncios, que se usan para agrupar tus anuncios en colecciones lógicas.

  • Cada AdGroup contiene uno o más anuncios del grupo de anuncios. Un AdGroupAd representa un anuncio que publica.

Puede adjuntar uno o más elementos AdGroupCriterion o CampaignCriterion a un grupo de anuncios o una campaña. Estos representan los criterios que definen cómo se activan los anuncios.

Existen muchos tipos de criterios, como palabras clave, rangos de edad y ubicaciones. Los criterios definidos a nivel de la campaña afectan a todos los demás recursos dentro de ella. También puedes especificar fechas y presupuestos de toda la campaña.

Por último, puedes adjuntar extensiones a nivel de la cuenta, la campaña o el grupo de anuncios. Las extensiones le permiten proporcionar información adicional a sus anuncios, como el número de teléfono, la dirección o las promociones.

Recursos

Los recursos representan las entidades dentro de su cuenta de Google Ads. Campaign y AdGroup son dos ejemplos de recursos.

ID de objeto

Cada objeto en Google Ads se identifica por su propio ID. Algunos de estos ID son únicos a nivel global en todas las cuentas de Google Ads, mientras que otros son únicos solo dentro de un alcance limitado.

ID de objeto Alcance de la exclusividad Globalmente único?
ID de presupuesto Global
ID de la campaña Global
ID del grupo de anuncios Global
ID del anuncio Ad Group No, pero el par (AdGroupId, AdId) es único a nivel global
ID del grupo de anuncios Ad Group No, pero el par (AdGroupId, CriterionId) es único a nivel global
ID de CampaignCriterion Campaña No, pero el par (CampaignId, CriterionId) es único a nivel global
Extensiones de anuncios Campaña No, pero el par (CampaignId, AdExtensionId) es único a nivel global
ID del feed Global
ID de elemento del feed Global
ID del atributo del feed Feed No
ID de asignación de feeds Global
ID de etiqueta Global
ID de lista de usuarios Global

Estas reglas de ID pueden ser útiles a la hora de diseñar el almacenamiento local para tus objetos de Google Ads.

Algunos objetos se pueden usar para varios tipos de entidades. En esos casos, el objeto contiene un campo type que describe su contenido. Por ejemplo, AdGroupAd puede hacer referencia a un anuncio de texto, un anuncio de hotel, un anuncio local, etc. Se puede acceder a este valor a través del campo AdGroupAd.ad.type y se muestra un valor en la enumeración AdType.

Nombres de recursos

Cada recurso se identifica de forma única con una string resource_name, que concatena el recurso y sus elementos superiores en una ruta de acceso. Por ejemplo, los nombres de recursos de campañas tienen el siguiente formato:

customers/customer_id/campaigns/campaign_id

Por lo tanto, para una campaña con el ID 987654 en la cuenta de Google Ads con ID de cliente 1234567, el valor de resource_name sería el siguiente:

customers/1234567/campaigns/987654

Servicios

Los servicios le permiten recuperar y modificar sus entidades de Google Ads. Existen tres tipos de servicios: modificación, recuperación de datos y estadísticas, y servicios de recuperación de metadatos.

Modificar (mutar) objetos

Estos servicios modifican instancias de un tipo de recurso asociado mediante una solicitud mutate. También proporciona una solicitud get que recupera una sola instancia de recurso, lo que puede ser útil para examinar la estructura de un recurso.

Ejemplos de servicios:

Cada solicitud mutate debe incluir los objetos operation correspondientes. Por ejemplo, el método CampaignService.MutateCampaigns espera una o más instancias de CampaignOperation. Consulta Cómo inspeccionar y cambiar objetos para obtener un análisis detallado sobre las operaciones.

Mutaciones simultáneas

Un objeto de Google Ads no puede ser modificado en simultáneo por más de una fuente. Esto podría provocar errores si tienes varios usuarios que actualizan el mismo objeto con tu app o si estás mutando objetos de Google Ads en paralelo mediante varios subprocesos. Esto incluye la actualización del objeto desde varios subprocesos en la misma aplicación o desde diferentes aplicaciones (por ejemplo, tu app y una sesión simultánea de la IU de Google Ads).

La API no proporciona una forma de bloquear un objeto antes de la actualización: si dos fuentes intentan mutar un objeto a la vez, la API genera un DatabaseError.CONCURRENT_MODIFICATION_ERROR.

Mutaciones asíncronas frente a mutaciones

Los métodos de modificación de la API de Google Ads son síncronos. Las llamadas a la API muestran una respuesta solo después de que se mutan los objetos, lo que requiere que esperes una respuesta a cada solicitud. Si bien este enfoque es relativamente sencillo de codificar, podría afectar de forma negativa el balanceo de cargas y los recursos desperdiciados si los procesos se ven obligados a esperar a que se completen las llamadas.

Un enfoque alternativo es mutar objetos de manera asíncrona mediante BatchJobService, que realiza lotes de operaciones en varios servicios sin esperar a que se completen. Una vez que se envía un trabajo por lotes, los servidores de la API de Google Ads ejecutan operaciones de manera asíncrona, lo que libera procesos para realizar otras operaciones. Puedes verificar de forma periódica el estado del trabajo para completarlo.

Consulta la Guía de procesamiento por lotes para obtener más información sobre el procesamiento asíncrono.

Modificar la validación

La mayoría de las solicitudes de mutación se pueden validar sin ejecutar la llamada con los datos reales. Puedes probar la solicitud de parámetros faltantes y valores de campo incorrectos sin ejecutar la operación.

Para usar esta función, establece el campo booleano opcional validate_only de la solicitud en true. La solicitud se validaría por completo como si fuera a ejecutarse, pero se omite la ejecución final. Si no se encuentran errores, se muestra una respuesta vacía. Si falla la validación, los mensajes de error en la respuesta indicarán los puntos de falla.

validate_only es particularmente útil para probar anuncios que infrinjan las políticas comunes. Los anuncios se rechazan de forma automática si infringen las políticas, como tener palabras específicas, puntuación, mayúsculas o longitud. Un solo anuncio que infringe las políticas podría hacer que falle un lote entero. Probar un anuncio nuevo dentro de una solicitud validate_only puede revelar cualquiera de estas infracciones. Consulta el ejemplo de código para manejar los errores de incumplimiento de política a fin de ver esto en acción.

Obtener objetos y estadísticas de rendimiento

GoogleAdsService es el único servicio unificado para recuperar objetos y estadísticas de rendimiento.

Todas las solicitudes Search y SearchStream para GoogleAdsService requieren una consulta que especifique el recurso que se consultará, los atributos de recursos y las métricas de rendimiento que se recuperarán, los predicados que se usarán para filtrar la solicitud y los segmentos que se usarán a fin de desglosar aún más las estadísticas de rendimiento. Para obtener más información sobre el formato de consulta, revisa la guía del lenguaje de consultas de Google Ads.

Recuperar metadatos

GoogleAdsFieldService recupera los metadatos sobre los recursos en la API de Google Ads, como los atributos disponibles para un recurso y su tipo de datos.

Este servicio proporciona la información que necesitarás para construir una consulta a GoogleAdsService. Para mayor comodidad, la información que muestra GoogleAdsFieldService también está disponible en la documentación de referencia de campos.