Imagine typing “show me all campaigns where CPA is above £80 and impressions dropped more than 20% last week” into Claude and getting a live table of results pulled directly from your Google Ads account - no dashboards, no exports, no manual filtering.
That is what MCP makes possible. And with Zapier as the bridge, you can set it up without writing a single line of code.
This guide walks through the complete setup from scratch: what MCP is, how the connection works, and step-by-step instructions to get Claude talking to your Google Ads account.
What MCP Is and Why It Changes How You Work With Data
MCP stands for Model Context Protocol. It is an open standard created by Anthropic that lets Claude connect directly to external tools, databases, and services - not just read about them, but actually interact with them in real time.
Without MCP, Claude works with information you paste into the conversation. You export a CSV from Google Ads, paste it in, and ask questions. That works, but it has limits:
- The data is a snapshot - it goes stale immediately
- You can only paste so much data before hitting context limits
- Every analysis requires a manual export step
- Claude cannot take actions (pause a campaign, adjust a budget)
With MCP, Claude has a live connection to your Google Ads account. It can query current data, pull reports for any date range, filter by any dimension, and in some configurations make changes directly.
The protocol defines how Claude should discover what a tool can do, how to call it, and how to interpret the response. From your perspective, you just ask Claude questions in plain English and it figures out what API calls to make.
The Architecture: How the Pieces Connect
Before setting anything up, understanding the structure saves confusion later.
You (in Claude Desktop or Claude.ai)
↓
Claude AI
↓
MCP Protocol
↓
Zapier MCP Server ←→ Zapier Account
↓
Google Ads (via Zapier integration)
Claude connects to Zapier’s MCP server via a unique URL Zapier generates for you. Zapier sits in the middle - it already has a Google Ads integration and handles the OAuth authentication with Google. Claude never sees your Google credentials directly.
When you ask Claude a question about your campaigns, Claude translates your question into an action, calls the Zapier MCP server, Zapier queries Google Ads, and the result comes back to Claude, which presents it to you in natural language.
What You Need Before Starting
- Claude Desktop (free download) - the desktop app for Mac or Windows, OR a paid Claude plan (Pro, Max, Team, or Enterprise) to use the web-based Integrations feature at claude.ai
- A Zapier account - MCP is available on all Zapier plans; each tool call uses 2 tasks from your plan’s quota. Note that Google Ads is a premium app on Zapier and requires a paid Zapier plan to connect.
- A Google Ads account with at least one active campaign
- 30 - 45 minutes for the initial setup
You do not need developer tools, API credentials, or any code editing beyond a text configuration file that takes two minutes to fill in.
Part 1: Install and Set Up Claude Desktop
Note: If you are on a paid Claude plan (Pro, Max, Team, or Enterprise), you can skip the JSON configuration entirely. Instead, go to claude.ai → Settings → Integrations → + Add Custom Integration and paste your Zapier MCP URL directly. No config file or Node.js required.
If you are on the free plan or prefer the desktop app, follow the steps below.
Step 1: Download Claude Desktop
Go to claude.ai/download and download the Claude Desktop app for your operating system (Mac or Windows). Install it and sign in with your Anthropic account. A free account works for this setup.
Step 2: Verify Claude Desktop Is Running
Open Claude Desktop. You should see the standard chat interface. In the bottom-right corner of the chat input box, you will see a tools indicator once MCP servers are connected. You will configure that in the next steps.
Part 2: Create Your Zapier MCP Server and Connect Google Ads
Step 3: Create a Zapier Account
Go to zapier.com and create an account if you do not have one. MCP is available on all Zapier plans, but connecting Google Ads requires a paid plan since Google Ads is a premium Zapier app.
Step 4: Create a Zapier MCP Server
- Go to zapier.com/mcp
- Click + New MCP Server
- In the dialog, select Other as your MCP client (this gives you the raw URL for manual configuration - use Claude only if you are on a paid Claude plan using the web integration flow)
- Give your server a name (e.g. “Google Ads MCP”)
- Click Create MCP Server
Step 5: Add Google Ads as a Tool
-
Inside your new MCP server, click the Configure tab
-
Click + Add tool
-
Search for Google Ads and select it
-
Choose the action you want to enable. The available Google Ads actions in Zapier are:
- Find Campaign by Name - finds a campaign matching a name you provide
- Find Campaign by ID - finds a campaign by its Google Ads campaign ID
- Create Report - generates a report on campaign or ad data
- Set Campaign Status - enables or pauses a campaign
- Send Offline Conversion - uploads offline conversion events
- Find Customer List - finds an audience list by name
- API Request (Beta) - makes a raw HTTP request using your authenticated Google Ads connection
For a read-only setup (recommended to start), add Find Campaign by Name, Find Campaign by ID, and Create Report. This lets Claude query and analyze without making any changes to your account.
-
Connect your Google Ads account when prompted - a Google OAuth window will open. Sign in with the Google account that has access to your Google Ads account and grant Zapier the requested permissions.
-
Click Save
Repeat this process to add additional actions as needed.
Step 6: Get Your Zapier MCP Server URL
- Inside your MCP server, click the Connect tab
- You will see your unique MCP server URL. It will look like:
https://mcp.zapier.com/api/mcp/s/YOUR_UNIQUE_TOKEN/sse - Copy this URL. You will need it in the next step.
Part 3: Connect Claude Desktop to Your Zapier MCP Server
Paid Claude plan users (Pro/Max/Team/Enterprise): Skip to the shortcut at the end of this section.
Step 7: Open the Claude Desktop Configuration File
Claude Desktop uses a JSON configuration file to store MCP server connections. The location depends on your operating system:
Mac:
~/Library/Application Support/Claude/claude_desktop_config.json
Windows:
%APPDATA%\Claude\claude_desktop_config.json
The easiest way to open it on Mac:
- Open Finder
- Press Cmd + Shift + G
- Paste
~/Library/Application Support/Claude/ - Open
claude_desktop_config.jsonin any text editor (TextEdit, VS Code, Notepad)
If the file does not exist yet, create it in that directory with an empty structure:
{
"mcpServers": {}
}
Step 8: Add the Zapier MCP Server
Edit the configuration file to add Zapier as an MCP server. Replace YOUR_ZAPIER_SSE_URL with the URL you copied in Step 6:
{
"mcpServers": {
"zapier": {
"command": "npx",
"args": [
"mcp-remote",
"YOUR_ZAPIER_SSE_URL"
]
}
}
}
For example, it should look like:
{
"mcpServers": {
"zapier": {
"command": "npx",
"args": [
"mcp-remote",
"https://mcp.zapier.com/api/mcp/s/abc123xyz/sse"
]
}
}
}
Save the file. Node.js must be installed on your computer for the npx command to work. Download it from nodejs.org if you have not already.
Step 9: Restart Claude Desktop
Quit Claude Desktop completely (not just close the window - quit the application). Reopen it.
When Claude Desktop starts, it reads the configuration file and attempts to connect to any configured MCP servers. If the connection succeeds, you will see a tools indicator appear in the bottom-right corner of the chat input box (a ”+” or hammer icon depending on your version). Click it to confirm your Zapier Google Ads tools are listed.
Step 9 (Shortcut - Paid Claude Plan Users)
If you are on Pro, Max, Team, or Enterprise:
- Go to claude.ai → Settings → Integrations
- Click + Add Custom Integration
- Give it a name (e.g. “Zapier Google Ads”)
- Paste your Zapier MCP URL from Step 6
- Click Save
No JSON file, no Node.js, no restart required.
Step 10: Verify the Connection
In Claude Desktop or Claude.ai, start a new conversation and type:
What tools do you have access to?
Claude should respond with a list that includes your Zapier Google Ads tools. If Claude does not mention any tools, the MCP connection did not succeed. The most common causes are a typo in the configuration file, not fully quitting and restarting Claude Desktop, or Node.js not being installed. Double-check all three.
Part 4: Querying Google Ads Through Claude
With the connection working, you can now ask Claude questions about your Google Ads account in plain English.
Basic Queries to Start With
Get campaign overview:
Show me all my active Google Ads campaigns with their current status,
daily budget, and total spend this month.
Find underperforming campaigns:
Which of my campaigns have a CPA higher than £100 in the last 30 days?
Show me campaign name, conversions, cost, and CPA.
Check budget pacing:
Are any of my campaigns close to hitting their daily budget?
Show me current spend vs. budget for today.
Keyword performance:
What are my top 10 keywords by conversion volume in the last 7 days?
Include cost per conversion and average position.
Device performance breakdown:
Break down my conversions by device (mobile, desktop, tablet)
for the last 30 days. Which device has the best CPA?
Claude translates each of these into the appropriate Zapier action, retrieves the data, and presents it in a readable format. You can follow up with natural language refinements:
Now filter that to only show campaigns in the Search network.
Which of those had more than 50 clicks this week?
Sort by cost descending.
Part 5: Using GAQL for Advanced Queries
For more precise data retrieval - especially when you need custom dimensions, date ranges, or combinations of metrics that Zapier’s pre-built actions do not cover - GAQL (Google Ads Query Language) gives you full control.
GAQL is SQL-like syntax that queries the Google Ads API directly. A typical GAQL query looks like this:
SELECT
campaign.name,
campaign.status,
metrics.clicks,
metrics.conversions,
metrics.cost_micros,
metrics.ctr
FROM campaign
WHERE segments.date DURING LAST_30_DAYS
AND campaign.status = 'ENABLED'
ORDER BY metrics.cost_micros DESC
LIMIT 20
You do not need to write GAQL yourself. Claude can write it for you.
Using GAQL.app as a Reference Tool
GAQL.app (by TrueClicks) is a free tool for exploring the Google Ads Query Language. It connects directly to ChatGPT or Claude via an endpoint, but you can also use it to browse available GAQL fields and understand the query structure before writing prompts.
Use it to:
- Browse all available GAQL fields and resources
- Understand which metrics and dimensions are available per resource type
- Validate query structure before running it through Claude
Workflow with GAQL:
- Ask Claude to write the GAQL query for you:
Write a GAQL query to find all search terms from the last 30 days
that had more than 5 clicks and zero conversions, sorted by spend descending.
- Claude writes the query. Then ask it to run it:
Now run that query against my Google Ads account via Zapier.
Claude will pass the query to the Google Ads API via Zapier, retrieve the results, and format them for you - including converting cost_micros (Google’s internal cost format in millionths of your currency) into readable numbers.
Useful GAQL Queries for Common Tasks
Search term report - find new negative keyword candidates:
SELECT
search_term_view.search_term,
metrics.clicks,
metrics.conversions,
metrics.cost_micros,
metrics.impressions
FROM search_term_view
WHERE segments.date DURING LAST_30_DAYS
AND metrics.clicks > 5
AND metrics.conversions = 0
ORDER BY metrics.cost_micros DESC
LIMIT 50
Ask Claude: “Run this query and identify the top wasted spend search terms I should add as negatives.”
Quality Score audit:
SELECT
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
FROM keyword_view
WHERE segments.date DURING LAST_30_DAYS
AND metrics.impressions > 100
ORDER BY ad_group_criterion.quality_info.quality_score ASC
LIMIT 30
Ask Claude: “Run this and tell me which keywords have the worst quality scores and what the likely cause is based on the component scores.”
Impression share by campaign:
SELECT
campaign.name,
metrics.search_impression_share,
metrics.search_rank_lost_impression_share,
metrics.search_budget_lost_impression_share,
metrics.clicks,
metrics.cost_micros
FROM campaign
WHERE segments.date DURING LAST_7_DAYS
AND campaign.status = 'ENABLED'
ORDER BY metrics.search_impression_share ASC
Ask Claude: “Run this and identify which campaigns are losing impression share due to budget vs. rank, and give me a prioritized recommendation for where to increase budget.”
Part 6: Practical Use Cases Once You Are Connected
The connection becomes genuinely useful when you start using it for recurring tasks that previously required manual dashboard navigation or exports.
Weekly Performance Review in 60 Seconds
Instead of opening Google Ads, navigating to reports, filtering, and exporting:
Give me a weekly performance summary for all my active campaigns.
Compare this week (Mon-Sun) vs. last week. Show me changes in
clicks, conversions, CPA, and spend. Flag anything that moved
more than 20% in either direction.
Claude pulls the data, calculates the week-over-week changes, and highlights the significant movements - with the data current as of the moment you ask.
Identifying Anomalies Without Setting Up Automated Alerts
Are there any ad groups in my account that spent more than £50
yesterday with zero conversions? If so, list them and tell me
what their average CPA was over the previous 30 days for context.
This kind of cross-period anomaly detection is tedious to set up as an automated alert in Google Ads. As a natural language question to Claude, it takes ten seconds.
Pre-Meeting Data Pulls
Before a client call or internal review:
I have a client meeting in 20 minutes about their ecommerce account.
Give me a one-paragraph summary of last month's performance vs.
the month before, including any notable changes to call out.
Keep it non-technical.
Budget Reconciliation
We have a total monthly budget of £15,000 across all campaigns.
It's the 12th of the month. How much have we spent so far?
Are we on pace to hit budget or over/under-spend by month end?
Which campaigns are pacing fastest?
Part 7: Enabling Write Access (Optional, Use With Caution)
The setup above with Find Campaign and Create Report actions is effectively read-only - Claude can query and analyze but cannot change anything. This is the recommended starting point.
If you want Claude to be able to make changes - pausing campaigns, changing campaign status - enable the Set Campaign Status action in your Zapier MCP server’s Configure tab.
Before enabling write access:
Always instruct Claude to confirm before acting. You can make this a standing instruction:
Before making any changes to my Google Ads account, tell me exactly
what you are going to do and wait for me to confirm with "yes, proceed"
before making the change.
This turns every write action into a two-step process: Claude proposes the change, you review it, and you explicitly approve. This is a sensible safeguard given that a misunderstood instruction could pause the wrong campaign or set the wrong status.
Consider also creating a separate Google Ads user with Editor access (not Admin) for the account you connect to Zapier - this limits the blast radius of any accidental changes.
Troubleshooting Common Setup Issues
Claude Says It Has No Tools Available
This usually means the MCP server did not connect successfully.
Check:
- The
claude_desktop_config.jsonfile is valid JSON (no missing commas, unclosed brackets) - You fully quit and restarted Claude Desktop - not just closed the window
- The Zapier MCP URL is correct - paste it fresh from Zapier’s Connect tab to rule out typos
- Node.js is installed on your computer (the
npxcommand requires it) - download from nodejs.org if not
Google Ads OAuth Not Working in Zapier
If the Google OAuth window fails or Zapier shows Google Ads as disconnected:
Go to zapier.com → Apps → Google Ads → Reconnect. Re-authorize with Google and test by adding a tool again. This sometimes happens after Google refreshes security tokens.
Claude Retrieves Data But It Looks Wrong
If the numbers Claude returns do not match what you see in the Google Ads interface, check the date range. Claude may be defaulting to a different date range than you assumed. Be explicit:
Show me campaign performance for March 1 to March 12, 2026 specifically.
Also check the conversion window. Google Ads reports can show different numbers depending on whether you are using “Conversion date” vs. “Click date” attribution. Specify which you want in your prompt if precision matters.
Zapier Actions Are Timing Out on Large Accounts
For accounts with hundreds of campaigns or very long date ranges, queries can time out. Scope your requests more narrowly:
- Limit to specific campaigns by name
- Use shorter date ranges (7 or 14 days instead of 90)
- Filter to specific campaign types (Search only, not all campaigns)
Hitting Zapier Task Limits
Each MCP tool call counts as 2 Zapier tasks. If you are on a lower Zapier plan with limited monthly tasks, heavy querying can exhaust your quota. Monitor usage in your Zapier dashboard and upgrade if needed for regular use.
What This Setup Cannot Do (Yet)
Being clear about the limitations saves frustration.
It cannot query Google Analytics 4 data directly through this setup - that requires a separate MCP or Zapier connection to GA4.
It cannot pull data from Google Ads Editor or historical data before your Zapier connection was made - it queries the live Google Ads API.
It cannot create campaigns or ads from scratch - Zapier’s Google Ads actions support finding and updating existing entities, not full campaign creation.
Response time is not instant - each query goes from Claude → Zapier → Google Ads API → Zapier → Claude. Expect 5 - 15 seconds per query, longer for complex date ranges or large accounts.
It is not a replacement for Google Ads reports for stakeholder-facing work - the output is conversational, not formatted for board decks. Use it for analysis and decision-making, then format the conclusions for presentation separately.
Key Takeaway
The combination of Claude + MCP + Zapier creates something genuinely useful: a natural language interface to your live Google Ads data. No exports, no dashboards, no manual filtering. You describe what you want to know and Claude retrieves it.
The setup takes under an hour. Once it is working, the workflow change is significant - especially for recurring analysis tasks that currently require navigating multiple Google Ads report screens, applying filters, and interpreting the output yourself.
Start with read-only access (Find Campaign, Create Report). Spend a few weeks learning what questions you can ask and how Claude interprets them. Then decide whether write access makes sense for your workflow.
The underlying technology will keep improving. MCP integrations for Google Ads, GA4, and other marketing platforms will become more capable and easier to set up. Getting familiar with the workflow now puts you ahead of the significant majority of advertisers who are still doing this work manually.
Related Posts
How Claude AI Can Help You Set Up Google Ads Tracking in Google Tag Manager
11 min read
How AI Is Changing Google Ads Workflows
6 min read
How to Build a Product Scraper Chrome Extension with Claude AI
18 min read
Need Help With Your Google Ads?
I help e-commerce brands scale profitably with data-driven PPC strategies.
Get In Touch