How to Connect Google Ads to Claude in 60 Seconds (AI Campaign Analysis)

Every Google Ads manager has ever faced a budget leak.
A handful of keywords convert at 0.2%.
A campaign with a target ROAS of 400% sits at 180% for three weeks while Smart Bidding “learns.”
One match type in an ad group quietly cannibalizes the rest.
You know these problems exist. The real question is how quickly you can find them and stop the wasted spend.
Google Ads reporting shows what happened — CPA increased, ROAS dropped — but understanding why usually means digging across campaigns, ad groups, keywords, match types, devices, and time segments. In practice, that often turns into CSV exports, pivot tables, and hours of analysis.
With Windsor MCP, your Google Ads data is streamed directly from the Google Ads API into Claude. Automatically and with no code.
🚀 Automate your Google Ads analysis in Claude with Windsor MCP. Try it free for 30 days.
Instead of exporting CSV reports or managing spreadsheets, you can automate the integration and start asking questions about campaign performance in natural language, like:
- Which keywords are spending the most but generating no conversions?
- Which campaigns are missing their ROAS targets?
- Where is the budget being wasted?
Claude analyzes your Google Ads data instantly and surfaces the underlying issues, helping you connect ad spend to real results and identify clear optimization opportunities in just seconds.
It can also generate structured summaries, tables, and visual dashboards, turning analysis into actionable reporting.
How to connect Google Ads data to Claude with Windsor MCP
Windsor MCP acts as the data layer between Google Ads and Claude, pulling structured campaign data directly from the Google Ads API and making it available for analysis inside your Claude conversations.
All you need to do is complete three simple steps.
📖 Full walkthrough: windsor.ai/documentation/windsor-mcp/how-to-integrate-data-into-claude/.
Prerequisites
Before you begin, make sure you have access to:
- a Windsor.ai account (free trial or paid plan)
- a Google Ads account (read-only or higher access level)
- a Claude account
Then follow these steps to connect Google Ads to Claude:
1. Go to onboard.windsor.ai and select Google Ads as your data source.
2. Sign in with the Google account that has access to your Ads account and approve the connection. Select the account(s) that you’d like to connect to Claude.

3. In Claude, open the Windsor.ai connector page and click Connect.

💡 Quick tip: Set permissions to “Always allow,” so your Ads data will be live in every Claude conversation from here on.

You’re all set. Your Google Ads data is now connected to Claude and ready to query.
Prompt ideas: What you can do with your Google Ads data in Claude
The use cases and prompts below help Google Ads PPC managers analyze their campaign data faster in Claude using Google Ads fields provided by Windsor.
🤖 For more advanced prompt ideas across Google Ads and other data sources, browse the full Windsor AI Prompt Library.
If you’re running B2B or lead generation campaigns
Your boss isn’t asking about ROAS — they’re asking which campaigns produce a qualified pipeline, and at what cost. The problem is that Google Ads only knows about form fills. The qualification happens downstream in your CRM. Here’s how to connect those dots.
The question every B2B marketer needs answered: which campaigns produce deals, not just leads.
Lead generation efficiency across channels
Connect Google Ads alongside your CRM (e.g., HubSpot or Salesforce) in Windsor. Then ask the following.
Prompt:
Join Google Ads campaign_name and ad_group_name with CRM deal data using the utm_campaign and utm_content fields. For each campaign, show: total cost, total leads (conversions), leads that reached SQL stage, SQL-to-deal conversion rate, and average deal value. Calculate cost per SQL and cost per closed deal. Rank campaigns by cost per closed deal, ascending.
This is the analysis most B2B teams do quarterly in a spreadsheet, if they do it at all. With Windsor connecting Google Ads and your CRM to Claude, it becomes a standing question you can ask any time.
CPA by keyword, segment by device and time of day
You know your target CPA. The question is which specific keywords and under which conditions are blowing past it.
Prompt:
Pull keyword_text, match_type, device, hour_of_day, cost, conversions, and cost_per_conversion for all search campaigns in the last 60 days. Find all keyword + device combinations where cost_per_conversion exceeds [your target CPA] by more than 50%. Then check: are any of these currently using max conversions bidding? If so, the algorithm may be prioritizing volume over efficiency — flag those for bid strategy review.
Audience segment performance: are your in-market audiences actually cheaper to convert?
Prompt:
For my Search campaigns, break down cost, conversions, cost_per_conversion, and conversion_rate by audience_name and audience_type (in-market, remarketing, similar, customer match). Compare the CPA of each audience layer against the base (no audience) for the same campaign. Which audience segments justify a bid adjustment, and what adjustment would bring their effective CPA to target?
Quality score triage: where low QS is costing you on CPCs
Prompt:
Show me all keywords with quality_score of 4 or below, their campaign_name, ad_group_name, expected_ctr_rating, landing_page_experience_rating, ad_relevance_rating, average_cpc, and cost over the last 30 days. Prioritize by cost descending. For the top 20 by spend, what is the most common failing component — CTR, relevance, or landing page? Group them and suggest which issue to fix first for maximum CPC reduction.
If you’re managing Google Ads for clients (agency use)
Your problem isn’t just analysis — it’s doing analysis across 10 or 20 accounts without spending your whole week in spreadsheets, and then turning it into something a client can understand.
Here’s how Windsor MCP for Google Ads to Claude integration can streamline your work.
Cross-account budget pacing and anomaly detection
Prompt:
For each client account, pull campaign_name, daily budget, cost for yesterday, cost month-to-date, and days remaining in the month. Calculate projected month-end spend at the current run rate. Flag any account where projected spend is more than 15% above or below the monthly budget. Also, flag any campaign where yesterday's cost was more than 3x its 7-day average daily spend — that's usually a bidding anomaly or accidental budget increase.
Client-ready performance narrative, not just a data dump
Prompt:
Using Google Ads data for [client name] for this month vs. last month: compare cost, impressions, clicks, ctr, conversions, cost_per_conversion, and conversion_value. Write a 3-paragraph client performance summary that: (1) leads with the headline result (better or worse ROI, and by how much), (2) explains the two biggest drivers of that change at the campaign or ad group level, (3) gives one specific recommendation for next month with the expected impact. Write it for a non-technical client who cares about results, not metrics.
Finding upsell opportunities within an existing client account
Prompt:
Analyze [client]'s current campaign structure. Which product categories or service lines have no active campaign but exist as search terms in the search_term report with more than 50 impressions and at least one conversion in the last 90 days? These are unmet demand signals — list them as potential new campaign opportunities with estimated monthly search volume based on impression data.
Google Ads + GA4: what happens after the click
Google Ads tells you someone converted. GA4 tells you what they did before that.
Prompt:
For my top 10 Google Ads campaigns by spend, pull the post-click GA4 behaviour: average session duration, pages per session, bounce rate, and micro-conversion rate (e.g. product page view or add-to-cart). Are there campaigns with strong Google Ads CTR but high GA4 bounce rate?
If you’re running e-commerce or D2C campaigns
Your core question is always some version of: which campaigns are making money, and which are spending it? Here’s how to get Claude to answer that properly.
Finding your true ROAS by campaign, net of discounts
Google Ads reports conversion_value against cost. But if you’re running promotions or have margin differences across product lines, blended ROAS hides the real picture. Connect your Shopify or WooCommerce data alongside Google Ads in Windsor and ask the following.
Prompt:
Pull cost, conversion_value, and conversions for all Shopping and Performance Max campaigns for the last 30 days. Calculate ROAS as conversion_value / cost for each. Then cross-reference with Shopify order data to show actual gross margin per campaign. Flag any campaigns where reported ROAS is above 400% but margin-adjusted ROAS falls below 200%.
Performance Max: what’s actually spending your budget
PMax campaigns are a black box by design — Google aggregates Shopping, Display, Search, and YouTube inventory into a single campaign. But Windsor can pull asset group performance and product-level data separately, giving Claude enough to work with.
Prompt:
For my Performance Max campaigns, break down cost and conversion_value by asset_group_name. Which asset groups have a ROAS below my account target of [X]%? Also, pull the top 10 product_id values by cost within PMax and flag any that have spent above $50 with zero conversions in the last 14 days.
Unlocking Performance Max (PMax) insights
Google famously hides granular search term data within PMax campaigns, making it a “black box” for many merchants. Since Windsor.ai pulls raw campaign dimensions that the standard Google Ads UI often abstracts, you can ask Claude the following prompt (based on Shopify + Google Ads data blending).
Prompt:
Analyze my PMax search themes and cross-reference them with Shopify sales to see which 'unseen' search terms are actually driving my highest-margin orders.
Identifying cannibalizing search terms across match types
Broad match modified, phrase, and exact often bid on overlapping queries. Without a search term analysis, you’re paying for the same intent multiple times.
Prompt:
Pull search_term, match_type, campaign_name, ad_group_name, cost, conversions, and conversion_rate for the last 30 days. Find search terms that appear across more than one match type in the same or different ad groups. For each duplicate, which match type has the lower CPA? Flag cases where broad or phrase match is outspending exact match on the same query.
Budget allocation: where to shift spending before the end of the month
Prompt:
Show me campaign_name, cost, conversion_value, roas, impression_share_lost_budget, and impression_share_lost_rank for all active campaigns this month. Which campaigns have a ROAS above [target] but are losing impression share due to budget? How much incremental budget would be needed to capture that lost share, based on current CPCs?
How Windsor MCP works with Google Ads and Claude
Instead of exporting reports manually, Windsor connects directly to the Google Ads API and streams structured campaign data into your Claude conversations.
This means Claude can analyze the same metrics and dimensions you normally access through GAQL queries, but without writing queries or building dashboards.
The process works like this:
- Windsor connects to your Google Ads account through the API.
- It retrieves structured campaign data, including performance metrics, segmentation dimensions, and diagnostic fields.
- The Windsor MCP connector makes this data available inside Claude.
- Claude can then query and analyze the data using natural language prompts.
Because the data comes directly from the Google Ads API, every question you ask Claude is based on live campaign data, not static exports.
Core capabilities of Windsor MCP for Google Ads
- Live campaign data
Windsor pulls campaign data directly from the Google Ads API, so Claude always analyzes the most recent performance metrics without repetitive exports every time you need fresh data.
- Structured data for analysis
Windsor normalizes Google Ads fields and sends them to Claude in a structured format, making it easier to query performance across campaigns, ad groups, keywords, search terms, and audience segments.
- Access to thousands of Google Ads fields
Claude can analyze more than 2300 Google Ads metrics and dimensions, including campaign structure, performance metrics, and quality diagnostics.
- Cross-source data analysis
Because Windsor connects to 325+ marketing and business data sources, you can combine Google Ads data with:
- Advertising platforms (Facebook Ads, TikTok Ads, LinkedIn Ads)
- E-commerce platforms (Shopify or WooCommerce)
- CRMs (HubSpot or Salesforce)
- GA4 post-click behaviour
This allows you to analyze ad spend alongside revenue and pipeline outcomes.

- Multi-account analysis
If you manage multiple Google Ads accounts through an MCC, Windsor allows Claude to analyze performance across accounts in a single conversation.
Key Google Ads data fields Windsor sends to Claude
Windsor gives Claude access to 2300+ Google Ads fields. Below are the most common metrics and dimensions that are most often used in real analysis:
Performance metrics you’ll use in almost every prompt
- cost — Actual spend, the denominator in every efficiency calculation
- conversions, conversion_value — Your primary and secondary conversion actions; conversion_value is what powers ROAS calculations
- cost_per_conversion — CPA; Windsor calculates this automatically so you don’t need to define it in the prompt
- impressions, clicks, ctr — Funnel entry metrics; CTR at keyword level is also a quality score component
- average_cpc, average_cpm — Actual bid cost; compare against max_cpc to understand auction efficiency
- roas — Calculated as conversion_value / cost; Windsor surfaces this directly
- search_impression_share — The share of eligible auctions you’re appearing in; the ceiling on your current reach
- search_budget_lost_impression_share, search_rank_lost_impression_share — What’s limiting that impression share — budget or bid strength
Segmentation dimensions for deeper cuts
- campaign_name, ad_group_name — The primary structural dimensions for any campaign-level analysis
- keyword_text, match_type — Essential for search term overlap and cannibalisation analysis
- search_term — The actual query typed; the most granular unit of search intent
- device — Mobile vs. desktop vs. tablet; performance gaps here are almost always actionable
- segments.hour_of_day, segments.day_of_week — Time-of-day segmentation; critical for dayparting decisions
- audience_name, audience_type — In-market, remarketing, customer match, similar audiences — each with its own CPA profile
- asset_group_name — Performance Max asset group breakdowns; the closest you get to PMax transparency
Quality and diagnostic fields
- quality_score — 1–10 score per keyword; correlates directly with CPCs
- expected_ctr_rating, ad_relevance_rating, landing_page_experience_rating — The three components of QS; tell you exactly which lever to pull
- bidding_strategy_type — Target CPA, Target ROAS, Max Conversions, Enhanced CPC — the strategy drives the algorithm’s behavior
- campaign_status, ad_group_status, keyword_status — Active, paused, removed; useful for auditing account hygiene
Conclusion
Google Ads accounts reward the people who ask the most precise questions most often. The problem has always been that asking precise questions takes time: you need to download data, build pivot tables, cross-reference campaign structures, and extract insights.
Windsor MCP gives Claude live access to your Google Ads data. You still need to know which questions to ask, but now asking them takes 60 seconds instead of days.
For e-commerce teams, that means tighter ROAS management and faster budget reallocation. For B2B teams, it means finally knowing which campaigns produce revenue, not just leads. For agencies, it means spending less time on reports and more time on strategy.
🚀 Connect Google Ads to Claude with Windsor MCP — start your 30-day free trial now.
FAQs
What’s the fastest way to get Google Ads data into Claude?
Windsor MCP — 60-second setup at onboard.windsor.ai, then your data is live in every Claude conversation permanently. The alternative is downloading CSVs from Google Ads and uploading them manually, which gives you stale data, no cross-account joins, and no cross-source blending. The API route gives you full flexibility but requires engineering work and ongoing maintenance.
What are the main ways to connect Google Ads to Claude?
- Windsor MCP (recommended): No-code, live data, MCC-ready, cross-source blending. Setup in 60 seconds.
- Manual CSV download + upload: Fast to start, but data is immediately stale. No segment joins, no cross-source analysis. Fine for one-off questions, unusable for ongoing analysis.
- Google Ads API (direct): Full flexibility and real-time data, but requires OAuth setup, query language knowledge (GAQL), pagination handling, and ongoing maintenance. Built for engineering teams, not marketers.
Can Claude see my search term report data?
Yes, and this is one of the highest-value datasets Windsor pulls. The search_term field gives Claude access to the actual queries triggering your ads, including match type, cost, and conversions per query. This makes search term analysis, negative keyword identification, and match type cannibalisation analysis all possible from a single prompt.
How does Windsor handle Performance Max campaigns, given their limited transparency?
PMax is opaque by design, but Windsor pulls what the API makes available: asset group performance (cost, conversions, conversion_value per asset group), product-level data where available, and top-level campaign metrics. It’s not full transparency, but it’s enough to identify underperforming asset groups and flag products that are spending without converting.
Can I blend Google Ads data with my CRM or e-commerce store in Claude?
Yes, this is one of the most common and valuable use cases. Windsor connects to 325+ data sources, and you can have multiple sources active in the same Claude conversation. The most common Google Ads blends are with Shopify (for revenue reconciliation), HubSpot or Salesforce (for B2B pipeline attribution), and GA4 (for post-click behaviour). The join key is typically utm_campaign or utm_content passed through from the ad.
Does Windsor support Google Ads Manager Accounts (MCC)?
Yes. Windsor connects at the MCC level, so you can query across all sub-accounts in a single Claude conversation. Ask Claude to compare performance across client accounts, flag budget pacing issues in any account, or roll up spend and ROAS across your entire managed portfolio.
Can Claude write back changes to my Google Ads account?
No, Windsor MCP is read-only. Claude can analyse your data, identify specific keywords to pause, ad groups to restructure, or budgets to reallocate, and generate a prioritised list of changes — but all edits happen in the Google Ads interface or via scripts, made by you. This is intentional; no automated tool should have write access to live ad spend without human review.
Does Windsor pull the conversion action breakdown, or just total conversions?
Windsor pulls both. You can segment by conversion_action_name to see performance broken out by individual conversion types — form fill vs. phone call vs. purchase vs. demo booked. This is especially important for accounts with multiple conversion actions and mixed objectives, where total “conversions” can be misleading.
Windsor vs Coupler.io


