---
title: "Google Ads to Claude | OWOX MCP"
canonical: "https://www.owox.com/connectors/google-ads-connector-to-claude"
updated: "2026-09-17"
---

# Ask Google Ads Questions in Claude

Ask Google Ads questions in Claude using OWOX Data Marts. Collect Google Ads data into a governed data mart, then get answers in Claude via OWOX's MCP server — every number traces back to analyst-written SQL.

[Get Started Free](https://www.owox.com/app-signup)

## Endpoints

## Google Ads endpoints

9 Google Ads endpoints you can import. Each lands in its own table in your warehouse.

*   ### Google Ads Ad Group Ads Stats

    Daily performance for individual ads — impressions, clicks, cost, and conversions.

    26 fieldsTime series`google_ads_ad_group_ads_stats`
*   ### Google Ads Ad Groups

    Your ad group settings — type, status, and bid configuration within each campaign.

    9 fields`google_ads_ad_groups`
*   ### Google Ads Ad Groups Stats

    Daily ad group performance — impressions, clicks, cost, and conversions.

    24 fieldsTime series`google_ads_ad_groups_stats`
*   ### Google Ads Campaigns

    Your campaign settings — channel type, bidding strategy, budget, and scheduling.

    11 fields`google_ads_campaigns`
*   ### Google Ads Campaigns Stats

    Daily campaign performance — impressions, clicks, cost, and conversions.

    28 fieldsTime series`google_ads_campaigns_stats`
*   ### Google Ads Criterion

    Ad group targeting criteria — keywords, placements, and negative exclusions with bid settings.

    17 fields`google_ads_criterion`
*   ### Google Ads Geo Stats

    Daily performance by country and targeting type — impressions, clicks, cost, and conversions.

    18 fieldsTime series`google_ads_geo_stats`
*   ### Google Ads Geo Target Constants

    Reference table of geographic targets — join with geo\_stats on country\_criterion\_id to resolve country names.

    7 fields`google_ads_geo_target_constants`
*   ### Google Ads Keywords Stats

    Daily keyword performance — impressions, clicks, cost, conversions, and quality score.

    26 fieldsTime series`google_ads_keywords_stats`

## Data schema

## Google Ads data schema

**Google Ads Ad Group Ads Stats** 26 fields · google\_ads\_ad\_group\_ads\_stats

| Field | Type | Description |
| --- | --- | --- |
| `ad_id` | STRING | Ad ID |
| `ad_status` | STRING | Ad Status (ENABLED, PAUSED, REMOVED) |
| `ad_final_urls` | ARRAY | Final URLs for the Ad |
| `ad_group_id` | STRING | Ad Group ID |
| `campaign_id` | STRING | Campaign ID |
| `date` | STRING | Date for time series data |
| `impressions` | NUMBER | Number of Impressions |
| `clicks` | NUMBER | Number of Clicks |
| `cost_micros` | NUMBER | Cost in Micros |
| `conversions` | NUMBER | Number of Conversions |
| `ctr` | NUMBER | Click-Through Rate |
| `average_cpc` | NUMBER | Average Cost Per Click |
| `conversions_value` | NUMBER | Total Conversion Value |
| `cost_per_conversion` | NUMBER | Cost Per Conversion |
| `ad_type` | STRING | Ad Type (TEXT\_AD, EXPANDED\_TEXT\_AD, RESPONSIVE\_SEARCH\_AD, etc.) |
| `ad_name` | STRING | Ad Name |
| `ad_group_name` | STRING | Ad Group Name |
| `campaign_name` | STRING | Campaign Name |
| `conversion_rate` | NUMBER | Conversion Rate |
| `view_through_conversions` | NUMBER | View-Through Conversions |
| `all_conversions` | NUMBER | All Conversions |
| `all_conversions_value` | NUMBER | All Conversions Value |
| `average_cost` | NUMBER | Average Cost |
| `average_cpm` | NUMBER | Average CPM |
| `interactions` | NUMBER | Number of Interactions |
| `interaction_rate` | NUMBER | Interaction Rate |

**Google Ads Ad Groups** 9 fields · google\_ads\_ad\_groups

| Field | Type | Description |
| --- | --- | --- |
| `ad_group_id` | STRING | Ad Group ID |
| `ad_group_name` | STRING | Ad Group Name |
| `ad_group_status` | STRING | Ad Group Status (ENABLED, PAUSED, REMOVED) |
| `ad_group_type` | STRING | Ad Group Type (SEARCH\_STANDARD, DISPLAY\_STANDARD, etc.) |
| `campaign_id` | STRING | Campaign ID |
| `campaign_name` | STRING | Campaign Name |
| `ad_group_cpc_bid_micros` | NUMBER | Ad Group CPC Bid in Micros |
| `ad_group_cpm_bid_micros` | NUMBER | Ad Group CPM Bid in Micros |
| `ad_group_target_cpa_micros` | NUMBER | Ad Group Target CPA in Micros |

**Google Ads Ad Groups Stats** 24 fields · google\_ads\_ad\_groups\_stats

| Field | Type | Description |
| --- | --- | --- |
| `ad_group_id` | STRING | Ad Group ID |
| `ad_group_name` | STRING | Ad Group Name |
| `ad_group_status` | STRING | Ad Group Status (ENABLED, PAUSED, REMOVED) |
| `campaign_id` | STRING | Campaign ID |
| `date` | STRING | Date for time series data |
| `impressions` | NUMBER | Number of Impressions |
| `clicks` | NUMBER | Number of Clicks |
| `cost_micros` | NUMBER | Cost in Micros |
| `conversions` | NUMBER | Number of Conversions |
| `ctr` | NUMBER | Click-Through Rate |
| `average_cpc` | NUMBER | Average Cost Per Click |
| `conversions_value` | NUMBER | Total Conversion Value |
| `cost_per_conversion` | NUMBER | Cost Per Conversion |
| `conversion_rate` | NUMBER | Conversion Rate |
| `view_through_conversions` | NUMBER | View-Through Conversions |
| `all_conversions` | NUMBER | All Conversions |
| `all_conversions_value` | NUMBER | All Conversions Value |
| `cost_per_all_conversions` | NUMBER | Cost Per All Conversions |
| `average_cost` | NUMBER | Average Cost |
| `average_cpm` | NUMBER | Average CPM |
| `interactions` | NUMBER | Number of Interactions |
| `interaction_rate` | NUMBER | Interaction Rate |
| `engagement_rate` | NUMBER | Engagement Rate |
| `engagements` | NUMBER | Number of Engagements |

**Google Ads Campaigns** 11 fields · google\_ads\_campaigns

| Field | Type | Description |
| --- | --- | --- |
| `campaign_id` | STRING | Campaign ID |
| `campaign_name` | STRING | Campaign Name |
| `campaign_status` | STRING | Campaign Status (ENABLED, PAUSED, REMOVED) |
| `campaign_advertising_channel_type` | STRING | Advertising Channel Type (SEARCH, DISPLAY, VIDEO, etc.) |
| `campaign_start_date` | STRING | Campaign Start Date |
| `campaign_end_date` | STRING | Campaign End Date |
| `campaign_bidding_strategy_type` | STRING | Bidding Strategy Type (MANUAL\_CPC, TARGET\_CPA, TARGET\_ROAS, etc.) |
| `campaign_budget_amount_micros` | NUMBER | Campaign Budget Amount in Micros |
| `campaign_target_cpa_micros` | NUMBER | Target CPA in Micros (if using Target CPA bidding) |
| `campaign_target_roas` | NUMBER | Target ROAS (if using Target ROAS bidding) |
| `campaign_advertising_channel_sub_type` | STRING | Advertising Channel Sub Type |

**Google Ads Campaigns Stats** 28 fields · google\_ads\_campaigns\_stats

| Field | Type | Description |
| --- | --- | --- |
| `campaign_id` | STRING | Campaign ID |
| `campaign_name` | STRING | Campaign Name |
| `campaign_status` | STRING | Campaign Status (ENABLED, PAUSED, REMOVED) |
| `date` | STRING | Date for time series data |
| `impressions` | NUMBER | Number of Impressions |
| `clicks` | NUMBER | Number of Clicks |
| `cost_micros` | NUMBER | Cost in Micros |
| `conversions` | NUMBER | Number of Conversions |
| `ctr` | NUMBER | Click-Through Rate |
| `average_cpc` | NUMBER | Average Cost Per Click |
| `conversions_value` | NUMBER | Total Conversion Value |
| `cost_per_conversion` | NUMBER | Cost Per Conversion |
| `conversion_rate` | NUMBER | Conversion Rate |
| `view_through_conversions` | NUMBER | View-Through Conversions |
| `all_conversions` | NUMBER | All Conversions |
| `all_conversions_value` | NUMBER | All Conversions Value |
| `cost_per_all_conversions` | NUMBER | Cost Per All Conversions |
| `average_cost` | NUMBER | Average Cost |
| `average_cpm` | NUMBER | Average CPM |
| `engagement_rate` | NUMBER | Engagement Rate |
| `engagements` | NUMBER | Number of Engagements |
| `interactions` | NUMBER | Number of Interactions |
| `interaction_rate` | NUMBER | Interaction Rate |
| `search_impression_share` | NUMBER | Search Impression Share |
| `search_budget_lost_impression_share` | NUMBER | Search Budget Lost Impression Share |
| `search_rank_lost_impression_share` | NUMBER | Search Rank Lost Impression Share |
| `video_views` | NUMBER | Video Views (for Video campaigns) |
| `video_view_rate` | NUMBER | Video View Rate |

**Google Ads Criterion** 17 fields · google\_ads\_criterion

| Field | Type | Description |
| --- | --- | --- |
| `criterion_id` | STRING | Criterion ID |
| `criterion_type` | STRING | Criterion Type (KEYWORD, PLACEMENT, etc.) |
| `criterion_status` | STRING | Criterion Status (ENABLED, PAUSED, REMOVED) |
| `keyword_text` | STRING | Keyword Text |
| `keyword_match_type` | STRING | Keyword Match Type (EXACT, PHRASE, BROAD) |
| `ad_group_id` | STRING | Ad Group ID |
| `campaign_id` | STRING | Campaign ID |
| `quality_score` | NUMBER | Quality Score |
| `final_urls` | ARRAY | Final URLs |
| `negative` | BOOLEAN | Whether to target (false) or exclude (true) the criterion |
| `cpc_bid_micros` | NUMBER | CPC Bid in Micros |
| `effective_cpc_bid_micros` | NUMBER | Effective CPC Bid in Micros (includes bid modifiers) |
| `position_estimates_first_page_cpc_micros` | NUMBER | Estimated CPC Bid needed to appear on first page |
| `position_estimates_top_of_page_cpc_micros` | NUMBER | Estimated CPC Bid needed to appear at top of page |
| `position_estimates_first_position_cpc_micros` | NUMBER | Estimated CPC Bid needed to appear in first position |
| `ad_group_name` | STRING | Ad Group Name |
| `campaign_name` | STRING | Campaign Name |

**Google Ads Geo Stats** 18 fields · google\_ads\_geo\_stats

| Field | Type | Description |
| --- | --- | --- |
| `country_criterion_id` | STRING | Criterion ID for the country (maps to geo\_target\_constant\_id in geo\_target\_constants table) |
| `location_type` | STRING | Geo targeting type: AREA\_OF\_INTEREST (user searched for this location) or LOCATION\_OF\_PRESENCE (user was physically in this location) |
| `date` | STRING | Date for time series data |
| `campaign_id` | STRING | Campaign ID |
| `campaign_name` | STRING | Campaign Name |
| `campaign_status` | STRING | Campaign Status (ENABLED, PAUSED, REMOVED) |
| `impressions` | NUMBER | Number of Impressions |
| `clicks` | NUMBER | Number of Clicks |
| `cost_micros` | NUMBER | Cost in Micros |
| `conversions` | NUMBER | Number of Conversions |
| `conversions_value` | NUMBER | Total Conversion Value |
| `ctr` | NUMBER | Click-Through Rate |
| `average_cpc` | NUMBER | Average Cost Per Click |
| `all_conversions` | NUMBER | All Conversions (includes cross-device and view-through) |
| `all_conversions_value` | NUMBER | All Conversions Value |
| `view_through_conversions` | NUMBER | View-Through Conversions |
| `cost_per_conversion` | NUMBER | Cost Per Conversion |
| `conversion_rate` | NUMBER | Conversion Rate |

**Google Ads Geo Target Constants** 7 fields · google\_ads\_geo\_target\_constants

| Field | Type | Description |
| --- | --- | --- |
| `geo_target_constant_id` | STRING | Criterion ID - join key with country\_criterion\_id in geo\_stats |
| `name` | STRING | English name of the geo target (e.g. United States, California, New York) |
| `country_code` | STRING | ISO-3166-1 alpha-2 country code (e.g. US, GB, DE) |
| `target_type` | STRING | Type of geo target (e.g. Country, Region, City, MetroArea, PostalCode) |
| `status` | STRING | Status of the geo target constant (ENABLED or REMOVAL\_PLANNED) |
| `canonical_name` | STRING | Fully qualified name including parent targets (e.g. New York,New York,United States) |
| `parent_geo_target` | STRING | Resource name of the parent geo target constant |

**Google Ads Keywords Stats** 26 fields · google\_ads\_keywords\_stats

| Field | Type | Description |
| --- | --- | --- |
| `keyword_id` | STRING | Keyword Criterion ID |
| `keyword_text` | STRING | Keyword Text |
| `keyword_match_type` | STRING | Keyword Match Type (EXACT, PHRASE, BROAD) |
| `keyword_status` | STRING | Criterion Status (ENABLED, PAUSED, REMOVED) |
| `ad_group_id` | STRING | Ad Group ID |
| `campaign_id` | STRING | Campaign ID |
| `date` | STRING | Date for time series data |
| `impressions` | NUMBER | Number of Impressions |
| `clicks` | NUMBER | Number of Clicks |
| `cost_micros` | NUMBER | Cost in Micros |
| `conversions` | NUMBER | Number of Conversions |
| `ctr` | NUMBER | Click-Through Rate |
| `average_cpc` | NUMBER | Average Cost Per Click |
| `conversions_value` | NUMBER | Total Conversion Value |
| `cost_per_conversion` | NUMBER | Cost Per Conversion |
| `quality_score` | NUMBER | Quality Score |
| `conversion_rate` | NUMBER | Conversion Rate |
| `view_through_conversions` | NUMBER | View-Through Conversions |
| `all_conversions` | NUMBER | All Conversions (including cross-device, store visits, etc.) |
| `all_conversions_value` | NUMBER | All Conversions Value |
| `average_cost` | NUMBER | Average Cost Per Interaction |
| `average_cpm` | NUMBER | Average CPM (Cost Per Thousand Impressions) |
| `search_impression_share` | NUMBER | Search Impression Share |
| `search_rank_lost_impression_share` | NUMBER | Search Rank Lost Impression Share |
| `top_impression_percentage` | NUMBER | Top Impression Percentage |
| `absolute_top_impression_percentage` | NUMBER | Absolute Top Impression Percentage |

## In Claude

## Ask Google Ads questions in Claude

You

Which Google Ads ads lost click-through rate compared with the week before?

Claude

Using google\_ads\_ad\_group\_ads\_stats I compared ctr per ad between this week and last week by date, keeping ads whose ad\_status shows them as running. The answer lists the ads whose ctr fell, largest drop first, with impressions for context.

It is read from your governed Google Ads Data Mart through the OWOX MCP server and reflects that Data Mart's last scheduled refresh.

You

Did those ads still bring in conversion value?

Claude

I added conversions\_value and all\_conversions\_value for both weeks. An ad whose ctr fell while conversions\_value held steady is losing casual clickers, not buyers. One where both fell is the ad that needs new creative.

## Related connectors

[AWS Athena Connector to Claude](/connectors/aws-athena-connector-to-claude)

[AWS Redshift Connector to Claude](/connectors/aws-redshift-connector-to-claude)

[Bank of Canada Connector to Claude](/connectors/bank-of-canada-connector-to-claude)

## What users are saying

## Every claim has a receipt.

Real things real customers said — each quote pinned to a specific claim, straight from the quotes database.

A3re: trusting AI

![Nodari Rizun](https://cdn.owox.ai/www/webflow/6a7b298b2ca5055443187566_nodari-headshot.png/public)Nodari RizunFounder & CEO, Pürblack®

> _“AI, by the nature of the models, will hallucinate. And because of that, you need something which will create guardrails to ensure that there are no hallucinations, that you can trust your data.”_

C9re: one source of truth

![Mark Simmons](https://cdn.owox.ai/www/webflow/6a7b298b2b9daab0ade631d7_mark-headshot.png/public)Mark SimmonsCMO, Pürblack®

> _“We had six or seven different channels and no single source of truth — it was almost impossible, a lot of guesswork.”_

E7re: getting time back

![Nodari Rizun](https://cdn.owox.ai/www/webflow/6a7b298b2ca5055443187566_nodari-headshot.png/public)Nodari RizunFounder & CEO, Pürblack®

> _“We regained time. And time is the one resource that never comes back.”_

## Turn Google Ads Data into Answers in Claude

See how OWOX Data Marts helps you ask Google Ads questions in Claude, blend it with other sources, and scale reporting without rebuilding logic.

[Get Started Free](https://www.owox.com/app-signup)

## References

Pages this page links to, on this site and on docs.owox.com. Where the page has a Markdown twin, its address follows the link.

- [Get Started Free](https://www.owox.com/app-signup)
- [AWS Athena Connector to Claude](https://www.owox.com/connectors/aws-athena-connector-to-claude) — /connectors/aws-athena-connector-to-claude.md
- [AWS Redshift Connector to Claude](https://www.owox.com/connectors/aws-redshift-connector-to-claude) — /connectors/aws-redshift-connector-to-claude.md
- [Bank of Canada Connector to Claude](https://www.owox.com/connectors/bank-of-canada-connector-to-claude) — /connectors/bank-of-canada-connector-to-claude.md
