Collect Google Ads data. Deliver reports. Automate AI Insights.
Easily collect Google Ads data with OWOX Data Marts, store in your data warehouse, automate reporting across major BI Tools and AI Insights (the ones that matter) delivered straight to corporate messengers on a schedule.

Available connectors from Google Ads
Available connectors from Google Ads
- Google Ads Connector to ChatGPT9 endpoints166 fieldsAd Group Ads Stats, Ad Groups, Ad Groups Stats, Campaigns, Campaigns Stats, Criterion, Geo Stats, Geo Target Constants, Keywords Stats
- Google Ads Connector to Claude9 endpoints166 fieldsAd Group Ads Stats, Ad Groups, Ad Groups Stats, Campaigns, Campaigns Stats, Criterion, Geo Stats, Geo Target Constants, Keywords Stats
- Google Ads to AWS Athena Connector9 endpoints166 fieldsAd Group Ads Stats, Ad Groups, Ad Groups Stats, Campaigns, Campaigns Stats, Criterion, Geo Stats, Geo Target Constants, Keywords Stats
- Google Ads to AWS Redshift Connector9 endpoints166 fieldsAd Group Ads Stats, Ad Groups, Ad Groups Stats, Campaigns, Campaigns Stats, Criterion, Geo Stats, Geo Target Constants, Keywords Stats
- Google Ads to Databricks Connector9 endpoints166 fieldsAd Group Ads Stats, Ad Groups, Ad Groups Stats, Campaigns, Campaigns Stats, Criterion, Geo Stats, Geo Target Constants, Keywords Stats
- Google Ads to Google BigQuery Connector9 endpoints166 fieldsAd Group Ads Stats, Ad Groups, Ad Groups Stats, Campaigns, Campaigns Stats, Criterion, Geo Stats, Geo Target Constants, Keywords Stats
- Google Ads to Snowflake Connector9 endpoints166 fieldsAd Group Ads Stats, Ad Groups, Ad Groups Stats, Campaigns, Campaigns Stats, Criterion, Geo Stats, Geo Target Constants, Keywords Stats
- Google Ads Connector to API9 endpoints166 fieldsAd Group Ads Stats, Ad Groups, Ad Groups Stats, Campaigns, Campaigns Stats, Criterion, Geo Stats, Geo Target Constants, Keywords Stats
- Google Ads Connector to Microsoft Excel9 endpoints166 fieldsAd Group Ads Stats, Ad Groups, Ad Groups Stats, Campaigns, Campaigns Stats, Criterion, Geo Stats, Geo Target Constants, Keywords Stats
- Google Ads Insights to Email9 endpoints166 fieldsAd Group Ads Stats, Ad Groups, Ad Groups Stats, Campaigns, Campaigns Stats, Criterion, Geo Stats, Geo Target Constants, Keywords Stats
- Google Ads Insights to Google Chat9 endpoints166 fieldsAd Group Ads Stats, Ad Groups, Ad Groups Stats, Campaigns, Campaigns Stats, Criterion, Geo Stats, Geo Target Constants, Keywords Stats
- Google Ads Insights to Microsoft Teams9 endpoints166 fieldsAd Group Ads Stats, Ad Groups, Ad Groups Stats, Campaigns, Campaigns Stats, Criterion, Geo Stats, Geo Target Constants, Keywords Stats
- Google Ads Insights to Slack9 endpoints166 fieldsAd Group Ads Stats, Ad Groups, Ad Groups Stats, Campaigns, Campaigns Stats, Criterion, Geo Stats, Geo Target Constants, Keywords Stats
- Google Ads to Data Studio Connector9 endpoints166 fieldsAd Group Ads Stats, Ad Groups, Ad Groups Stats, Campaigns, Campaigns Stats, Criterion, Geo Stats, Geo Target Constants, Keywords Stats
- Google Ads to Google Sheets Connector9 endpoints166 fieldsAd Group Ads Stats, Ad Groups, Ad Groups Stats, Campaigns, Campaigns Stats, Criterion, Geo Stats, Geo Target Constants, Keywords Stats
- 0.39.0Backfill any past period
- 0.39.0Facebook Ads imports now retry a corrupted response instead of failing
- 0.38.0Shopify connector: more orders fields, including line-item discounts
- 0.37.0Short links resolve only on known short link services and domains you allow
- 0.37.0Clearer connector errors, and custom connectors that handle more APIs
Google Ads Endpoints
9 Google Ads endpoints you can import. Each lands in its own table in your warehouse.
Ad Group Ads Stats
Daily performance for individual ads — impressions, clicks, cost, and conversions.
26 fieldsTime seriesAd Groups
Your ad group settings — type, status, and bid configuration within each campaign.
9 fieldsAd Groups Stats
Daily ad group performance — impressions, clicks, cost, and conversions.
24 fieldsTime seriesCampaigns
Your campaign settings — channel type, bidding strategy, budget, and scheduling.
11 fieldsCampaigns Stats
Daily campaign performance — impressions, clicks, cost, and conversions.
28 fieldsTime seriesCriterion
Ad group targeting criteria — keywords, placements, and negative exclusions with bid settings.
17 fieldsGeo Stats
Daily performance by country and targeting type — impressions, clicks, cost, and conversions.
18 fieldsTime seriesGeo Target Constants
Reference table of geographic targets — join with geo_stats on country_criterion_id to resolve country names.
7 fieldsKeywords Stats
Daily keyword performance — impressions, clicks, cost, conversions, and quality score.
26 fieldsTime series
Google Ads Ad Group Ads Stats schema
26 fieldsTime seriesSchema on GitHubgoogle_ads_ad_group_ads_stats
Daily performance for individual ads — impressions, clicks, cost, and conversions.
| 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 schema
9 fieldsSchema on GitHubgoogle_ads_ad_groups
Your ad group settings — type, status, and bid configuration within each campaign.
| 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 schema
24 fieldsTime seriesSchema on GitHubgoogle_ads_ad_groups_stats
Daily ad group performance — impressions, clicks, cost, and conversions.
| 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 schema
11 fieldsSchema on GitHubgoogle_ads_campaigns
Your campaign settings — channel type, bidding strategy, budget, and scheduling.
| 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 schema
28 fieldsTime seriesSchema on GitHubgoogle_ads_campaigns_stats
Daily campaign performance — impressions, clicks, cost, and conversions.
| 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 schema
17 fieldsSchema on GitHubgoogle_ads_criterion
Ad group targeting criteria — keywords, placements, and negative exclusions with bid settings.
| 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 schema
18 fieldsTime seriesSchema on GitHubgoogle_ads_geo_stats
Daily performance by country and targeting type — impressions, clicks, cost, and conversions.
| 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 schema
7 fieldsSchema on GitHubgoogle_ads_geo_target_constants
Reference table of geographic targets — join with geo_stats on country_criterion_id to resolve country names.
| 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 schema
26 fieldsTime seriesSchema on GitHubgoogle_ads_keywords_stats
Daily keyword performance — impressions, clicks, cost, conversions, and quality score.
| 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 |
Why collect Google Ads data into your warehouse with OWOX?
Your Google Ads data shouldn’t be trapped in a platform you can’t query. OWOX collects it into your warehouse on autopilot — no per-connector fees, no vendor lock-in. The entire platform is open-source on GitHub, so you can self-host it today and never worry about losing access to your own data pipelines.

Collect to your warehouse
No per-connector pricing — connect as many sources as you need, all included

Zero-maintenance syncs
Fully open-source on GitHub — self-host anytime, no vendor lock-in, your data stays yours

Full-funnel joins
Full transparency and control — every query, every schema, every schedule is visible and auditable

R01 · Collect
Collect all your Google Ads data with zero engineering
Pull everything your company needs from Google Ads without touching code, dealing with API, or maintaining custom scripts. OWOX Data Marts handle the heavy lifting.
- Your Google Ads data is stored in one place – your own infrastructure. OWOX Data Marts automatically land your data directly into BigQuery, Snowflake, or Redshift.
- Your Google Ads data lands on a schedule: clean, complete, and ready to re-use across reports, dashboards, BI tools, and spreadsheets.
- No API maintenance, no broken scripts — just reliable daily syncs

R02 · Report
Build reports with Google Ads data that everyone trusts
Once your Google Ads data lands in your warehouse, OWOX Data Marts make it instantly reusable across spreadsheets and BI tools. No manual stitching, no inconsistent metrics.
- Pre-built data marts for campaign performance, spend, and ROAS
- Join Google Ads with CRM, GA4, and revenue data in one query
- Self-serve reporting for marketing teams — no analyst tickets needed

R03 · Visualize
Visualize Google Ads data instantly in your BI tools
With OWOX Data Marts, your Google Ads data becomes instantly available for charts, dashboards, pivots, and spreadsheets.
- Whether you use Google Sheets, Data Studio, Excel, or Power BI, OWOX delivers clean, scheduled Google Ads data that just works.
- Deliver to Data Studio, Google Sheets, Power BI, or Excel automatically
- Same numbers everywhere — one source of truth for all stakeholders
Why use OWOX connectors to collect your Google Ads data?
Eight outcomes you get the moment your data marts go live.
Full picture, one screen
Beyond native dashboards
Google Ads reports in its own currency and timezone; in your warehouse OWOX normalizes both so numbers reconcile across accounts and markets.
Your questions, your reports
Build reports that answer your questions — true CPA, ROAS, and blended CAC — on your definitions, not Google’s default conversion counting.
Faster decisions, better data
Join Google Ads cost to actual revenue from Shopify or your CRM, so spend decisions rest on profit, not platform-reported conversions.
Always fresh, always complete
OWOX Data Marts automate Google Ads collection on a schedule — campaigns, keywords, and spend — with no manual exports and no broken scripts.
All sources, one warehouse
Merge Google Ads with every other channel to see one blended acquisition picture instead of comparing tabs that never quite match.
Zero manual work
Automate transfer into BigQuery, Snowflake, or Redshift — governed and reusable across every report, saving time and removing copy-paste errors.
Blended reports
Once Google Ads lands in governed Data Marts, anyone can ask in their own AI chat — “which campaigns actually drove profit last month?” — every number tracing to analyst-written SQL.
Not testimonials. Comment threads.
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.”
Start collecting Google Ads data for free
Set up your Google Ads connector in minutes. No credit card, no engineering team required.

You are booked. The invitation is on its way to , with the calendar invite and the meeting link.
Schedule in person meeting at Tip Top Toronto
You are booked. The invitation is on its way to , with the calendar invite and the meeting link.


