Overview
This source syncs campaign, ad group, ad, keyword, and performance report data from the Google Ads API (v23). Authentication uses user OAuth (not service accounts) — the connector requires arefresh_token alongside a developer_token.
Incremental state is handled inside the connector; stream-level INCREMENTAL selection is not available in the UI, but bookmarks still resume progress across syncs.
Authentication
This connector uses two kinds of credentials:- Application credential (
developer_token) — identifies your app to the Google Ads API. Issued per manager account via API Center. This is not an OAuth token. - User OAuth (
refresh_token,oauth_client_id,oauth_client_secret) — proves the user has consented to read their Ads data. The required OAuth scope ishttps://www.googleapis.com/auth/adwords.
Manual setup vs Mage OAuth Authorize
| Method | What to set |
|---|---|
| Mage OAuth Authorize (recommended) | Use the OAuth Authorize button on the source block. Mage injects refresh_token automatically. You only need developer_token and login_customer_ids. You may omit oauth_client_id and oauth_client_secret. |
| Manual | Create an OAuth 2.0 client in Google Cloud (Web or Desktop app type), obtain a refresh_token for the Ads scope, and fill in all three OAuth fields. |
Configuration
| Key | Required | Default | Description |
|---|---|---|---|
developer_token | ✅ | — | Google Ads API application token from API Center. Not a user OAuth token. |
oauth_client_id | Conditional | — | Google Cloud OAuth client ID. Required for manual OAuth setup; optional when using Mage OAuth Authorize. |
oauth_client_secret | Conditional | — | Google Cloud OAuth client secret. Same conditions as oauth_client_id. |
refresh_token | ✅ | — | Long-lived user refresh token for the https://www.googleapis.com/auth/adwords scope. Injected automatically by Mage OAuth Authorize. |
login_customer_ids | ✅ | — | List of { customerId, loginCustomerId } pairs. customerId is the account to read; loginCustomerId is the manager (MCC) account used to access it, or null for direct access. |
start_date | ✅ | — | Fetch data newer than this date. Format: ISO 8601 (YYYY-MM-DDTHH:MM:SSZ). |
end_date | now | Upper bound for report syncs. | |
request_timeout | 900 | HTTP timeout in seconds for API calls. | |
conversion_window | 30 | Conversion attribution window in days. Allowed: 1–30, 60, 90. | |
query_limit | 1000000 | Max rows per query for core streams. |
Sample configs
Using Mage OAuth Authorize (recommended — no OAuth client credentials needed):How to get login_customer_ids
customerId is the account whose data you want to sync. loginCustomerId is the manager (MCC) account you use to access it — leave it null when there is no manager hop.
- Sign in to Google Ads.
- Open the account switcher in the top bar.
- Copy the numeric ID for each account (strip dashes:
123-456-7890→'1234567890').
How to get a developer_token
A developer token belongs to a manager (MCC) account. Client-only accounts cannot open API Center.
- Sign in to a manager account.
- Open API Center (Tools & Settings → Setup → API Center).
- Complete the API sign-up. Your token may start as Test tier; request Basic or Standard access when you are ready for production volume.
- Set the token as
developer_tokenin your config.
Related links
- Google Ads API — Get Started
- OAuth with Google Ads API
- Developer token access levels
- Manager accounts overview