Entrar / Crear cuenta gratis🌐 EN☀️

Formación Avanzada · Módulo 8 — GAQL y la API — leer lo que la interfaz no enseña

Recetario GAQL: diez consultas que responden a las preguntas de toda la formación

⏱️ 11 min de lectura · 🥷 Scripts 📐 Medición · actualizada el 2026-10-06

Las diez preguntas que más se repiten en esta formación, convertidas en consultas GAQL listas para usar. Cada una con lo que responde, la consulta y la nota que evita el error típico. Los valores numéricos (umbrales) son ejemplos: ajústalos a tu cuenta.

1 · Términos que convierten y no son palabras clave

SELECT campaign.id, ad_group.id, search_term_view.search_term,
       segments.search_term_match_type, metrics.clicks, metrics.cost_micros,
       metrics.conversions, metrics.conversions_value
FROM search_term_view
WHERE segments.date DURING LAST_90_DAYS
  AND search_term_view.status != 'ADDED'
  AND metrics.conversions >= 1
ORDER BY metrics.conversions DESC

Nota: status distingue los términos ya añadidos como palabra clave (ADDED), excluidos (EXCLUDED) y ninguno (NONE). Google ha renombrado recientemente varios campos de GAQL: si esta consulta devuelve una tabla vacía sin error visible, comprueba los nombres de campo contra la referencia vigente antes de asumir que no hay datos.

2 · Palabras clave con QS bajo y gasto alto

SELECT campaign.id, ad_group.id, ad_group_criterion.criterion_id,
       ad_group_criterion.keyword.text,
       ad_group_criterion.quality_info.quality_score,
       ad_group_criterion.quality_info.creative_quality_score,
       ad_group_criterion.quality_info.post_click_quality_score,
       ad_group_criterion.quality_info.search_predicted_ctr,
       metrics.cost_micros, metrics.conversions
FROM keyword_view
WHERE segments.date DURING LAST_30_DAYS
  AND ad_group_criterion.status = 'ENABLED'
  AND ad_group_criterion.quality_info.quality_score <= 4
ORDER BY metrics.cost_micros DESC
LIMIT 100

Nota: los tres componentes vienen como enums (BELOW_AVERAGE, AVERAGE, ABOVE_AVERAGE).

3 · IS perdido por presupuesto con buen CPA

SELECT campaign.id, campaign.name, metrics.cost_micros, metrics.conversions,
       metrics.cost_per_conversion,
       metrics.search_budget_lost_impression_share,
       metrics.search_rank_lost_impression_share,
       metrics.search_impression_share
FROM campaign
WHERE segments.date DURING LAST_14_DAYS
  AND campaign.status = 'ENABLED'
  AND campaign.advertising_channel_type IN ('SEARCH', 'SHOPPING')
  AND metrics.search_budget_lost_impression_share > 0.2
  AND metrics.conversions >= 10
ORDER BY metrics.search_budget_lost_impression_share DESC

Nota: el IS viene como fracción (0,2 = 20 %); el CPA se compara luego con el objetivo de negocio en el script.

4 · Piezas de RSA en «Baja» con volumen

SELECT campaign.id, ad_group.id, ad_group_ad.ad.id, asset.id,
       asset.text_asset.text, ad_group_ad_asset_view.field_type,
       ad_group_ad_asset_view.performance_label,
       ad_group_ad_asset_view.pinned_field, metrics.impressions
FROM ad_group_ad_asset_view
WHERE segments.date DURING LAST_30_DAYS
  AND ad_group_ad_asset_view.performance_label = 'LOW'
  AND metrics.impressions > 2000
ORDER BY metrics.impressions DESC

Nota: field_type distingue HEADLINE y DESCRIPTION; guarda el asset.id para el archivo.

5 · Productos que gastan sin vender

SELECT segments.product_item_id, segments.product_title,
       segments.product_custom_attribute0,
       metrics.cost_micros, metrics.clicks, metrics.conversions,
       metrics.conversions_value
FROM shopping_performance_view
WHERE segments.date DURING LAST_30_DAYS
  AND metrics.cost_micros > 30000000
  AND metrics.conversions = 0
ORDER BY metrics.cost_micros DESC

Nota: 30.000.000 micros = 30 €; custom_attribute0 es tu etiqueta de margen.

6 · Ubicaciones de ayer (Display/vídeo) para el censo

SELECT campaign.id, detail_placement_view.placement,
       detail_placement_view.display_name,
       detail_placement_view.placement_type,
       metrics.impressions, metrics.clicks, metrics.cost_micros,
       metrics.conversions
FROM detail_placement_view
WHERE segments.date DURING YESTERDAY
  AND metrics.impressions > 0
ORDER BY metrics.clicks DESC

Nota: para PMax, performance_max_placement_view con solo metrics.impressions.

7 · Conversiones por acción y campaña

SELECT campaign.id, campaign.name, segments.conversion_action_name,
       segments.conversion_action_category,
       metrics.all_conversions, metrics.all_conversions_value
FROM campaign
WHERE segments.date DURING LAST_30_DAYS
  AND segments.conversion_action_name IS NOT NULL
ORDER BY campaign.id

Nota: la regla de oro — el segmento está en SELECT y en WHERE. Con all_conversions ves principales y secundarias; para solo principales, metrics.conversions sin segmentar por acción.

8 · Cambios de presupuesto y target de la última semana

SELECT change_event.change_date_time, change_event.user_email,
       change_event.client_type, change_event.change_resource_type,
       change_event.changed_fields, change_event.old_resource,
       change_event.new_resource, campaign.id
FROM change_event
WHERE change_event.change_date_time DURING LAST_7_DAYS
  AND change_event.change_resource_type IN ('CAMPAIGN_BUDGET', 'CAMPAIGN', 'BIDDING_STRATEGY')
ORDER BY change_event.change_date_time DESC
LIMIT 1000

Nota: obligatorio filtrar por fecha y poner LIMIT; client_type distingue interfaz, API, scripts y recomendaciones automáticas.

9 · Conversiones a cero con clics normales (medición rota)

SELECT campaign.id, campaign.name, segments.date,
       metrics.clicks, metrics.conversions
FROM campaign
WHERE segments.date DURING LAST_3_DAYS
  AND campaign.status = 'ENABLED'
  AND metrics.clicks > 50
  AND metrics.conversions = 0

Nota: el script compara con la media de clics/conversiones de los 30 días anteriores antes de avisar (la latencia explica ceros de un día).

10 · Rendimiento por hora y día de la semana

SELECT campaign.id, segments.day_of_week, segments.hour,
       metrics.clicks, metrics.cost_micros, metrics.conversions
FROM campaign
WHERE segments.date DURING LAST_30_DAYS
  AND campaign.status = 'ENABLED'

Nota: 7 × 24 = 168 filas por campaña; agrega en la hoja. Recuerda que con Smart Bidding los ajustes por hora no aplican: es diagnóstico.

Cómo ejecutarlas

En un script: var rows = AdsApp.search(query); while (rows.hasNext()) { var r = rows.next(); /* r.campaign.id, r.metrics.clicks… */ } y escribir en una hoja. En el validador online: pegar y comprobar. Para MCC: iterar las cuentas con AdsManagerApp y ejecutar en cada una, leyendo customer.currency_code primero.

💡 Truco ninja: estas diez consultas son, con pequeñas variaciones, el núcleo de lectura de la suite: la 1 y la 7 del SQONS y el Agente, la 2 del QS Analyzer, la 3 del Guardian y el SBNS, la 4 del RSA Optimizer, la 5 del Shopping Ninja, la 6 del Ninja Shield, la 8 y la 9 del Agente. Lo que cambia de un script a otro no es la consulta: es lo que hace con las filas cada noche.

Qué debes recordar

📎 Fuentes y para saber más

⚠️ Formación gratuita sin soporte. Los canales de soporte de Ninja Scripts (email y Telegram) son solo para el uso de los scripts, no para dudas de Google Ads ni de esta formación. Para dudas sobre tus campañas: consultoría.

Sigue por aquí

← AntesLos recursos que importan: el mapa de tablas de GAQL para cada pregunta de la formaciónGAQL y la API — leer lo que la interfaz no enseñaDespués →Límites, cuotas y trampas: lo que hay que saber antes de apoyar un proceso en GAQLGAQL y la API — leer lo que la interfaz no enseñaRelacionadaCalidad del lead: puntuar cada contacto y enseñarle a Google la diferencia entre un cliente y un curiosoMedición II — conversiones offline, valores, GA4, atribución y calidad del leadRelacionadaAuditar la medición: la rutina para saber que tus datos son de fiarMedición básica — conversiones, etiqueta de Google y consentimientoRelacionadaConversiones offline: llevar a Google lo que pasa después del formularioMedición II — conversiones offline, valores, GA4, atribución y calidad del leadRelacionadaEl juez: juzgar cada campaña por su objetivo de negocio, no por el target de la estrategiaSmart Bidding I — estrategias, carteras, aprendizaje y el juez del objetivo

Ver el temario completo

🎓
Estás leyendo en abierto una lección de la formación para suscriptores

Esta página es solo de lectura. Con la suscripción a la Suite navegas la academia completa — los tres niveles con audio, tests, favoritos, subrayados y certificados — además de los scripts trabajando en tu cuenta de Google Ads.

Ver la Suite completa → Crear mi cuenta gratis →
🥷

Función para suscriptores

Esta opción forma parte de las suscripciones de pago de Ninja Scripts.

Ver la suscripción →