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
- Diez consultas cubren las preguntas de toda la formación; ajusta los umbrales a tu cuenta.
- Micros ÷ 1.000.000; IS como fracción; enums entre comillas; el segmento
filtrado va en
SELECT. change_eventexige fecha yLIMIT; PMax da ubicaciones solo con impresiones.- Validador para probar;
AdsApp.searchpara ejecutar;customerpara la moneda.