Data and research
Google Ads
A Google Ads integration connects Google Ads to Mobius so loops can query Ads accounts, generate Keyword Planner ideas, and update campaign status.
Use Google Ads when a run needs keyword research, campaign monitoring, or a controlled campaign mutation after review.
For the shared Google credential model, see Google integrations.
Capability map
| Capability | Value |
|---|---|
| Provider ID | google_ads |
| Auth kind | oauth2_user |
| Connect flow | Google OAuth user grant plus Mobius Google Ads developer token |
| Actions | Yes |
| Events | No |
| Webhook delivery | No |
| Event samples | No |
| Live status | Yes |
Deployment setup
Google Ads API calls require both a Google OAuth user grant and a Google Ads developer token. The project supplies the OAuth grant by connecting Google Ads in the app. The Mobius deployment supplies the developer token.
Set these server environment variables:
GOOGLE_OAUTH_CLIENT_ID=...
GOOGLE_OAUTH_CLIENT_SECRET=...
GOOGLE_OAUTH_APP_BASE_URL=https://api.example.com
GOOGLE_ADS_DEVELOPER_TOKEN=...
GOOGLE_ADS_API_VERSION=v24The OAuth client must allow the Google Ads scope:
https://www.googleapis.com/auth/adwordsCreate the developer token from the API Center in a Google Ads Manager account. Google Ads developer tokens have access levels, and Google limits which accounts a token can call while it is still in test access.
Connect Google Ads
| Surface | Support |
|---|---|
| App | Open Govern > Integrations, choose Google Ads, and continue through Google OAuth. |
| CLI | The mobius CLI does not connect Google Ads integrations yet. Use the app or API. |
| API | Call POST /v1/projects/{project}/integrations/providers/google_ads/connect. The response is a redirect flow. |
After OAuth, Mobius lists the Google Ads customers directly accessible to the connected account and stores the discovered customer IDs in the integration configuration.
If the account is part of a manager hierarchy, connect with a user that can see the client accounts the run will query or mutate.
Account defaults
Use the Google Ads integration page to set:
| Setting | Use |
|---|---|
| Default customer ID | The Ads customer used when an action omits customer_id. |
| Manager customer ID | Optional login-customer-id for accounts accessed through a Google Ads Manager hierarchy. |
The fields accept hyphenated or bare customer IDs. Mobius stores the normalized ID without spaces or hyphens.
Set Default customer ID for the account most loops should use. Set
Manager customer ID only when Google Ads requires a login-customer-id
header for access through a manager account. Individual action inputs can still
override both fields.
Actions
google_ads.customers.list_accessible
google_ads.search
google_ads.keyword_ideas.generate
google_ads.campaign.status.setUse google_ads.keyword_ideas.generate for keyword research and historical
metrics. Use google_ads.search for GAQL queries. Campaign status changes are
mutating, so add an interaction before changing
live campaigns when a human should approve the update.
Keyword ideas input
google_ads.keyword_ideas.generate needs one seed:
| Seed | Use when |
|---|---|
keywords | You already have one or more seed phrases. |
page_url | You want Google Ads to infer ideas from one landing page. |
site_domain | You want ideas from a whole domain. Do not combine this with keywords or page_url. |
language_id defaults to 1000 for English. keyword_plan_network defaults
to GOOGLE_SEARCH.
Campaign status changes
google_ads.campaign.status.set accepts ENABLED, PAUSED, or REMOVED.
Use validate_only: true when you want Google Ads to check the mutation without
changing the campaign.
Events
Google Ads does not register source events.
Troubleshooting
Google returns developer-token errors
The OAuth account may be valid while the deployment's developer token is
missing, pending approval, or not allowed to call the target account. Check
GOOGLE_ADS_DEVELOPER_TOKEN and the token access level in the Google Ads API
Center.
No accessible customers appear after OAuth
Reconnect with a Google user that has access to the Ads account. If the account is behind a manager account, set Manager customer ID on the integration page.
Actions ask for customer_id
Set Default customer ID after connecting. Leave action-level customer_id
blank for the common account, and provide it only when a loop needs a different
Ads customer.
Next
- Inspect action schemas from actions.
- Store research outputs in tables.
- Gate campaign updates with interactions.