Reference
Google Ads tools
Full campaign management for Google Ads with GAQL queries, keyword research, and campaign mutations.
On this page
Before you begin
Connect the relevant Google Ads account through Accounts, then connect your AI assistant. Confirm the target account and date range before querying data or making changes.
This is the generated catalog. The tools shown in your AI assistant depend on your connected accounts, active workspace, role, write permissions, enabled features and the client's supported tool surface. A listed tool is not a promise that it is enabled in every workspace. See accounts, workspace access and troubleshooting.
Available tools
5 tools · API v25.
| Tool | Access | Purpose |
|---|---|---|
google_ads_list_accounts | Read | List all Google Ads accounts you have access to |
google_ads_run_gaql | Read | Run a Google Ads Query Language (GAQL) query |
google_ads_run_keyword_planner | Read | Get keyword ideas and search volume data |
google_ads_mutate | Write | Create, update, or remove campaigns, ad groups, ads, and keywords |
google_ads_upload | Write | Upload staged Google Ads images/videos, or inspect the exact recorded media. |
Write tools can change account settings, campaigns or workspace content. Confirm the target and proposed changes before running them.
Private local uploads support Meta, TikTok, LinkedIn and Google Ads. Your workspace needs upload access to the destination, and your AI client needs file access and HTTP upload. JPEG/PNG images up to 20 MB (20,000,000 bytes) and MP4 videos up to 500 MB (500,000,000 bytes) are supported by the upload flow; destination-specific restrictions still apply. Existing account-library IDs remain available. Read the upload guide before uploading.
Example questions
List my Google Ads accounts
Find keyword ideas for 'marketing automation'
Show campaign performance for the last 30 days
What keywords have the best quality score?
Compare performance across my search campaigns
API capabilities
Available fields and combinations depend on the resource, account and campaign type. Adapt the examples to your selected account.
Metrics
| Category | Fields |
|---|---|
| Traffic | impressions, clicks, ctr, cost_micros, average_cpc, average_cpm |
| Conversion | conversions, conversions_value, conversions_by_conversion_date, all_conversions, view_through_conversions, cross_device_conversions |
| Engagement | engagements, engagement_rate, interactions, interaction_rate |
| Video | video_views, video_view_rate, video_quartile_p25_rate, video_quartile_p50_rate, video_quartile_p75_rate, video_quartile_p100_rate |
| Quality & Competition | search_impression_share, search_top_impression_share, search_absolute_top_impression_share, content_impression_share, search_budget_lost_impression_share, search_rank_lost_impression_share |
| Bidding | average_cost, cost_per_conversion, cost_per_all_conversions, value_per_conversion, value_per_all_conversions, optimization_score_uplift |
Dimensions
| Category | Fields |
|---|---|
| Time | segments.date, segments.day_of_week, segments.hour, segments.month, segments.quarter, segments.year, segments.week |
| Device & Network | segments.device, segments.ad_network_type, segments.click_type |
| Conversion | segments.conversion_action, segments.conversion_action_category, segments.external_conversion_source |
| Geographic | segments.geo_target_city, segments.geo_target_metro, segments.geo_target_region |
| Shopping | segments.product_channel, segments.product_item_id |
| Search | segments.search_term_match_type |
Query examples
Bidding Strategy Effectiveness Analysis
Compare campaign bidding strategies. Calculate ROAS after retrieval as conversions_value / (cost_micros / 1,000,000); leave ROAS undefined when cost is zero.
Tool: google_ads_run_gaql.
SELECT
campaign.id,
campaign.name,
campaign.bidding_strategy_type,
bidding_strategy.name,
campaign.target_cpa.target_cpa_micros,
campaign.target_roas.target_roas,
metrics.impressions,
metrics.clicks,
metrics.conversions,
metrics.cost_per_conversion,
metrics.conversions_value,
metrics.cost_micros
FROM campaign
WHERE
campaign.status = 'ENABLED'
AND segments.date DURING LAST_30_DAYS
AND metrics.impressions > 100
ORDER BY metrics.conversions DESC
Search Term Discovery & Negative Keyword Mining
Find search terms that cost money but don't convert - candidates for negative keywords
Tool: google_ads_run_gaql.
SELECT
search_term_view.search_term,
search_term_view.status,
campaign.name,
ad_group.name,
metrics.impressions,
metrics.clicks,
metrics.ctr,
metrics.conversions,
metrics.cost_micros
FROM search_term_view
WHERE
segments.date DURING LAST_30_DAYS
AND metrics.impressions > 50
AND metrics.conversions = 0
AND metrics.cost_micros > 10000000
ORDER BY metrics.cost_micros DESC
LIMIT 100
Geographic Performance Deep Dive
Analyze which geographic locations drive the most conversions
Tool: google_ads_run_gaql.
SELECT
geographic_view.country_criterion_id,
geographic_view.location_type,
campaign.name,
metrics.impressions,
metrics.clicks,
metrics.conversions,
metrics.cost_micros,
metrics.conversions_value
FROM geographic_view
WHERE
segments.date DURING LAST_30_DAYS
AND metrics.impressions > 100
ORDER BY metrics.conversions_value DESC
Device & Hour Performance Matrix
Build a dayparting matrix to optimize ad scheduling by device
Tool: google_ads_run_gaql.
SELECT
segments.device,
segments.hour,
metrics.impressions,
metrics.clicks,
metrics.ctr,
metrics.conversions,
metrics.cost_per_conversion
FROM campaign
WHERE
segments.date DURING LAST_7_DAYS
AND campaign.status = 'ENABLED'
ORDER BY segments.device, segments.hour
Quality Score & Ad Relevance Analysis
Find keywords with low quality scores that need optimization
Tool: google_ads_run_gaql.
SELECT
ad_group.name,
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.impressions,
metrics.clicks,
metrics.average_cpc
FROM keyword_view
WHERE
segments.date DURING LAST_30_DAYS
AND ad_group_criterion.status = 'ENABLED'
ORDER BY ad_group_criterion.quality_info.quality_score ASC
Auction Insights Competitive Analysis
Understand your competitive position with impression share metrics
Tool: google_ads_run_gaql.
SELECT
campaign.name,
metrics.search_impression_share,
metrics.search_top_impression_share,
metrics.search_absolute_top_impression_share,
metrics.search_budget_lost_impression_share,
metrics.search_rank_lost_impression_share,
metrics.search_exact_match_impression_share
FROM campaign
WHERE
campaign.advertising_channel_type = 'SEARCH'
AND segments.date DURING LAST_30_DAYS
AND campaign.status = 'ENABLED'
ORDER BY metrics.search_impression_share DESC
Technical reference
API endpoint: googleads.googleapis.com/v25. Status: stable. Scheduled version sunset: August 2027.
Limitations and notes
- Campaign mutations require google_ads_mutate tool (Standard Access developer token needed for production)
- GAQL has no LAST_90_DAYS preset - use BETWEEN with specific dates instead
- Some metrics require specific campaign types (e.g., video metrics need video campaigns)
