-
Notifications
You must be signed in to change notification settings - Fork 4
GAQL Query Reference
John Williams edited this page Mar 6, 2026
·
1 revision
All 47 Google Ads Query Language queries used by the agent, organized by resource type.
SELECT customer.descriptive_name, customer.id, customer.currency_code,
customer.time_zone, customer.manager,
metrics.cost_micros, metrics.clicks, metrics.impressions,
metrics.conversions, metrics.conversions_value,
metrics.all_conversions, metrics.ctr, metrics.average_cpc,
metrics.cost_per_conversion
FROM customer
WHERE segments.date DURING {dateRange}SELECT segments.date,
metrics.cost_micros, metrics.clicks, metrics.impressions,
metrics.conversions, metrics.conversions_value, metrics.ctr,
metrics.average_cpc
FROM customer
WHERE segments.date DURING {dateRange}
ORDER BY segments.date DESCSELECT segments.hour,
metrics.cost_micros, metrics.clicks, metrics.impressions,
metrics.conversions
FROM customer
WHERE segments.date DURING LAST_7_DAYSSELECT campaign.id, campaign.name, campaign.status,
campaign.advertising_channel_type, campaign.bidding_strategy_type,
campaign_budget.amount_micros,
metrics.cost_micros, metrics.clicks, metrics.impressions,
metrics.conversions, metrics.conversions_value, metrics.ctr,
metrics.average_cpc, metrics.cost_per_conversion
FROM campaign
WHERE segments.date DURING {dateRange}
ORDER BY metrics.cost_micros DESCSELECT campaign.name, campaign.id, segments.date,
metrics.cost_micros, metrics.clicks, metrics.impressions,
metrics.conversions, metrics.conversions_value
FROM campaign
WHERE segments.date DURING {dateRange}
ORDER BY segments.date DESCSELECT campaign_budget.name, campaign_budget.id,
campaign_budget.amount_micros, campaign.name, campaign.status,
campaign_budget.delivery_method
FROM campaign_budgetSELECT campaign.name,
metrics.search_impression_share,
metrics.search_budget_lost_impression_share,
metrics.search_rank_lost_impression_share
FROM campaign
WHERE segments.date DURING {dateRange}SELECT campaign.name, campaign.id,
metrics.search_impression_share, metrics.cost_micros,
metrics.impressions, metrics.clicks, metrics.conversions
FROM campaign
WHERE campaign.status = 'ENABLED'
AND campaign.advertising_channel_type = 'SEARCH'
AND segments.date DURING {dateRange}SELECT campaign.name, campaign.id,
metrics.video_views, metrics.video_view_rate,
metrics.video_quartile_p25_rate, metrics.video_quartile_p50_rate,
metrics.video_quartile_p75_rate, metrics.video_quartile_p100_rate,
metrics.average_cpv, metrics.cost_micros, metrics.impressions
FROM campaign
WHERE campaign.advertising_channel_type = 'VIDEO'
AND segments.date DURING {dateRange}SELECT ad_group.id, ad_group.name, ad_group.status, ad_group.type,
campaign.name,
metrics.cost_micros, metrics.clicks, metrics.impressions,
metrics.conversions, metrics.ctr, metrics.average_cpc
FROM ad_group
WHERE segments.date DURING {dateRange}
ORDER BY metrics.cost_micros DESCSELECT ad_group_ad.ad.id, ad_group_ad.ad.type,
ad_group_ad.ad_strength,
ad_group_ad.ad.responsive_search_ad.headlines,
ad_group_ad.ad.responsive_search_ad.descriptions,
ad_group_ad.ad.final_urls,
campaign.name,
metrics.cost_micros, metrics.clicks, metrics.impressions,
metrics.conversions, metrics.ctr
FROM ad_group_ad
WHERE segments.date DURING {dateRange}
ORDER BY metrics.impressions DESCSELECT ad_group_ad.ad.id, ad_group_ad.ad.name,
metrics.video_views, metrics.video_view_rate,
metrics.average_cpv, metrics.cost_micros,
metrics.impressions, metrics.clicks
FROM ad_group_ad
WHERE campaign.advertising_channel_type = 'VIDEO'
AND segments.date DURING {dateRange}SELECT ad_group_criterion.keyword.text,
ad_group_criterion.keyword.match_type,
ad_group_criterion.quality_info.quality_score,
ad_group_criterion.criterion_id,
campaign.name, ad_group.name,
metrics.cost_micros, metrics.clicks, metrics.impressions,
metrics.conversions, metrics.ctr, metrics.average_cpc
FROM keyword_view
WHERE segments.date DURING {dateRange}
ORDER BY metrics.cost_micros DESCSELECT 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,
campaign.name, metrics.impressions
FROM keyword_view
WHERE ad_group_criterion.quality_info.quality_score IS NOT NULL
AND segments.date DURING {dateRange}
ORDER BY metrics.impressions DESCSELECT search_term_view.search_term, search_term_view.status,
campaign.name, ad_group.name,
metrics.cost_micros, metrics.clicks, metrics.impressions,
metrics.conversions, metrics.ctr
FROM search_term_view
WHERE segments.date DURING {dateRange}
ORDER BY metrics.cost_micros DESC
LIMIT 200SELECT search_term_view.search_term,
campaign.name, ad_group.name,
metrics.cost_micros, metrics.clicks, metrics.impressions,
metrics.conversions
FROM search_term_view
WHERE segments.date DURING {dateRange}
AND metrics.conversions = 0
AND metrics.cost_micros > 0
ORDER BY metrics.cost_micros DESC
LIMIT 100SELECT age_range_view.resource_name, ad_group_criterion.age_range.type,
metrics.cost_micros, metrics.clicks, metrics.impressions,
metrics.conversions
FROM age_range_view
WHERE segments.date DURING {dateRange}SELECT gender_view.resource_name, ad_group_criterion.gender.type,
metrics.cost_micros, metrics.clicks, metrics.impressions,
metrics.conversions
FROM gender_view
WHERE segments.date DURING {dateRange}SELECT parental_status_view.resource_name,
ad_group_criterion.parental_status.type,
metrics.cost_micros, metrics.clicks, metrics.impressions,
metrics.conversions
FROM parental_status_view
WHERE segments.date DURING {dateRange}SELECT income_range_view.resource_name,
ad_group_criterion.income_range.type,
metrics.cost_micros, metrics.clicks, metrics.impressions,
metrics.conversions
FROM income_range_view
WHERE segments.date DURING {dateRange}SELECT campaign_audience_view.resource_name, campaign.name,
metrics.cost_micros, metrics.clicks, metrics.impressions,
metrics.conversions
FROM campaign_audience_view
WHERE segments.date DURING {dateRange}SELECT ad_group_audience_view.resource_name,
ad_group.name, campaign.name,
metrics.cost_micros, metrics.clicks, metrics.impressions,
metrics.conversions
FROM ad_group_audience_view
WHERE segments.date DURING {dateRange}SELECT user_list.name, user_list.id, user_list.type,
user_list.size_for_search, user_list.size_for_display,
user_list.membership_status
FROM user_listSELECT geographic_view.country_criterion_id,
geographic_view.location_type, campaign.name,
metrics.cost_micros, metrics.clicks, metrics.impressions,
metrics.conversions
FROM geographic_view
WHERE segments.date DURING {dateRange}
ORDER BY metrics.cost_micros DESC
LIMIT 100SELECT campaign.name, segments.device,
metrics.cost_micros, metrics.clicks, metrics.impressions,
metrics.conversions, metrics.ctr
FROM campaign
WHERE segments.date DURING {dateRange}SELECT segments.product_item_id, segments.product_title,
segments.product_brand, segments.product_type_l1,
metrics.cost_micros, metrics.clicks, metrics.impressions,
metrics.conversions, metrics.conversions_value
FROM shopping_performance_view
WHERE segments.date DURING {dateRange}
ORDER BY metrics.cost_micros DESCSELECT ad_group.name, campaign.name,
ad_group_criterion.listing_group.type,
metrics.cost_micros, metrics.clicks, metrics.impressions,
metrics.conversions
FROM product_group_view
WHERE segments.date DURING {dateRange}SELECT asset_group.name, asset_group.id, asset_group.status,
asset_group.performance_label, campaign.name,
metrics.cost_micros, metrics.clicks, metrics.impressions,
metrics.conversions
FROM asset_group
WHERE segments.date DURING {dateRange}SELECT asset_group.name, asset_group_asset.asset,
asset_group_asset.field_type,
asset_group_asset.performance_label
FROM asset_group_assetSELECT asset_group_listing_group_filter.type,
asset_group_listing_group_filter.vertical,
asset_group.name
FROM asset_group_listing_group_filterSELECT detail_placement_view.display_name,
detail_placement_view.target_url,
detail_placement_view.placement_type,
metrics.cost_micros, metrics.clicks, metrics.impressions,
metrics.conversions
FROM detail_placement_view
WHERE segments.date DURING {dateRange}
ORDER BY metrics.cost_micros DESCSELECT topic_view.resource_name, campaign.name, ad_group.name,
metrics.cost_micros, metrics.clicks, metrics.impressions,
metrics.conversions
FROM topic_view
WHERE segments.date DURING {dateRange}SELECT conversion_action.id, conversion_action.name,
conversion_action.type, conversion_action.category,
conversion_action.status,
metrics.conversions, metrics.conversions_value,
metrics.all_conversions
FROM conversion_action
WHERE segments.date DURING {dateRange}SELECT conversion_action.name, conversion_action.id,
conversion_action.type, conversion_action.category,
conversion_action.status, conversion_action.counting_type,
conversion_action.attribution_model_settings.attribution_model,
conversion_action.value_settings.default_value,
conversion_action.value_settings.default_currency_code
FROM conversion_actionSELECT asset.name, asset.id, asset.type,
asset.final_urls, asset.sitelink_asset.link_text,
asset.callout_asset.callout_text,
asset.structured_snippet_asset.header,
asset.call_asset.phone_number
FROM asset
WHERE asset.type IN ('SITELINK', 'CALLOUT', 'STRUCTURED_SNIPPET', 'CALL')SELECT change_event.change_date_time,
change_event.change_resource_type,
change_event.resource_change_operation,
change_event.user_email,
change_event.old_resource, change_event.new_resource,
campaign.name
FROM change_event
WHERE change_event.change_date_time DURING LAST_14_DAYS
ORDER BY change_event.change_date_time DESC
LIMIT 100SELECT recommendation.type,
recommendation.impact.base_metrics.conversions,
recommendation.impact.potential_metrics.conversions,
recommendation.campaign, recommendation.resource_name
FROM recommendation
LIMIT 100SELECT ad_schedule_view.resource_name, campaign.name,
metrics.cost_micros, metrics.clicks, metrics.impressions,
metrics.conversions
FROM ad_schedule_view
WHERE segments.date DURING {dateRange}SELECT landing_page_view.unexpanded_final_url,
metrics.clicks, metrics.impressions, metrics.cost_micros,
metrics.conversions, metrics.mobile_friendly_clicks_percentage,
metrics.speed_score
FROM landing_page_view
WHERE segments.date DURING {dateRange}
ORDER BY metrics.cost_micros DESCSELECT experiment.name, experiment.experiment_id,
experiment.status, experiment.start_date,
experiment.end_date
FROM experimentSELECT label.name, label.id, label.status,
label.text_label.background_color,
label.text_label.description
FROM labelSELECT bidding_strategy.name, bidding_strategy.id,
bidding_strategy.type, bidding_strategy.status,
bidding_strategy.campaign_count,
metrics.cost_micros, metrics.conversions
FROM bidding_strategy
WHERE segments.date DURING {dateRange}SELECT campaign_criterion.criterion_id, campaign_criterion.type,
campaign_criterion.negative, campaign_criterion.status,
campaign_criterion.bid_modifier, campaign.name
FROM campaign_criterionSELECT campaign.name, campaign_budget.name,
campaign_budget.amount_micros, campaign_budget.explicitly_shared,
campaign.status
FROM campaign
WHERE campaign_budget.explicitly_shared = trueSELECT shared_set.name, shared_set.id, shared_set.type,
shared_set.status, shared_set.member_count
FROM shared_set
WHERE shared_set.type = 'NEGATIVE_KEYWORDS'