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.
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 seriesgoogle_ads_ad_group_ads_statsGoogle Ads Ad Groups
Your ad group settings — type, status, and bid configuration within each campaign.
9 fieldsgoogle_ads_ad_groupsGoogle Ads Ad Groups Stats
Daily ad group performance — impressions, clicks, cost, and conversions.
24 fieldsTime seriesgoogle_ads_ad_groups_statsGoogle Ads Campaigns
Your campaign settings — channel type, bidding strategy, budget, and scheduling.
11 fieldsgoogle_ads_campaignsGoogle Ads Campaigns Stats
Daily campaign performance — impressions, clicks, cost, and conversions.
28 fieldsTime seriesgoogle_ads_campaigns_statsGoogle Ads Criterion
Ad group targeting criteria — keywords, placements, and negative exclusions with bid settings.
17 fieldsgoogle_ads_criterionGoogle Ads Geo Stats
Daily performance by country and targeting type — impressions, clicks, cost, and conversions.
18 fieldsTime seriesgoogle_ads_geo_statsGoogle Ads Geo Target Constants
Reference table of geographic targets — join with geo_stats on country_criterion_id to resolve country names.
7 fieldsgoogle_ads_geo_target_constantsGoogle Ads Keywords Stats
Daily keyword performance — impressions, clicks, cost, conversions, and quality score.
26 fieldsTime seriesgoogle_ads_keywords_stats
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 |
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.
Data Partner You Can Trust
users
175K
Executives and data analysts across 20+ industries
G2 rating
4.9★
“A trusted data analytics partner” — verified review
Customers
Every claim has a receipt.
Real things real customers said — each quote pinned to a specific claim, straight from the quotes database.
“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.”
“We had six or seven different channels and no single source of truth — it was almost impossible, a lot of guesswork.”
“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

