Analytics and ads

Google Ads

Connect one Google Ads account to a workspace so your agent can read reports and create paused campaigns: the tools, what each costs, the daily budget cap, and what each error means.

What does connecting Google Ads do?

Your agent can read the account's reports and campaign structure, create Search campaigns, turn campaigns, ad groups and ads on and off, and change a campaign's daily budget. Google bills ad spend to your Google Ads account.

What keeps an ad from spending by accident?

A new campaign is always paused. No tool can create one that is already on, and none can delete one.

Turning something on and raising a budget need a daily budget cap, which you set on the Connections screen. With no cap, both are refused. Only a person signed in to the dashboard can set it. Write API keys and agents you approved can turn ads on within it.

The cap limits the total daily budget of the campaigns that are on. It is not a limit on what Google spends on a given day. One change can raise a budget to at most twice what it was. Turning things off skips all of these checks.

How do I connect a Google Ads account?

  1. Set up a passkey first

    Google asks for a passkey when you connect, and a new one can take up to 7 days to work. Set it up at g.co/passkeys.

  2. Open Connections in a workspace

    Pick the workspace first. The account belongs to that workspace.

  3. Press Connect Google Ads

    It is in the Analytics and ads group, below your channels. Then allow access on Google's screen.

  4. Pick the account

    If only one account can run ads, it connects right away. Manager accounts are not listed, but the accounts under them are.

  5. Set a daily budget cap

    Enter it on the card, in the account's currency. Until you do, your agent can read and create paused campaigns but cannot turn anything on.

Which tools does my agent get?

Google limits how many operations uplika can make in a day, shared across everyone on uplika. The last column is what one call uses. An agent connected before this existed has to approve uplika again to use the write tools.

ToolWhat it doesPermissionOperations
get_ad_accountThe connected account, its currency, your cap, and the operations left todayposts:read0
get_ad_insightsImpressions, clicks, cost, conversions and more, by account, campaign, ad group, ad or keyword, for a periodposts:read1
list_adsCampaigns, ad groups and ads with status and daily budget. It can show only what uplika createdposts:read2
create_ad_campaignOne Search campaign, always paused. validateOnly checks it without creating itads:write4 + keywords + locations
set_ad_statusTurn a campaign, ad group or ad on or offads:write1 to turn off, 2 to turn on
update_ad_budgetChange a campaign's daily budgetads:write2

What do the errors mean?

CodeHTTPWhat it means and what to do
integration_not_connected404This workspace has no Google Ads connection. Connect one on the Connections screen.
integration_reconnect_required409Google ended this connection. Reconnect it on the Connections screen.
ad_budget_cap_unset409No daily budget cap is set. Set one on the Connections screen, then try again.
ad_budget_cap_exceeded422This would take the campaigns that are on above your cap. The reply has the cap and the total. Raise the cap yourself, or lower the budget.
ad_budget_increase_too_large422A budget can at most double in one change. Raise it in steps.
ad_budget_unreadable422Google gave no daily budget for a campaign in this account, so uplika cannot check your cap. Make this change in Google Ads.
ad_status_superseded409A pause for the same ad arrived while turning it on waited in line, so it stays off. Send it again if you still want it on.
ads_no_access403This Google account can no longer open the Google Ads account. Get access back, or reconnect with another account.
ads_quota_exhausted429This workspace, or uplika as a whole, used its Google Ads operations for today. Try again after the time in retryAfter. uplika's count does not block turning an ad off by its id, and list_ads keeps a small reserve to find the id. Google can still refuse at its own limit. In that case turn the ad off in Google Ads.
ads_access_level_insufficient403Google refused because uplika's API access level does not cover this account yet. Tell us at support@uplika.com.
ads_two_step_required403A manager account above this one requires 2-Step Verification. Turn it on for the Google account, then try again.
ads_upstream_rejected422Google refused the request, often on ad policy or validation. googleErrors in the reply has Google's reason. Change the request instead of sending it again.
ads_upstream_unavailable503Google did not answer in time, or kept asking us to slow down. Check with list_ads whether the change happened before you send it again.

Why did connecting fail?

What you seeWhat to do
You cancelled on Google's screen. Nothing was connected.Start again and allow access on Google's screen.
uplika needs permission to manage your Google Ads campaigns. Leave that box checked.Start again and leave the Google Ads box checked.
This Google account cannot open a Google Ads account that runs ads.Use a Google account that can open a Google Ads account that runs ads. A manager account with nothing under it is not enough.
A manager account above this one requires 2-Step Verification. Turn it on for this Google account, then connect again.Turn on 2-Step Verification for this Google account, then start again.
Google did not give lasting access. Remove uplika in your Google Account and connect again.Open your Google Account permissions, remove uplika, then connect again.
That connection link expired. Start again.A connection link lasts up to an hour. Start again from Connections.
This connection was started from another uplika account, or you are signed out. Sign in and start again from Connections.Finish in the browser where you started, signed in to the same uplika account. Do not use a connection link someone sent you.
Google did not finish the sign-in. Try again.Start again from Connections.

What does uplika store?

To keep the connection: the encrypted tokens, the account's id and name, its currency and time zone, whether it is a test account, the manager account it is reached through, your cap, and your Google account id.

A record of what uplika created or changed: each object's name, status and daily budget, and each change with its before and after values. Metrics are never written to our database.

What happens when I disconnect?

Your ads do not stop. Ads that are on keep running in Google and keep spending, so turn them off first, through your agent or in Google Ads. uplika deletes the stored tokens and asks Google to end its access, unless the same Google account is still connected elsewhere in uplika. The record of what uplika created or changed stays until you delete the workspace or your account.

Frequently asked

Can my agent turn on an ad by itself?

Only within a daily budget cap you set on the Connections screen. With no cap, it can read and create paused campaigns, and nothing more.

Does disconnecting stop my ads?

No. Ads that are on keep running in Google until you turn them off, through your agent or in Google Ads.

Can I connect more than one account?

One per workspace. To work in another account, connect it in another workspace.