Data source

Google Ads logo

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.

Get started free

Google Ads

Trust

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

npm installs

156K

In Open Source We Trust

Customers

Available connectors

Endpoints

Google Ads endpoints

Documentation

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 series
  • Ad Groups

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

    9 fields
  • Ad Groups Stats

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

    24 fieldsTime series
  • Campaigns

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

    11 fields
  • Campaigns Stats

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

    28 fieldsTime series
  • Criterion

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

    17 fields
  • Geo Stats

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

    18 fieldsTime series
  • Geo Target Constants

    Reference table of geographic targets — join with geo_stats on country_criterion_id to resolve country names.

    7 fields
  • Keywords Stats

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

    26 fieldsTime series

Ad Group Ads Stats schema

Google Ads Ad Group Ads Stats schema

26 fieldsTime seriesgoogle_ads_ad_group_ads_statsSchema on GitHub

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

Google Ads Ad Group Ads Stats fields
FieldTypeDescription
ad_idSTRINGAd ID
ad_statusSTRINGAd Status (ENABLED, PAUSED, REMOVED)
ad_final_urlsARRAYFinal URLs for the Ad
ad_group_idSTRINGAd Group ID
campaign_idSTRINGCampaign ID
dateSTRINGDate for time series data
impressionsNUMBERNumber of Impressions
clicksNUMBERNumber of Clicks
cost_microsNUMBERCost in Micros
conversionsNUMBERNumber of Conversions
ctrNUMBERClick-Through Rate
average_cpcNUMBERAverage Cost Per Click
conversions_valueNUMBERTotal Conversion Value
cost_per_conversionNUMBERCost Per Conversion
ad_typeSTRINGAd Type (TEXT_AD, EXPANDED_TEXT_AD, RESPONSIVE_SEARCH_AD, etc.)
ad_nameSTRINGAd Name
ad_group_nameSTRINGAd Group Name
campaign_nameSTRINGCampaign Name
conversion_rateNUMBERConversion Rate
view_through_conversionsNUMBERView-Through Conversions
all_conversionsNUMBERAll Conversions
all_conversions_valueNUMBERAll Conversions Value
average_costNUMBERAverage Cost
average_cpmNUMBERAverage CPM
interactionsNUMBERNumber of Interactions
interaction_rateNUMBERInteraction Rate

Ad Groups schema

Google Ads Ad Groups schema

9 fieldsgoogle_ads_ad_groupsSchema on GitHub

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

Google Ads Ad Groups fields
FieldTypeDescription
ad_group_idSTRINGAd Group ID
ad_group_nameSTRINGAd Group Name
ad_group_statusSTRINGAd Group Status (ENABLED, PAUSED, REMOVED)
ad_group_typeSTRINGAd Group Type (SEARCH_STANDARD, DISPLAY_STANDARD, etc.)
campaign_idSTRINGCampaign ID
campaign_nameSTRINGCampaign Name
ad_group_cpc_bid_microsNUMBERAd Group CPC Bid in Micros
ad_group_cpm_bid_microsNUMBERAd Group CPM Bid in Micros
ad_group_target_cpa_microsNUMBERAd Group Target CPA in Micros

Ad Groups Stats schema

Google Ads Ad Groups Stats schema

24 fieldsTime seriesgoogle_ads_ad_groups_statsSchema on GitHub

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

Google Ads Ad Groups Stats fields
FieldTypeDescription
ad_group_idSTRINGAd Group ID
ad_group_nameSTRINGAd Group Name
ad_group_statusSTRINGAd Group Status (ENABLED, PAUSED, REMOVED)
campaign_idSTRINGCampaign ID
dateSTRINGDate for time series data
impressionsNUMBERNumber of Impressions
clicksNUMBERNumber of Clicks
cost_microsNUMBERCost in Micros
conversionsNUMBERNumber of Conversions
ctrNUMBERClick-Through Rate
average_cpcNUMBERAverage Cost Per Click
conversions_valueNUMBERTotal Conversion Value
cost_per_conversionNUMBERCost Per Conversion
conversion_rateNUMBERConversion Rate
view_through_conversionsNUMBERView-Through Conversions
all_conversionsNUMBERAll Conversions
all_conversions_valueNUMBERAll Conversions Value
cost_per_all_conversionsNUMBERCost Per All Conversions
average_costNUMBERAverage Cost
average_cpmNUMBERAverage CPM
interactionsNUMBERNumber of Interactions
interaction_rateNUMBERInteraction Rate
engagement_rateNUMBEREngagement Rate
engagementsNUMBERNumber of Engagements

Campaigns schema

Google Ads Campaigns schema

11 fieldsgoogle_ads_campaignsSchema on GitHub

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

Google Ads Campaigns fields
FieldTypeDescription
campaign_idSTRINGCampaign ID
campaign_nameSTRINGCampaign Name
campaign_statusSTRINGCampaign Status (ENABLED, PAUSED, REMOVED)
campaign_advertising_channel_typeSTRINGAdvertising Channel Type (SEARCH, DISPLAY, VIDEO, etc.)
campaign_start_dateSTRINGCampaign Start Date
campaign_end_dateSTRINGCampaign End Date
campaign_bidding_strategy_typeSTRINGBidding Strategy Type (MANUAL_CPC, TARGET_CPA, TARGET_ROAS, etc.)
campaign_budget_amount_microsNUMBERCampaign Budget Amount in Micros
campaign_target_cpa_microsNUMBERTarget CPA in Micros (if using Target CPA bidding)
campaign_target_roasNUMBERTarget ROAS (if using Target ROAS bidding)
campaign_advertising_channel_sub_typeSTRINGAdvertising Channel Sub Type

Campaigns Stats schema

Google Ads Campaigns Stats schema

28 fieldsTime seriesgoogle_ads_campaigns_statsSchema on GitHub

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

Google Ads Campaigns Stats fields
FieldTypeDescription
campaign_idSTRINGCampaign ID
campaign_nameSTRINGCampaign Name
campaign_statusSTRINGCampaign Status (ENABLED, PAUSED, REMOVED)
dateSTRINGDate for time series data
impressionsNUMBERNumber of Impressions
clicksNUMBERNumber of Clicks
cost_microsNUMBERCost in Micros
conversionsNUMBERNumber of Conversions
ctrNUMBERClick-Through Rate
average_cpcNUMBERAverage Cost Per Click
conversions_valueNUMBERTotal Conversion Value
cost_per_conversionNUMBERCost Per Conversion
conversion_rateNUMBERConversion Rate
view_through_conversionsNUMBERView-Through Conversions
all_conversionsNUMBERAll Conversions
all_conversions_valueNUMBERAll Conversions Value
cost_per_all_conversionsNUMBERCost Per All Conversions
average_costNUMBERAverage Cost
average_cpmNUMBERAverage CPM
engagement_rateNUMBEREngagement Rate
engagementsNUMBERNumber of Engagements
interactionsNUMBERNumber of Interactions
interaction_rateNUMBERInteraction Rate
search_impression_shareNUMBERSearch Impression Share
search_budget_lost_impression_shareNUMBERSearch Budget Lost Impression Share
search_rank_lost_impression_shareNUMBERSearch Rank Lost Impression Share
video_viewsNUMBERVideo Views (for Video campaigns)
video_view_rateNUMBERVideo View Rate

Criterion schema

Google Ads Criterion schema

17 fieldsgoogle_ads_criterionSchema on GitHub

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

Google Ads Criterion fields
FieldTypeDescription
criterion_idSTRINGCriterion ID
criterion_typeSTRINGCriterion Type (KEYWORD, PLACEMENT, etc.)
criterion_statusSTRINGCriterion Status (ENABLED, PAUSED, REMOVED)
keyword_textSTRINGKeyword Text
keyword_match_typeSTRINGKeyword Match Type (EXACT, PHRASE, BROAD)
ad_group_idSTRINGAd Group ID
campaign_idSTRINGCampaign ID
quality_scoreNUMBERQuality Score
final_urlsARRAYFinal URLs
negativeBOOLEANWhether to target (false) or exclude (true) the criterion
cpc_bid_microsNUMBERCPC Bid in Micros
effective_cpc_bid_microsNUMBEREffective CPC Bid in Micros (includes bid modifiers)
position_estimates_first_page_cpc_microsNUMBEREstimated CPC Bid needed to appear on first page
position_estimates_top_of_page_cpc_microsNUMBEREstimated CPC Bid needed to appear at top of page
position_estimates_first_position_cpc_microsNUMBEREstimated CPC Bid needed to appear in first position
ad_group_nameSTRINGAd Group Name
campaign_nameSTRINGCampaign Name

Geo Stats schema

Google Ads Geo Stats schema

18 fieldsTime seriesgoogle_ads_geo_statsSchema on GitHub

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

Google Ads Geo Stats fields
FieldTypeDescription
country_criterion_idSTRINGCriterion ID for the country (maps to geo_target_constant_id in geo_target_constants table)
location_typeSTRINGGeo targeting type: AREA_OF_INTEREST (user searched for this location) or LOCATION_OF_PRESENCE (user was physically in this location)
dateSTRINGDate for time series data
campaign_idSTRINGCampaign ID
campaign_nameSTRINGCampaign Name
campaign_statusSTRINGCampaign Status (ENABLED, PAUSED, REMOVED)
impressionsNUMBERNumber of Impressions
clicksNUMBERNumber of Clicks
cost_microsNUMBERCost in Micros
conversionsNUMBERNumber of Conversions
conversions_valueNUMBERTotal Conversion Value
ctrNUMBERClick-Through Rate
average_cpcNUMBERAverage Cost Per Click
all_conversionsNUMBERAll Conversions (includes cross-device and view-through)
all_conversions_valueNUMBERAll Conversions Value
view_through_conversionsNUMBERView-Through Conversions
cost_per_conversionNUMBERCost Per Conversion
conversion_rateNUMBERConversion Rate

Geo Target Constants schema

Google Ads Geo Target Constants schema

7 fieldsgoogle_ads_geo_target_constantsSchema on GitHub

Reference table of geographic targets — join with geo_stats on country_criterion_id to resolve country names.

Google Ads Geo Target Constants fields
FieldTypeDescription
geo_target_constant_idSTRINGCriterion ID - join key with country_criterion_id in geo_stats
nameSTRINGEnglish name of the geo target (e.g. United States, California, New York)
country_codeSTRINGISO-3166-1 alpha-2 country code (e.g. US, GB, DE)
target_typeSTRINGType of geo target (e.g. Country, Region, City, MetroArea, PostalCode)
statusSTRINGStatus of the geo target constant (ENABLED or REMOVAL_PLANNED)
canonical_nameSTRINGFully qualified name including parent targets (e.g. New York,New York,United States)
parent_geo_targetSTRINGResource name of the parent geo target constant

Keywords Stats schema

Google Ads Keywords Stats schema

26 fieldsTime seriesgoogle_ads_keywords_statsSchema on GitHub

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

Google Ads Keywords Stats fields
FieldTypeDescription
keyword_idSTRINGKeyword Criterion ID
keyword_textSTRINGKeyword Text
keyword_match_typeSTRINGKeyword Match Type (EXACT, PHRASE, BROAD)
keyword_statusSTRINGCriterion Status (ENABLED, PAUSED, REMOVED)
ad_group_idSTRINGAd Group ID
campaign_idSTRINGCampaign ID
dateSTRINGDate for time series data
impressionsNUMBERNumber of Impressions
clicksNUMBERNumber of Clicks
cost_microsNUMBERCost in Micros
conversionsNUMBERNumber of Conversions
ctrNUMBERClick-Through Rate
average_cpcNUMBERAverage Cost Per Click
conversions_valueNUMBERTotal Conversion Value
cost_per_conversionNUMBERCost Per Conversion
quality_scoreNUMBERQuality Score
conversion_rateNUMBERConversion Rate
view_through_conversionsNUMBERView-Through Conversions
all_conversionsNUMBERAll Conversions (including cross-device, store visits, etc.)
all_conversions_valueNUMBERAll Conversions Value
average_costNUMBERAverage Cost Per Interaction
average_cpmNUMBERAverage CPM (Cost Per Thousand Impressions)
search_impression_shareNUMBERSearch Impression Share
search_rank_lost_impression_shareNUMBERSearch Rank Lost Impression Share
top_impression_percentageNUMBERTop Impression Percentage
absolute_top_impression_percentageNUMBERAbsolute Top Impression Percentage

S01 · Why teams pick OWOX

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.

The Set Up Connector dialog in OWOX Data Marts at step 1 of 5, listing the connectors available to choose from.

Collect to your warehouse

No per-connector pricing — connect as many sources as you need, all included

The Create Scheduled Trigger dialog in OWOX Data Marts, setting a connector run to repeat daily at 09:00.

Zero-maintenance syncs

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

The Joined Data Marts SQL dialog in OWOX Data Marts, showing the generated SQL that joins an orders data mart with unified ad spend and reporting it as valid.

Full-funnel joins

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

Get started free →

How it works

OWOX Data Marts data setup for Google Ads, with the Google Ads input source feeding Google BigQuery, AWS Athena, Snowflake, Amazon Redshift and Databricks.

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

Explore data marts →

OWOX Data Marts data setup for Google Ads, with Google Ads data delivered to Google Sheets, Looker Studio, Slack, Microsoft Teams and email.

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

Explore data marts →

The OWOX Data Marts side panel open in Google Sheets, building an eCommerce report from a products data mart with its columns selected.

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, Looker Studio, Excel, or Power BI, OWOX delivers clean, scheduled Google Ads data that just works.
  • Deliver to Looker Studio, Google Sheets, Power BI, or Excel automatically
  • Same numbers everywhere — one source of truth for all stakeholders

Get started free →

S03 · Eight outcomes

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

Send Google Ads cost, clicks, and conversions into dashboards and pivots from one governed source — a clear view of paid search you can analyze fast.

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.

What users are saying

Not testimonials. Comment threads.

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

A3re: trusting AI
Nodari RizunNodari 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 SimmonsMark 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 RizunNodari RizunFounder & CEO, Pürblack®
“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.

Get started free

Google Ads