Video: Mira la charla sobre servicios y recursos del taller de 2019
En esta guía, se presentan los componentes principales que conforman 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 entidades de Google Ads.
Jerarquía de objetos
Una cuenta de Google Ads se puede ver como una jerarquía de objetos.
El recurso de nivel superior de una cuenta es el cliente.
Cada cliente contiene una o más campañas activas.
Cada campaña contiene uno o más grupos de anuncios, que se usan para agrupar tus anuncios en colecciones lógicas.
Un anuncio de grupo de anuncios representa un anuncio que publicas. Excepto por las campañas de aplicaciones, que solo pueden tener un anuncio por grupo de anuncios, cada grupo de anuncios contiene uno o más anuncios de grupo de anuncios.
Puedes adjuntar uno o más AdGroupCriterion
o CampaignCriterion
a un grupo de anuncios o a una campaña. Estos representan 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 de la campaña. También puedes especificar los presupuestos y las fechas de la campaña.
Por último, puedes adjuntar extensiones a nivel de la cuenta, la campaña o el grupo de anuncios. Las extensiones te permiten proporcionar información adicional a tus anuncios, como el número de teléfono, la dirección o las promociones.
Recursos
Los recursos representan las entidades de tu cuenta de Google Ads. Campaign
y AdGroup
son dos ejemplos de recursos.
IDs de objetos
Cada objeto de Google Ads se identifica con su propio ID. Algunos de estos IDs son únicos a nivel global en todas las cuentas de Google Ads, mientras que otros solo son únicos dentro de un alcance limitado.
ID de objeto | Alcance de la unicidad | ¿Es único a nivel global? |
---|---|---|
ID de presupuesto | Global | Sí |
ID de la campaña | Global | Sí |
ID del grupo de anuncios | Global | Sí |
ID del anuncio | Grupo de anuncios | No, pero el par (AdGroupId , AdId ) es único a nivel global |
ID de AdGroupCriterion | Grupo de anuncios | 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 | Sí |
ID del elemento del feed | Global | Sí |
ID del atributo del feed | Feed | No |
ID de asignación de feeds | Global | Sí |
ID de etiqueta | Global | Sí |
ID de UserList | Global | Sí |
Estas reglas de ID pueden ser útiles cuando diseñas 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 objeto, como un anuncio de texto, un anuncio de hotel o un anuncio local. Se puede acceder a este valor a través del campo AdGroupAd.ad.type
y muestra un valor en la enumeración AdType
.
Nombres de recursos
Cada recurso se identifica de forma única con una cadena resource_name
, que concatena el recurso y sus elementos superiores en una ruta. Por ejemplo, los nombres de los recursos de la campaña 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 el ID de cliente 1234567
, resource_name
sería:
customers/1234567/campaigns/987654
Servicios
Los servicios te permiten recuperar y modificar tus entidades de Google Ads. Existen tres tipos de servicios: modificación, recuperación de objetos y estadísticas, y recuperación de metadatos.
Modifica (muta) objetos
Estos servicios modifican instancias de un tipo de recurso asociado con una solicitud mutate
. También proporcionan 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:
CustomerService
para modificar clientes.CampaignService
para modificar las campañas.AdGroupService
para modificar los grupos de anuncios.
Cada solicitud de 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 cambiar e inspeccionar objetos para obtener un análisis detallado de las operaciones.
Mutaciones simultáneas
Más de una fuente no puede modificar un objeto de Google Ads de forma simultánea. Esto podría provocar errores si tienes varios usuarios que actualizan el mismo objeto con tu app o si mutas objetos de Google Ads en paralelo con varios subprocesos. Esto incluye actualizar el 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 actualizarlo. Si dos fuentes intentan mutar un objeto de forma simultánea, la API genera un DatabaseError.CONCURRENT_MODIFICATION_ERROR
.
Mutaciones asíncronas frente a síncronas
Los métodos de mutación de la API de Google Ads son síncronos. Las llamadas a la API muestran una respuesta solo después de que se muten los objetos, lo que requiere que esperes una respuesta para cada solicitud. Si bien este enfoque es relativamente sencillo de codificar, podría afectar negativamente el balanceo de cargas y desperdiciar recursos si los procesos se ven obligados a esperar a que se completen las llamadas.
Un enfoque alternativo es mutar objetos de forma asíncrona con 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 forma asíncrona, lo que libera procesos para realizar otras operaciones. Puedes verificar el estado de la tarea de forma periódica para ver si se completó.
Consulta la guía de procesamiento por lotes para obtener más información sobre el procesamiento asíncrono.
Validación de mutación
La mayoría de las solicitudes de mutación se pueden validar sin ejecutar la llamada con 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 validate_only
opcional de la solicitud en true
. Luego, la solicitud se validaría por completo como si se fuera a ejecutar, pero se omite la ejecución final. Si no se encuentran errores, se muestra una respuesta vacía. Si la validación falla, los mensajes de error en la respuesta indicarían los puntos de falla.
validate_only
es especialmente útil para probar anuncios en busca de incumplimientos de políticas comunes. Los anuncios se rechazan automáticamente si incumplen políticas, como tener palabras, puntuación, mayúsculas o longitud específicas. Un solo anuncio incorrecto podría hacer que falle todo un lote. Probar un anuncio nuevo en una solicitud validate_only
puede revelar cualquier incumplimiento de este tipo. Consulta el ejemplo de código para controlar los errores de incumplimiento de políticas y ver cómo funciona.
Obtén objetos y estadísticas de rendimiento
GoogleAdsService
es el servicio único y unificado para recuperar objetos y estadísticas de rendimiento.
Todas las solicitudes de Search
y SearchStream
para GoogleAdsService
requieren una consulta que especifique el recurso que se consultará, los atributos del recurso 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 para desglosar aún más las estadísticas de rendimiento. Para obtener más información sobre el formato de las consultas, consulta la guía del lenguaje de consulta de Google Ads.
Cómo recuperar metadatos
GoogleAdsFieldService
recupera metadatos sobre los recursos de la API de Google Ads, como los atributos disponibles para un recurso y su tipo de datos.
Este servicio proporciona la información necesaria para crear una consulta a GoogleAdsService
. Para tu comodidad, la información que muestra GoogleAdsFieldService
también está disponible en la documentación de referencia de los campos.