GAQL tiene decenas de recursos. Para el trabajo de esta formación bastan una docena. Esta lección es el mapa: qué tabla responde a cada pregunta, con los campos que importan y la trampa de cada una.
Estructura y rendimiento básico
| Recurso | Responde a | Campos clave | Trampa |
|---|---|---|---|
campaign |
Rendimiento y configuración por campaña | campaign.id, name, status, advertising_channel_type, bidding_strategy_type, campaign_budget.amount_micros, metrics.*, metrics.search_*_impression_share |
Las métricas de IS solo en Búsqueda/Shopping; PMax con limitaciones |
ad_group |
Lo mismo por grupo | ad_group.id, campaign.id, ad_group.status, metrics.* |
— |
campaign_budget |
Presupuestos (incluidos compartidos) | campaign_budget.amount_micros, explicitly_shared, reference_count |
Los compartidos aparecen una vez y se aplican a varias campañas |
bidding_strategy |
Carteras | bidding_strategy.id, type, target_cpa.target_cpa_micros, target_roas.target_roas, campaign_count |
Las estrategias de campaña (no cartera) están en campaign.* |
Palabras clave y calidad
| Recurso | Responde a | Campos clave | Trampa |
|---|---|---|---|
keyword_view |
Palabras clave con rendimiento y Nivel de calidad | ad_group_criterion.keyword.text, match_type, ad_group_criterion.quality_info.quality_score, creative_quality_score, post_click_quality_score, search_predicted_ctr, metrics.* |
El QS no tiene histórico: guárdalo cada día tú |
search_term_view |
Términos de búsqueda con su palabra clave | search_term_view.search_term, status, segments.keyword.info.text, segments.keyword.info.match_type, segments.search_term_match_type, metrics.* |
Umbral de privacidad: los de poco volumen no aparecen; PMax tiene su propio informe |
campaign_search_term_insight (PMax) |
Categorías de términos de PMax | campaign_search_term_insight.category_label, metrics.* |
Agregado por categoría; sin término a término para la cola larga |
Anuncios y piezas
| Recurso | Responde a | Campos clave | Trampa |
|---|---|---|---|
ad_group_ad |
Anuncios con su eficacia | ad_group_ad.ad.id, ad.responsive_search_ad.headlines, descriptions, ad_group_ad.ad_strength, status, metrics.* |
Los titulares vienen como lista de textos; las etiquetas de rendimiento por pieza no están aquí |
ad_group_ad_asset_view |
Piezas de los RSA con su etiqueta | asset.text_asset.text, ad_group_ad_asset_view.field_type, performance_label, pinned_field, metrics.impressions |
Solo impresiones por pieza; las etiquetas necesitan volumen |
asset_group / asset_group_asset (PMax) |
Grupos de recursos y sus recursos | asset_group.name, ad_strength, asset_group_asset.performance_label |
Sin rendimiento por canal |
Shopping y feed
| Recurso | Responde a | Campos clave | Trampa |
|---|---|---|---|
shopping_performance_view |
Rendimiento por producto | segments.product_item_id, product_title, product_brand, product_type_l1..l5, product_custom_attribute0..4, metrics.* |
Cada segmento de producto multiplica filas; pide los que uses |
product_group_view |
Grupos de productos de Shopping estándar | ad_group_criterion.listing_group.*, metrics.* |
Árbol: la rama "todo lo demás" también aparece |
Ubicaciones (Display, vídeo, PMax)
| Recurso | Responde a | Campos clave | Trampa |
|---|---|---|---|
detail_placement_view |
Dominios, apps y canales donde se mostró el anuncio | detail_placement_view.display_name, placement, placement_type, group_placement_target_url, metrics.* |
Display y vídeo; PMax aparece con limitaciones y métricas recortadas |
group_placement_view |
Ubicaciones agrupadas (dominio) | group_placement_view.display_name, target_url, metrics.* |
Agregado por dominio |
performance_max_placement_view |
Ubicaciones de PMax | placement, display_name, placement_type, metrics.impressions |
Solo impresiones: sin coste ni clics por ubicación |
Medición y cambios
| Recurso | Responde a | Campos clave | Trampa |
|---|---|---|---|
conversion_action |
Acciones de conversión y su configuración | conversion_action.name, status, type, category, primary_for_goal, counting_type, click_through_lookback_window_days |
Para auditar la medición por script |
campaign + segments.conversion_action_name |
Conversiones por acción y campaña | segments.conversion_action_name, metrics.all_conversions, all_conversions_value |
La regla: el segmento en SELECT y en WHERE si filtras |
change_event |
Historial de cambios (quién, qué, cuándo) | change_event.change_date_time, user_email, client_type, change_resource_type, changed_fields, old_resource, new_resource |
Últimos 30 días; límite de filas por consulta |
customer |
Datos de la cuenta | customer.id, descriptive_name, currency_code, time_zone |
La moneda: léela al empezar (módulo 4) |
Cómo usar el mapa
Para cada pregunta de la formación hay una fila aquí. "¿Qué términos
convierten y no son palabras clave?" → search_term_view con
status != 'ADDED' y conversiones > 0. "¿Qué piezas de RSA están en
Baja con volumen?" → ad_group_ad_asset_view con performance_label = 'LOW' e impresiones > N. "¿Qué dominios nuevos aparecieron ayer en
Display/PMax?" → detail_placement_view y
performance_max_placement_view de ayer contra el censo. "¿Quién cambió
el presupuesto?" → change_event.
💡 Truco ninja: cada script de la suite vive en dos o tres de estas tablas: el QS Analyzer en
keyword_view(guardando el QS y sus componentes cada día para construir el histórico que Google no da), el SQONS ensearch_term_view, el RSA Optimizer enad_group_ad_asset_view, el Shopping Ninja enshopping_performance_view, el Ninja Shield en las vistas de ubicación (PMax incluido, con su límite de solo impresiones — por eso puntúa el dominio y no su gasto), y el Agente enconversion_action,change_eventycustomer.
Qué debes recordar
- Doce tablas cubren la formación: campaign/ad_group/budget/strategy, keyword_view (QS), search_term_view, ad_group_ad_asset_view (piezas), shopping_performance_view (producto), vistas de ubicación (PMax solo impresiones), conversion_action, change_event, customer (moneda).
- Cada una con su trampa: umbral de privacidad, sin histórico, segmentos que multiplican filas, límites de PMax.
- Para cada pregunta de la formación hay una tabla; el script la consulta cada noche y guarda lo que Google no guarda.