En corto: GAQL es el lenguaje con el que se le pregunta a la API de Google Ads:
SELECTcampos y métricasFROMun recursoWHEREcondiciones. La interfaz es solo una vista de lo mismo. Hace tres cosas que la pantalla no: cruces, volumen e histórico propio. No cambia nada y no puede enseñar lo que Google no expone.
Toda la formación ha repetido que "los scripts leen por GAQL lo que la interfaz esconde". Este módulo explica qué es eso, para que sepas qué preguntas se pueden hacer a Google Ads, cómo se formulan y qué límites tienen — sin necesidad de programar. Lo que aprendas te servirá para pedir datos mejor, auditar un script y entender de dónde sale cada cifra de una hoja.
¿Qué es GAQL?
GAQL (Google Ads Query Language) es el lenguaje de consulta de la API de Google Ads: la forma de pedirle a Google "dame estas columnas, de esta tabla, con estas condiciones". Se parece al SQL de las bases de datos y se lee casi en español:
SELECT campaign.name, metrics.cost_micros, metrics.conversions
FROM campaign
WHERE segments.date DURING LAST_30_DAYS
ORDER BY metrics.cost_micros DESC
"Dame el nombre, el coste y las conversiones de cada campaña en los últimos 30 días, ordenadas por coste."
¿Por qué existe GAQL?
La interfaz de Google Ads es una vista de los datos; la API es el acceso a los datos. Todo lo que la interfaz muestra sale de la API (y algo más que la interfaz no muestra, o muestra agregado, o tarda en mostrar). GAQL es el idioma para pedírselo directamente: a un script, a una herramienta, a un informe propio.
¿Qué diferencia hay entre GAQL y la interfaz?
| Concepto | En la interfaz | En GAQL |
|---|---|---|
| Recurso (tabla) | Pestañas: Campañas, Grupos, Palabras clave, Términos… | campaign, ad_group, keyword_view, search_term_view, shopping_performance_view, detail_placement_view… (decenas) |
| Campo (atributo) | Columnas de texto: nombre, estado, tipo | campaign.name, campaign.status, campaign.id, ad_group_criterion.keyword.text… |
| Métrica | Columnas numéricas | metrics.clicks, metrics.cost_micros (en millonésimas), metrics.conversions, metrics.search_impression_share… |
| Segmento | Botón "Segmentar" | segments.date, segments.device, segments.ad_network_type, segments.conversion_action_name… |
| Filtro | Embudo | WHERE campaign.status = 'ENABLED' AND metrics.clicks > 100 |
Todo tiene nombre y tipo; no hay ambigüedad. Y cada recurso documenta qué campos, métricas y segmentos admite.
¿Dónde se ejecutan las consultas GAQL?
- Scripts de Google Ads (
AdsApp.report(query)oAdsApp.search(query)): la vía de la suite. El script ejecuta la consulta dentro de la cuenta y escribe el resultado donde quiera. - API de Google Ads (programas externos con credenciales): para plataformas y herramientas.
- Herramientas online de Google para aprender: el constructor de consultas (eliges recurso y campos y te compone la consulta) y el validador (comprueba la sintaxis). Son la forma de empezar sin escribir una línea de código.
¿Qué permite GAQL que no permita la interfaz?
- Cruces que la interfaz no ofrece: términos de búsqueda con su palabra clave, su concordancia, su grupo, su campaña y sus conversiones por acción, en una sola tabla; ubicaciones de PMax; estadísticas por hora y día de la semana por campaña; componentes del Nivel de calidad por palabra clave con histórico diario si lo guardas.
- Volumen: miles de filas cada noche, sin paginar a mano ni exportar.
- Histórico propio: la interfaz muestra el estado de hoy; un script que consulta por GAQL cada día y guarda el resultado construye la serie temporal que Google no da (QS diario, IS diario, rendimiento de piezas de anuncio a lo largo de meses).
¿Qué no puede hacer GAQL?
- No muestra lo que Google no expone (la comparativa de subastas completa, ciertos desgloses de PMax, términos bajo el umbral de privacidad).
- No cambia nada: GAQL lee. Los cambios van por otras llamadas (mutaciones) con sus permisos.
- Tiene reglas estrictas: lo que filtras debe estar seleccionado, los segmentos de fecha exigen rango, cada recurso admite sus campos.
💡 Truco ninja: la regla de la casa en Ninja Scripts para GAQL es la que más errores evita: si un campo está en el WHERE, está también en el SELECT, y las campañas y grupos se identifican por
campaign.idyad_group.id, nunca por nombre (los nombres cambian y rompen los cruces). Si alguna vez lees una consulta de un script, esas dos cosas te dicen si quien la escribió sabía lo que hacía.
Qué debes recordar
- GAQL es el lenguaje de consulta de la API: SELECT campos y métricas FROM recurso WHERE condiciones.
- Recursos, campos, métricas y segmentos con nombre fijo; la interfaz es una vista de lo mismo.
- Se ejecuta en scripts, en la API y en el constructor/validador online.
- Hace cruces, volumen e histórico propio; no cambia nada y no muestra lo que Google no expone.
