Connect Google Ads with a developer token + refresh token
What this is: a 7-minute walkthrough for the four credentials Google Ads requires — the developer token (from Google Ads), an OAuth client ID + secret (from Google Cloud), a refresh token (from OAuth Playground), and your 10-digit Customer ID. Paste them into Admaxxer and we'll sync campaigns, ad groups, ads, keywords, spend, and conversions every 15 minutes.
Why a refresh token (never expires)
Never expires. Unlike Meta's 60-day user tokens, a Google Ads refresh token is good forever — until the user revokes it or the OAuth client is deleted.
Server-to-server. Admaxxer trades the refresh token for a fresh access token (1-hour TTL) on each API call. You don't need to log in again.
Free basic access. Google's basic access developer token is free and lets you call your own ad accounts. No spend minimums, no review wait, just a one-page form.
Step 1 — Apply for a developer token (~2 min)
Open ads.google.com and sign in. If you don't have a Google Ads account, create one (free, no spend required).
Click the wrench icon > Setup > API Center (only visible when you're signed in as the manager / MCC account — if you don't see it, click your profile icon and switch to a manager account).
Click Apply for token, fill the one-page form (use case: "Internal tool to sync ad data into Admaxxer dashboards"), and submit. Google returns a developer token instantly with basic access (1k operations/day to your own accounts — plenty for Admaxxer).
Copy the developer token. It looks like a 22-character random string. Treat it like a password.
Step 2 — Create a Google Cloud OAuth client (~2 min)
Open console.cloud.google.com. Create a new project named Admaxxer Google Ads (or pick an existing project — the OAuth client is bound to a project).
In the left nav: APIs & Services > Library. Search for Google Ads API and click Enable.
Go to APIs & Services > OAuth consent screen. Pick External, set the app name to Admaxxer, your email as the support contact, and click through. You don't need to publish the app; Testing mode is fine since only you will use it.
Add yourself as a test user on the OAuth consent screen.
Go to APIs & Services > Credentials > Create credentials > OAuth client ID > Web application. Set the redirect URI to https://developers.google.com/oauthplayground (we'll use OAuth Playground to mint the refresh token in Step 3).
Copy the Client ID and Client Secret.
Step 3 — Mint a refresh token via OAuth Playground (~1 min)
Click the gear icon (top right) > tick Use your own OAuth credentials > paste the Client ID and Client Secret from Step 2.
In the left panel, scroll to Google Ads API v17 (or paste this scope manually: https://www.googleapis.com/auth/adwords). Click Authorize APIs.
Approve the consent screen with the same Google account that owns the Google Ads accounts.
Back on OAuth Playground, click Exchange authorization code for tokens. The right panel now shows an Access token (1h) and a Refresh token (forever).
Copy the Refresh token — this is the one you paste into Admaxxer.
Step 4 — Find your Customer ID (~30 sec)
Back in ads.google.com, look at the top right — you'll see a 10-digit number formatted like 123-456-7890. That's your Customer ID.
If you have a manager (MCC) account managing client accounts, you also need the Login Customer ID — the manager's 10-digit ID. Admaxxer asks for both.
Strip the dashes when pasting (Admaxxer accepts either format, but the API expects digits only).
Step 5 — Required scopes
Scope
Why we ask
https://www.googleapis.com/auth/adwords
Read campaigns, ad groups, ads, keywords, insights (cost_micros, impressions, clicks, conversions). Required for everything Admaxxer does on Google Ads.
That's the only scope. Admaxxer never requests Gmail, Drive, Calendar, or any other Google API access.
Step 6 — Paste credentials into Admaxxer (~30 sec)
Paste your Developer Token, Client ID, Client Secret, Refresh Token, and Customer ID (plus Login Customer ID if you used an MCC).
Click Connect. Admaxxer trades the refresh token for an access token, validates it against the Google Ads API, and shows you a green "Connected" badge plus your last-30-days spend within seconds.
Cost — basic access is free
Google's basic access developer token is free and gives you 15,000 operations/day to your own accounts — far more than Admaxxer's 15-minute sync needs. You only need to upgrade to standard access (free, but reviewed) if you're building a multi-tenant SaaS that calls hundreds of accounts a day. For most Admaxxer customers, basic access is permanent and free.
Q: How long does the developer-token application take?
Basic access is granted instantly — the form is auto-approved. Standard access (only needed if you're calling more than 15k ops/day across many client accounts) takes 1–3 business days for review.
Q: My refresh token doesn't work. What's wrong?
The most common cause is OAuth client mismatch — the refresh token is bound to the Client ID + Secret pair that minted it. If you regenerated the OAuth client, you need to mint a new refresh token from OAuth Playground. The other common cause is the user revoking access in myaccount.google.com/permissions.
Q: Can I track multiple Google Ads accounts with one set of credentials?
Yes — if they're all under one MCC. Set the Login Customer ID to the MCC's 10-digit ID and create one Admaxxer connection per child account. The same developer token, OAuth client, and refresh token authenticate all of them.