Log in / Create free account🌐 ES☀️

Advanced training · Module 8 — GAQL and the API — reading what the interface does not show

The resources that matter: the map of GAQL tables for every question in this course

⏱️ 11 min read · 🥷 Scripts 📐 Measurement · updated on 2026-08-22

🎧 Listen to the lesson · ≈ 3 min🔒 Subscribers only

GAQL has dozens of resources. For the work in this course, a dozen is plenty. This lesson is the map: which table answers each question, with the fields that matter and the trap in each one.

Structure and basic performance

Resource Answers Key fields Trap
campaign Performance and settings per campaign campaign.id, name, status, advertising_channel_type, bidding_strategy_type, campaign_budget.amount_micros, metrics.*, metrics.search_*_impression_share IS metrics only on Search/Shopping; PMax with limitations
ad_group The same, per ad group ad_group.id, campaign.id, ad_group.status, metrics.*
campaign_budget Budgets (shared ones included) campaign_budget.amount_micros, explicitly_shared, reference_count Shared budgets appear once and apply to several campaigns
bidding_strategy Portfolios bidding_strategy.id, type, target_cpa.target_cpa_micros, target_roas.target_roas, campaign_count Campaign-level (non-portfolio) strategies live in campaign.*

Keywords and quality

Resource Answers Key fields Trap
keyword_view Keywords with performance and Quality Score 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.* QS has no history: store it yourself every day
search_term_view Search terms with their keyword search_term_view.search_term, status, segments.keyword.info.text, segments.keyword.info.match_type, segments.search_term_match_type, metrics.* Privacy threshold: low-volume terms do not appear; PMax has its own report
campaign_search_term_insight (PMax) PMax search term categories campaign_search_term_insight.category_label, metrics.* Aggregated by category; no term-by-term view of the long tail

Ads and assets

Resource Answers Key fields Trap
ad_group_ad Ads with their Ad strength ad_group_ad.ad.id, ad.responsive_search_ad.headlines, descriptions, ad_group_ad.ad_strength, status, metrics.* Headlines come back as a list of texts; per-asset performance labels are not here
ad_group_ad_asset_view RSA assets with their label asset.text_asset.text, ad_group_ad_asset_view.field_type, performance_label, pinned_field, metrics.impressions Impressions only per asset; the labels need volume
asset_group / asset_group_asset (PMax) Asset groups and their assets asset_group.name, ad_strength, asset_group_asset.performance_label No performance by channel

Shopping and the feed

Resource Answers Key fields Trap
shopping_performance_view Performance per product segments.product_item_id, product_title, product_brand, product_type_l1..l5, product_custom_attribute0..4, metrics.* Every product segment multiplies the rows; ask only for the ones you use
product_group_view Product groups in standard Shopping ad_group_criterion.listing_group.*, metrics.* A tree: the "everything else" branch shows up too

Placements (Display, video, PMax)

Resource Answers Key fields Trap
detail_placement_view Domains, apps and channels where the ad ran detail_placement_view.display_name, placement, placement_type, group_placement_target_url, metrics.* Display and video; PMax appears with limitations and trimmed metrics
group_placement_view Grouped placements (domain) group_placement_view.display_name, target_url, metrics.* Aggregated by domain
performance_max_placement_view PMax placements placement, display_name, placement_type, metrics.impressions Impressions only: no cost and no clicks per placement

Measurement and changes

Resource Answers Key fields Trap
conversion_action Conversion actions and their settings conversion_action.name, status, type, category, primary_for_goal, counting_type, click_through_lookback_window_days For auditing measurement from a script
campaign + segments.conversion_action_name Conversions by action and campaign segments.conversion_action_name, metrics.all_conversions, all_conversions_value The rule: the segment in the SELECT, and in the WHERE if you filter
change_event Change history (who, what, when) change_event.change_date_time, user_email, client_type, change_resource_type, changed_fields, old_resource, new_resource Last 30 days; a row limit per query
customer Account data customer.id, descriptive_name, currency_code, time_zone The currency: read it at the start (module 4)

How to use the map

For every question in this course there is a row here. "Which search terms convert and are not keywords?" → search_term_view with status != 'ADDED' and conversions > 0. "Which RSA assets are rated Low with volume?" → ad_group_ad_asset_view with performance_label = 'LOW' and impressions > N. "Which new domains showed up yesterday in Display/PMax?" → detail_placement_view and performance_max_placement_view for yesterday, against the census. "Who changed the budget?" → change_event.

💡 Ninja trick: every script in the Suite lives in two or three of these tables: QS Analyzer in keyword_view (storing QS and its components every day to build the history Google does not give you), SQONS in search_term_view, RSA Optimizer in ad_group_ad_asset_view, Shopping Ninja in shopping_performance_view, Ninja Shield in the placement views (PMax included, with its impressions-only limit — which is why it scores the domain rather than its spend), and the Agent in conversion_action, change_event and customer.

What you should remember

📎 Sources and further reading

⚠️ Free training with no support. Ninja Scripts support channels (email and Telegram) are only for the use of the scripts, not for Google Ads questions or questions about this training.

Pick up here

← BeforeAnatomy of a GAQL query: clauses, operators, dates, micros and the rules that get you rejectedGAQL and the API — reading what the interface does not showAfter →The GAQL cookbook: ten queries that answer the questions from the whole courseGAQL and the API — reading what the interface does not showRelacionadaLead quality: scoring every contact and teaching Google the difference between a customer and a browserMeasurement II — offline conversions, values, GA4, attribution and lead qualityRelacionadaAuditing your tracking: the routine that tells you your data is trustworthyBasic measurement — conversions, the Google tag and consentRelacionadaOffline conversions: telling Google what happens after the formMeasurement II — offline conversions, values, GA4, attribution and lead qualityRelacionadaThe judge: judging each campaign by its business target, not by the strategy targetSmart Bidding I — strategies, portfolios, learning and the target judge

Ver el temario completo

🎓
You're reading, in the open, a lesson from the subscribers' training

This page is read-only. With the Suite subscription you get the full academy — all three levels with audio, quizzes, favorites, highlights and certificates — plus the scripts working in your Google Ads account.

See the full Suite → Create my free account →
🥷

Subscriber feature

This option is part of the Ninja Scripts Suite subscription.

See the subscription →