Skip to content

Google Ads integration

The Google Ads integration reads the Google Ads API and lands two reports in your own data warehouse. It is read-only reporting: no campaign management, no bid changes, no budget writes.

What the Google Ads integration pulls

ReportGrainWhat landsBackfill
Campaign performanceOne row per campaign per dayImpressions, clicks, cost, conversions and conversion value, in the account's own reporting time zoneAs far back as the account has data
ClicksOne row per ad clickThe click id, campaign, ad group and date90 days only

The click report is the perishable half. Ninety days is a hard limit of the API, so a day not ingested inside that window is a day of attribution lost permanently. The schedule is the retention policy, which is why source freshness for this connector is checked every twelve hours rather than daily.

One field is landed raw and it is stated plainly: the click id. It is a pseudonymous online identifier and personal data under the GDPR. It lands raw because it is a join key, and a hashed join key on one side of a join and a raw one on the other joins nothing. It never becomes a person identifier in its own right and never clusters as an entity on the identity graph.

Demographic and geographic breakdowns sit in the same reporting surface and are never requested. They have no reporting purpose here and they are the natural place a re-identification join starts.

What the Google Ads integration can be used for

Google Ads can be used for return on ad spend measured on your own revenue. The platform reports the conversions it can see. Joined to orders, you get the revenue that actually landed, net of the refunds the platform never hears about.

Google Ads can be used for click-level attribution. The click id lands on the ad side and on the order side, so a specific order maps to a specific click rather than to a modelled share.

Google Ads can be used for spend restatement tracking. Google restates recent days. Recent history is re-pulled on every run, so yesterday's number changing is reflected rather than argued about.

Google Ads can be used for blended acquisition cost across paid search, marketplace advertising and organic, in one table.

Google Ads can be used for keyword-to-content feedback, so paid search terms that convert become briefs for organic articles that do not cost per click.

Google Ads can be used for budget sanity checks in plain language, because an assistant connected to the warehouse can answer which campaign is overspending without anyone opening the ads interface.

CombinationWhat it gives you
Google Ads + ShopifyRefund-aware return on ad spend, per campaign, per day
Google Ads + KlaviyoAcquisition cost against email lifetime value for the same person
Google Ads + Search ConsoleWhere you are paying for clicks on a term you already rank for organically
Google Ads + Bol.comOne paid-media view across your own shop and the marketplace
Google Ads + content pipelineArticles briefed from the paid terms that convert, so organic can take the load off the budget

What you need to connect Google Ads

  • A Google Ads account and a developer token
  • OAuth authorisation for a read-only reporting user
  • The customer id of the account, and the manager account id if you use one

Frequently asked

Does this replace the Google Ads reporting interface? No. It answers what the interface cannot, because the interface does not know your refunds, your marketplace orders or your email revenue.

Why is the click data only 90 days? That is Google's limit, not ours. It is the reason the ingest schedule is treated as a retention decision.

Can Studio change my campaigns? No. The integration is read-only reporting by design.

Which time zone are the daily figures in? The account's own reporting time zone, landed alongside the row. Daily buckets from Google cannot be recut into UTC after the fact, so alignment happens on the event side at join time.