Skip to main content

Overview

Connecting Google Ads lets the dashboard:
  • Create, update, pause, resume, and remove App campaigns (UAC) and ad groups.
  • Upload creative assets (image, YouTube video, text) into the connected customer.
  • Metrics sync for this platform is not available yet.
  • Run native creative experiments by rotating multiple AssetGroups inside one App Campaign.
The integration uses the Google Ads API v17 with OAuth 2.0 authentication.

Prerequisites

Before connecting, make sure you have:
  1. A Google Ads account in good standing (test or production).
  2. A developer token from a Google Ads manager account, configured by your administrator. Self-serve provisioning is not currently available.
  3. (Optional) A manager (MCC) account if you operate multiple client accounts. The MCC id is forwarded as the login-customer-id header so requests target the correct child customer.

OAuth scopes

The connection requests the following scope:
This single scope grants read and write access to all accessible customers under the authenticated Google account.

Connect

  1. Open the Paid UA → Integrations page in the dashboard.
  2. Click Connect on the Google Ads tile.
  3. Sign in with the Google account that has access to your Ads accounts.
  4. Approve the requested scope.
  5. After redirect, choose the customer id (and manager id, if applicable) you want this integration to operate against.
The dashboard stores the OAuth refresh token, the developer token reference, and your customer / manager ids. Access tokens are rotated automatically before expiry.

What happens behind the scenes

Every write request carries an Idempotency-Key HTTP header so retries do not produce duplicate resources, even if the platform connection drops mid-request.

Rate limiting

Requests are rate limited. If the platform reports RESOURCE_EXHAUSTED or HTTP 429, the request is automatically retried with exponential backoff.

Experiments (UAC AssetGroups)

For UAC campaigns, an experiment runs inside a single App Campaign as Asset Groups, and Google’s optimisation engine handles traffic rotation. The dashboard creates the experiment’s first Asset Group; it does not yet create the other variants’ Asset Groups, and it does not yet show per-variant results for these experiments. Compare the variants in Google Ads itself until it does.

Disconnect

Click Disconnect on the integration tile. The OAuth refresh token is removed from the dashboard. To fully revoke access, also remove the third-party app authorisation from your Google account. While the account is disconnected, AppDNA can’t pause, resume or change its campaigns, and they keep running and spending on Google Ads. Pausing one from its campaign page asks you to reconnect. If you can’t reconnect, Stop tracking in AppDNA on that page takes the campaign out of the Daily Budget Cap total and the guardrails. It doesn’t pause or delete anything on Google Ads; pause it there to stop the spend. Once the account is connected again, Track again on that page brings the campaign back as active, so it counts in the Daily Budget Cap total at once; if it’s paused on Google Ads, pause it in AppDNA afterwards. Until then, AppDNA refuses every other change to it.

Troubleshooting

  • “Google Ads developer token not configured” — the developer token is missing from the platform configuration. Ask your administrator to set it.
  • “Google Ads listAccessibleCustomers returned 401” — the OAuth token has been revoked or has expired without a valid refresh token. Re-connect the integration.
  • “RESOURCE_EXHAUSTED” — your customer’s per-minute API quota was breached. The dashboard backs off automatically; if the error persists, lower campaign-mutation frequency.
  • No customers listed after connect — the signed-in Google account does not yet have access to any Google Ads customers. Add the account to a customer (or manager) in Google Ads, then reconnect.