Lenguaje de búsqueda de Google Ads

Terminología clave

Recurso
Es una entidad de Google Ads, como campaign o ad_group.
Segmentar
Es una dimensión que se usa para agrupar datos, como segments.date o segments.device. Cuando se incluyen segmentos en la cláusula SELECT con métricas, las métricas se dividen por segmento.
Métrica
Es una medición del rendimiento, como metrics.impressions o metrics.clicks.
Recurso atribuido
Es un recurso que se une de forma implícita al recurso principal en la cláusula FROM, lo que te permite seleccionar sus atributos junto con los atributos del recurso principal.

Consultar información de recursos o metadatos

El lenguaje de consultas de Google Ads puede consultar la API de Google Ads para obtener los siguientes tipos de información:

  • Recursos y sus atributos, segmentos y métricas relacionados con GoogleAdsService Search o SearchStream: El resultado de una búsqueda de GoogleAdsService es una lista de instancias de GoogleAdsRow, en la que cada GoogleAdsRow representa un recurso.

    Si se solicitan atributos o métricas, la fila también incluye esos campos. Si se solicitan segmentos, la respuesta también muestra una fila adicional para cada tupla de recurso y segmento.

  • Metadatos sobre los campos y recursos disponibles en GoogleAdsFieldService: Este servicio proporciona un catálogo de campos consultables con detalles sobre su compatibilidad y tipo.

    El resultado de una búsqueda de GoogleAdsFieldService es una lista de instancias de GoogleAdsField, en la que cada GoogleAdsField contiene detalles sobre el campo solicitado.

Para obtener más detalles sobre la estructura de las consultas, consulta Estructura de la consulta y la gramática del lenguaje de consulta de Google Ads.

Consulta los atributos de recursos

A continuación, se muestra un ejemplo de una consulta básica para los atributos del recurso de la campaña que ilustra cómo devolver el ID, el nombre y el estado de la campaña:

SELECT
  campaign.id,
  campaign.name,
  campaign.status
FROM campaign
ORDER BY campaign.id

Esta consulta ordena los resultados por ID de campaña. Cada GoogleAdsRow resultante representa un objeto campaign propagado con los campos seleccionados, incluido el resource_name de la campaña.

Para saber qué otros campos están disponibles para las consultas de campañas, consulta la documentación de referencia de Campaign.

Consulta de métricas

Junto con los atributos seleccionados para un recurso determinado, también puedes consultar las métricas relacionadas:

SELECT
  campaign.id,
  campaign.name,
  campaign.status,
  metrics.impressions
FROM campaign
WHERE campaign.status = 'PAUSED'
  AND metrics.impressions > 1000
ORDER BY campaign.id

Esta consulta filtra solo las campañas que tienen el estado PAUSED y que tuvieron más de 1,000 impresiones, y las ordena por ID de campaña. Cada objeto GoogleAdsRow resultante tendría un campo metrics completado con las métricas seleccionadas.

Para obtener una lista de las métricas que se pueden consultar, consulta la documentación de Metrics.

Consulta segmentos

Junto con los atributos seleccionados para un recurso determinado, también puedes consultar los segmentos relacionados:

SELECT
  campaign.id,
  campaign.name,
  campaign.status,
  metrics.impressions,
  segments.date
FROM campaign
WHERE campaign.status = 'PAUSED'
  AND metrics.impressions > 1000
  AND segments.date DURING LAST_30_DAYS
ORDER BY campaign.id

Al igual que cuando se consultan métricas, esta consulta filtra solo las campañas que tienen el estado PAUSED y que tuvieron más de 1,000 impresiones. Sin embargo, esta consulta segmenta los datos por fecha. Esto hace que cada GoogleAdsRow resultante represente una tupla de una campaña y el segmento de fecha. La segmentación divide las métricas seleccionadas y las agrupa según cada segmento de la cláusula SELECT.

Para obtener una lista de los segmentos sobre los que se pueden realizar consultas, consulta la documentación de Segments.

En una búsqueda de un recurso determinado, es posible que puedas unirlo con otros recursos relacionados si están disponibles. Estos recursos relacionados se conocen como "recursos atribuidos". Puedes realizar una unión con recursos atribuidos de forma implícita seleccionando un atributo en tu consulta.

SELECT
  campaign.id,
  campaign.name,
  campaign.status,
  bidding_strategy.name
FROM campaign
ORDER BY campaign.id

Esta consulta no solo selecciona atributos de la campaña, sino que también extrae atributos relacionados de cada campaña seleccionada. Cada GoogleAdsRow resultante representa un objeto campaign completado con los atributos de la campaña seleccionada, así como el atributo de la estrategia de ofertas seleccionada bidding_strategy.name.

Para saber qué recursos atribuidos están disponibles para las búsquedas de campañas, consulta la documentación de referencia de Campaign.

Prácticas recomendadas

  • Selecciona solo los campos que necesitas para evitar tiempos de respuesta largos y tiempos de espera.
  • Usa LIMIT durante el desarrollo y las pruebas para evitar el procesamiento de grandes conjuntos de resultados.
  • Aplica filtros en la cláusula WHERE para minimizar la transferencia de datos y el tamaño de la respuesta.
  • Usa GoogleAdsFieldService para verificar la compatibilidad de los campos y los tipos de datos antes de crear consultas complejas.
  • Ten en cuenta que algunos campos, en especial aquellos que involucran grandes cantidades de datos o cálculos complejos, pueden aumentar el costo de la consulta.

Realiza mutaciones en función de los resultados de la búsqueda

Cuando consultas un recurso determinado, puedes tomar de inmediato los resultados que se muestran como objetos, modificarlos y enviarlos de vuelta al método de mutación en el servicio de ese recurso. Este es un ejemplo de flujo de trabajo:

  1. Ejecuta una búsqueda para todas las campañas de PAUSED que tengan más de 1,000 impresiones.
  2. Obtén el objeto Campaign del campo campaign de cada GoogleAdsRow en la respuesta.
  3. Cambia el estado de cada campaña de PAUSED a ENABLED.
  4. Llama a CampaignService.MutateCampaigns con las campañas modificadas y un FieldMask correspondiente para actualizarlas.

Metadatos de campos

Las consultas enviadas a GoogleAdsFieldService están diseñadas para recuperar metadatos de campos. Esta información se puede usar para comprender cómo se pueden usar los campos juntos en una consulta. Dado que los datos están disponibles en la API y proporcionan los metadatos necesarios para validar o compilar una consulta, los desarrolladores pueden hacerlo de forma programática. Esta es una consulta típica de metadatos:

SELECT
  name,
  category,
  selectable,
  filterable,
  sortable,
  selectable_with,
  data_type,
  is_repeated
WHERE name = "<INSERT_RESOURCE_OR_FIELD>"

Puedes reemplazar <INSERT_RESOURCE_OR_FIELD> en esta búsqueda por un recurso (como customer o campaign) o un campo (como campaign.id, metrics.impressions o ad_group.id).

Para obtener una lista de los campos en los que se pueden realizar consultas, consulta la documentación de GoogleAdsField.

Diferencias específicas de la versión

Si bien la sintaxis, las cláusulas y los operadores del lenguaje de consultas de Google Ads son idénticos en todas las versiones compatibles de la API de Google Ads (v23, v24 y v25), el catálogo de recursos, segmentos, métricas y comportamientos de informes disponibles para la consulta difiere según la versión principal. Consulta GoogleAdsFieldService en el extremo de la versión de la API de destino para inspeccionar los campos y las reglas de compatibilidad de esa versión:

  • Recursos de objetivos de ciclo de vida: En la versión 25 y versiones posteriores, todos los objetivos de ciclo de vida (Adquisición de clientes nuevos, Retención de clientes y Retención de lealtad) se consultan desde los recursos unificados goal y campaign_goal_config, lo que reemplaza a customer_lifecycle_goal y campaign_lifecycle_goal (que se usaban para los objetivos de Adquisición de clientes nuevos en la versión 24 y versiones anteriores, junto con goal y campaign_goal_config para los objetivos de Retención de clientes).
  • Métricas de la vista de recursos de expansión de URL final: En la versión 25 y posteriores, la consulta de final_url_expansion_asset_view devuelve todas las métricas seleccionables para la vista. En la versión 24 y anteriores, las respuestas solo incluyen metrics.conversions y metrics.conversions_value para las campañas de máximo rendimiento, y metrics.impressions para las campañas de Búsqueda.
  • Informes de productos de Shopping para las campañas de aplicaciones: En la versión 24 y posteriores, el recurso shopping_product devuelve filas de productos para las campañas de aplicaciones, además de las campañas de Shopping, de máximo rendimiento, de generación de demanda y de video (en la versión 23, las campañas de aplicaciones se excluyen de los resultados de shopping_product).
  • Recursos, segmentos y métricas específicos de la versión:
    • Versiones 25 y posteriores: Incluye recursos de medición de efectividad (como lift_measurement_config), segmentos como segments.ad_sub_format_type y segments.loyalty_membership, y métricas de participación de YouTube (metrics.youtube_likes, metrics.youtube_comments y metrics.youtube_shares). Quita local_services_lead.contact_details.email (que se puede seleccionar en la versión 24 y anteriores).
    • Versión 24 y posteriores: Incluye el recurso cart_data_sales_view, segments.conversion_attribution_event_type en shopping_performance_view, segments.mobile_device_platform y segments.ad_network_type en performance_max_placement_view. Se quitan campaign.video_brand_safety_suitability (reemplazado por customer.video_brand_safety_suitability), segments.ad_sub_network_type en campaign_budget y segments.click_type en ad_group_asset, campaign_asset y customer_asset (que solo se pueden seleccionar en la versión 23).
  • Código de error de período detallado: Las consultas que segmentan por segments.date, segments.week o segments.hour (o filtran un período inferior a un mes) más allá de la ventana de visualización de 37 meses devuelven DateRangeError.REQUESTED_DATE_GRANULARITY_NOT_SUPPORTED en la versión 24 y posteriores (o DateRangeError.UNKNOWN en la versión 23). Consulta Períodos para obtener más información.

Ejemplos de código

Las bibliotecas cliente tienen ejemplos del uso del lenguaje de consultas de Google Ads en GoogleAdsService. La carpeta basic operations contiene ejemplos como GetCampaigns, GetKeywords y SearchForGoogleAdsFields.