Google Ads MCP

Google Ads campaign management tools for every AI agent -- Claude, Copilot, Cursor, Codex, Gemini, Windsurf, Continue.dev, and Cline. One extension, 8 agents, zero config files to edit.
Install. Authenticate. Ask your AI to analyze campaigns, check keyword performance, or manage ad spend. That's it.
Quick Start
- Install from the VS Code Marketplace
- Authenticate -- the setup wizard appears on first launch
- Ask your AI agent anything about your Google Ads
"Show me my campaign performance this week"
"What are my top performing keywords?"
"Which search terms are triggering my ads?"
"Pause the underperforming campaign"
Prerequisites
You need:
- A Google Ads account with API access
- A Developer Token from Google Ads > Tools > API Center
- OAuth credentials from Google Cloud Console (the wizard will guide you)
Setup
Get a Developer Token:
- Log into Google Ads
- Go to Tools & Settings > API Center
- Copy your Developer Token (apply for one if you don't have it)
Create OAuth Credentials:
- Go to Google Cloud Console
- Create a project (or select existing)
- Enable the Google Ads API
- Go to APIs & Services > Credentials
- Click Create Credentials > OAuth client ID (type: Desktop app)
- Copy the Client ID and Client Secret
Run the Setup Wizard:
- Install the extension
- Follow the 5-step wizard: Auth method > OAuth credentials > Developer token > Agent selection > Verify
Set Your Customer ID:
- In VS Code Settings, search for
gadsMcp.defaultCustomerId
- Enter your 10-digit Google Ads customer ID (no dashes)
- Or pass
customer_id in each request
| Tool |
What It Does |
Example Prompt |
ping |
Check server connectivity |
"Ping the Google Ads MCP server" |
ads_list_accounts |
List accessible customer accounts |
"Show me all my Google Ads accounts" |
ads_account_info |
Account details (name, currency, timezone) |
"What timezone is my Ads account set to?" |
ads_campaigns |
List campaigns with metrics |
"Show me all active campaigns and their performance" |
ads_ad_groups |
List ad groups with metrics |
"Show ad groups for campaign 123456" |
ads_ads |
List ads with headlines and descriptions |
"Show me the ads in my brand campaign" |
ads_keywords |
Keyword performance report |
"What are my top 20 keywords by clicks?" |
ads_search_terms |
Search terms report |
"What are users actually searching to find my ads?" |
ads_performance |
Account/campaign performance summary |
"Show me account performance for March 2026" |
ads_query |
Run arbitrary GAQL queries (read-only) |
"Run a GAQL query for campaign metrics by device" |
All admin actions require confirm: true because they affect real ad spend.
Campaign Admin
| Action |
Description |
create_campaign |
Create a new search campaign (starts paused) |
update_campaign |
Update campaign name |
pause_campaign |
Pause a campaign |
enable_campaign |
Enable a paused campaign |
remove_campaign |
Remove a campaign |
update_budget |
Change daily budget |
Ad Group Admin
| Action |
Description |
create_ad_group |
Create a new ad group (starts paused) |
update_ad_group |
Update name or CPC bid |
pause_ad_group |
Pause an ad group |
enable_ad_group |
Enable a paused ad group |
remove_ad_group |
Remove an ad group |
Ad Admin
| Action |
Description |
create_responsive_search_ad |
Create a responsive search ad (starts paused) |
pause_ad |
Pause an ad |
enable_ad |
Enable a paused ad |
remove_ad |
Remove an ad |
Keyword Admin
| Action |
Description |
add_keywords |
Add keywords to an ad group |
pause_keyword |
Pause a keyword |
enable_keyword |
Enable a paused keyword |
remove_keyword |
Remove a keyword |
update_bid |
Change keyword CPC bid |
Safety
Every write action requires explicit confirmation. Unlike other Google MCP extensions where only destructive actions need confirmation, Google Ads MCP requires confirm: true for ALL admin actions -- because every action affects real advertising spend.
New campaigns, ad groups, and ads are always created in a paused state to prevent accidental spend.
GAQL Query Examples
The ads_query tool accepts Google Ads Query Language for custom reports:
-- Campaign performance by device
SELECT campaign.name, segments.device, metrics.clicks, metrics.impressions
FROM campaign
WHERE segments.date DURING LAST_7_DAYS
-- Top keywords by conversions
SELECT ad_group_criterion.keyword.text, metrics.conversions, metrics.cost_micros
FROM keyword_view
WHERE metrics.conversions > 0
ORDER BY metrics.conversions DESC
LIMIT 20
-- Geographic performance
SELECT geographic_view.country_criterion_id, metrics.clicks, metrics.impressions
FROM geographic_view
WHERE segments.date DURING LAST_30_DAYS
ORDER BY metrics.clicks DESC
Note: Only SELECT queries are allowed through ads_query. CREATE, UPDATE, and REMOVE operations must use the admin tools.
Supported AI Agents
The extension auto-registers with every AI agent it detects:
| Agent |
How It Registers |
Config File |
| VS Code Copilot |
VS Code API (automatic) |
-- |
| Claude Code |
~/.claude.json |
JSON |
| Cursor |
~/.cursor/mcp.json |
JSON |
| OpenAI Codex |
~/.codex/config.toml |
TOML |
| Google Gemini |
~/.gemini/settings.json |
JSON |
| Windsurf |
~/.codeium/windsurf/mcp_config.json |
JSON |
| Continue.dev |
~/.continue/config.yaml |
YAML |
| Cline |
VS Code globalStorage |
JSON |
You can toggle individual agents on/off in Settings > search gadsMcp.agents.
Settings
| Setting |
Default |
Description |
gadsMcp.developerToken |
"" |
Google Ads Developer Token (required) |
gadsMcp.defaultCustomerId |
"" |
Default customer ID (10-digit, no dashes) |
gadsMcp.authMethod |
"oauth" |
Auth method: oauth, serviceAccount |
gadsMcp.agents.* |
true |
Per-agent registration toggles |
gadsMcp.registrationScope |
"global" |
Global or workspace registration |
gadsMcp.autoStart |
true |
Auto-start server on VS Code launch |
gadsMcp.serverLogLevel |
"info" |
Server log verbosity |
Commands
Open the Command Palette (Cmd+Shift+P / Ctrl+Shift+P) and search for:
| Command |
What It Does |
Google Ads MCP: Setup Authentication |
Run the 5-step setup wizard |
Google Ads MCP: Register with AI Agents |
Re-register with all detected agents |
Google Ads MCP: Show Status |
Show auth, token, customer ID, server state |
Google Ads MCP: Restart MCP Server |
Restart the background MCP server |
Google Ads MCP: Check Authentication Status |
Verify credentials are valid |
Google Ads MCP: View Server Logs |
Open the output channel for debugging |
Google Ads MCP: Remove from All Agents |
Clean up all agent registrations |
Troubleshooting
"GAds MCP: Setup" in status bar
Your credentials aren't configured. Click the status bar item or run Google Ads MCP: Setup Authentication.
Developer Token errors
- Make sure you have an approved developer token from Google Ads > Tools > API Center
- Test tokens only work against test accounts
- Set the token in VS Code Settings:
gadsMcp.developerToken
"Permission Denied" errors
- Your Google account must have access to the Google Ads customer account
- The Google Ads API must be enabled in your Google Cloud project
Invalid Customer ID
Customer IDs are 10 digits with no dashes (e.g., 1234567890, not 123-456-7890).
Server keeps crashing
Run Google Ads MCP: View Server Logs to see the error. Common causes:
- Missing developer token
- Expired OAuth credentials > run setup wizard again
- Invalid customer ID
Uninstalling cleanly
Before uninstalling: run Google Ads MCP: Remove from All Agents to clean up config files.
Privacy
This extension:
- Does NOT collect telemetry or send data to third parties
- Communicates only with Google Ads API using your own credentials
- Stores credentials in VS Code's built-in SecretStorage (encrypted, per-user)
- OAuth refresh tokens never leave your machine
- Developer tokens are stored in VS Code settings (not transmitted externally)
Links
By Renzo Johnson | Published by mercurial