Connector

Collect Google Ads data in Google BigQuery

Load Google Ads campaigns, ad groups, ads and keywords into your own BigQuery tables with OWOX Data Marts: one table per endpoint, a business-friendly schema, refreshed on a schedule. Join search spend with web analytics and CRM to see which campaigns become deals.

Google AdsConnectedAd Group Ads Sta…Ad GroupsAd Groups StatsCampaigns
Data MartPublishedone definition
Google BigQueryDateCostClicksDaily 09:00
Refreshed on a schedule. No exports, no copy-paste.

Get Started Free

Endpoints

S00 · Why

Why join Google Ads with your web analytics and CRM

Google Ads reports clicks and the conversions it counted. It cannot show which campaign led to a deal that closed months later. For that, search spend, website touch points and CRM deals have to sit in one data warehouse. Google's BigQuery Data Transfer Service copies Google Ads reports into BigQuery once a day, as raw report tables for each Customer ID. The joining, with Facebook, TikTok and your CRM, is still yours to build.

  • Compare Google Ads spend with Facebook, Microsoft and TikTok in one table
  • Trace a click on a campaign to the deal it became
  • Keep conversions and conversion value in tables you own
Google AdsSearch spend
Web analyticsClicks, form fills
CRMDeals
Your data warehouseBigQueryCampaignTouch pointDealJoined by idCampaign clickedDeal months laterOne query links the ad to the deal.

S01 · Step 1

Step 1: Connect Google Ads and pick the fields

Create a Data Mart, choose Google Ads as the data source, authorize with Google or a service account, enter the Customer ID and tick only the fields you need.

  • 9 endpoints and 166 fields: campaigns, ad groups, ads, keywords and geo
  • Stats endpoints read an ad account Customer ID; structure endpoints can read a manager account
New Data MartChoose a sourceFacebook AdsGoogle AdsMicrosoft AdsAuthorizeConnectedEndpointCampaigns StatsAd Group Ads StatsAd GroupsAd Groups Stats
Campaigns Stats28 fieldsdatecost_microsimpressionsclicksconversionsconversions_value

S02 · Step 2

Step 2: Load Google Ads into a BigQuery table

The dataset and table in your data storage are pre-filled, and you can change them. Run it and the first load lands in your own BigQuery project.

  • Each endpoint gets its own table, such as google_ads_campaigns_stats
  • Cost arrives in micros as cost_micros; convert it once in your model
  • Every run is logged in Run History
DestinationBigQueryDatasetgoogle_adsTablecampaigns_statsRun
Run HistoryPendingRunningSuccessIncremental load
Tablegoogle_ads.campaigns_stats

S03 · Step 3

Step 3: Get a business-friendly output schema

After the first run you get the output schema: every field with a readable description, not an API identifier. Your data quality checks can read it too.

  • The schema spells out units, such as cost_micros being cost in micros
  • Statuses read as plain values: ENABLED, PAUSED, REMOVED
google_ads.campaigns_statsOutput schemaFieldDescriptiondateDate for time series datacost_microsCost in MicrosimpressionsNumber of ImpressionsclicksNumber of ClicksconversionsNumber of Conversionsconversions_valueTotal Conversion Value

S04 · Step 4

Step 4: Keep the Google Ads tables linked

Campaigns, ad groups, ad stats and campaign stats stay separate tables, joined by ids. Together they become one Google Ads data model.

  • campaign_id and ad_group_id repeat across tables, so a stats row always finds its campaign and ad group
  • Join the model to web analytics and CRM on the campaign
Campaignscampaign_idcampaign_namecampaign_status
Ad Groupsad_group_idcampaign_idad_group_name
Ad Group Ads Statsad_idad_group_idcost_micros
Campaigns Statscampaign_idcost_micros

S05 · Step 5

Step 5: Schedule the refresh and backfill history

Set it once. A scheduled refresh keeps the tables current, and a manual backfill loads any past period.

  • Each incremental run reloads today plus a lookback window you set
  • Backfill a custom start and end date
ScheduleRun on a scheduleDaily 09:00
BackfillRun backfill
Run HistoryDaily scheduleManual backfillDaily schedule

S06 · Step 6

Step 6: Reuse the same table everywhere

One table feeds your data model, spreadsheets, dashboards, AI assistants like Claude and ChatGPT, and scheduled AI insights in Slack or email.

  • Blend Google Ads with Facebook and Microsoft spend once
  • Every report reads the same table
Google AdsData MartPublished
Blended ad spend
Google Sheets
Data Studio dashboards
Claude, ChatGPT
Slack, email

Recent updates

Why OWOX

Why OWOX for Google Ads in BigQuery

Google's BigQuery Data Transfer Service copies Google Ads reports once a day, with no incremental loads, into dozens of report tables named per Customer ID. OWOX loads the same data on your schedule, in tables made to be joined with the rest of your marketing data.

  • Google Ads and every other source. The Data Transfer Service serves Google Ads in BigQuery only. OWOX loads Facebook, TikTok, Microsoft and the rest the same way, and into Snowflake, Redshift, Athena or Databricks too, so blended ad spend stays one model.
  • No architect needed. Authorize with Google or a service account, enter the Customer ID, tick the fields and run. There is no transfer configuration and no per-account table set to design first.
  • You choose endpoints and fields. Pick campaign, ad group, ad, keyword or geo stats and tick only the columns you need, instead of a full set of report tables and views for every Customer ID.
  • Your schedule, any period. Run on the schedule you set, with a lookback window for late changes, and backfill a custom period whenever you need it.
  • Ready for a data model. Separate tables joined by campaign, ad group and ad ids, built to connect to web analytics and CRM.
  • Free to self-host. The open-source OWOX Data Marts runs in your own infrastructure.

Book a callGet Started Free

Trust

The Data Partner You Can Trust

users

175K Source: Internal OWOX data as of 2026-11-11

Executives and data analysts across 20+ industries

G2 rating

4.9★2

“A trusted data analytics partner” — verified review

npm installs

171K3

In Open Source We Trust

Customers