Google Ads API + GAQL — one-click OAuth.

The Google Ads integration built for blended ROAS across Search, Shopping, P-Max, Display

One-click OAuth with Google. Admaxxer reads campaign performance via GAQL, normalizes cost_micros to dollars, and surfaces blended MER alongside Meta spend — from $29/mo.

Start 7-day free trial Read the docs

7-day free trial on every plan. No credit card required. Admaxxer is a DTC analytics platform with built-in Meta + Google ad ops.

What you get

Campaign sync via GAQL
Every campaign, ad group, and keyword synced via Google Ads Query Language. Spend, impressions, CTR, conversions, and conversion value — normalized and stored in Tinybird.
Cross-channel MER
Google spend is joined with Meta spend and pixel revenue to calculate blended MER — the only number that tells you if paid is profitable in aggregate.
Performance Max drill-down
P-Max is a black box by default. Admaxxer surfaces the asset group, final URL, and search-term buckets Google exposes — so you can compare P-Max against your branded Search baseline honestly.
Conversion import
Offline conversions from your pixel can be imported back into Google Ads to improve Smart Bidding signal quality — the same pattern Hyros uses, without the five-figure invoice.

How it connects

  1. Click Connect Google Ads. Standard OAuth flow — Admaxxer redirects you to Google's consent screen and requests the adwords scope only (read + manage). No extra surface area.
  2. Select accounts to sync. MCC / manager accounts are supported: pick any subset of the child accounts under your manager. Refresh tokens are encrypted AES-256-GCM at rest.
  3. First insights in 15 minutes. Admaxxer issues GAQL reads against the Google Ads API, normalizes cost_micros / 1e6 to dollars, and pulls campaign + keyword + conversion data every 15 minutes.

Data Admaxxer reads

Data Admaxxer reads from Google Ads
Dimension What Admaxxer does with it
Campaigns Name, type (Search/Shopping/P-Max/Display), status, bidding strategy, daily budget.
Ad groups Ad group name, status, default bid, joined to keyword-level spend.
Keywords & search terms Match type, quality score, spend, impressions — where Google exposes them.
Spend (cost_micros) Normalized cost_micros / 1e6 = USD. Fuels blended MER and channel contribution MMM.
Conversions Conversion action, value, date. Reconciled against pixel revenue in the attribution view.
Asset groups (P-Max) Asset group name, final URL, listing group — for the P-Max drill-down.

Safety and security

Frequently asked

What OAuth scope does Admaxxer request?
Only the adwords scope — which covers read and manage on your Google Ads accounts. We do not request Drive, Gmail, Analytics, or any other Google scope. You can revoke at myaccount.google.com/permissions anytime.
Do you support MCC / manager accounts?
Yes. If you connect via a manager (MCC) account, Admaxxer enumerates the child accounts under management and lets you pick which ones to sync. Agencies typically connect one MCC and cover dozens of clients.
How is cost normalized?
The Google Ads API returns cost_micros — micro-units of the account currency. Admaxxer divides by 1,000,000 on ingest and stores dollars in Tinybird. No rounding drift, no 'off by a million' bugs.
Is Performance Max actually visible?
Yes, within what Google exposes. GAQL does not reveal individual creatives inside a P-Max asset group, but asset group metadata, final URLs, listing groups, and the search-term buckets Google releases are all pulled and drilled in the dashboard.
What happens when my refresh token expires?
Google refresh tokens are long-lived unless you revoke access, change your Google password, or the token goes unused for six months. Admaxxer refreshes access tokens automatically and surfaces re-auth prompts if a refresh token is invalidated.

Connect Google Ads in one OAuth click

7-day free trial on every plan. No credit card required.

Start 7-day free trial Read the docs