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

CapabilityValue
Provider IDgoogle_ads
Auth kindoauth2_user
Connect flowGoogle OAuth user grant plus Mobius Google Ads developer token
ActionsYes
EventsNo
Webhook deliveryNo
Event samplesNo
Live statusYes

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=v24

The OAuth client must allow the Google Ads scope:

https://www.googleapis.com/auth/adwords

Create 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

SurfaceSupport
AppOpen Govern > Integrations, choose Google Ads, and continue through Google OAuth.
CLIThe mobius CLI does not connect Google Ads integrations yet. Use the app or API.
APICall 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:

SettingUse
Default customer IDThe Ads customer used when an action omits customer_id.
Manager customer IDOptional 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.set

Use 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:

SeedUse when
keywordsYou already have one or more seed phrases.
page_urlYou want Google Ads to infer ideas from one landing page.
site_domainYou 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