← Back to blog

Safe AI integration with an ad account — 2026 checklist

In short If you decide to connect AI to a Google Ads account — you have a 10-point checklist that separates "safe" from "asking for trouble". 3 fundamental principles: least privilege, separation of duties, audit by default. Below: which OAuth scopes to grant (read-only by default), how to set up RBAC for your team and agency, what to monitor in the audit log, the full 10-point checklist, and a 5-step incident response plan in case a token leaks. This is the finale of the AI safety series — lessons learned from the 5 previous articles.
10-point safe AI integration checklist Every ✓ is a concrete action before connecting an agent 1 Minimum scope (read-only by default) 2 Dedicated service account 3 Short-lived tokens (max 24h) 4 IP allowlist where possible 5 Audit log + anomaly alerts 6 Quarterly access review 7 Incident response plan 8 Sandbox for tests 9 Code review before production 10 Vendor due diligence (SOC2, GDPR) 3 fundamental principles Least privilege Minimum permissions Separation of duties Different agents, different tokens Audit by default Log every action Missing even one of these = open door for an incident

3 fundamental principles

The entire AI ↔ ad account integration rests on 3 principles. Without them, the rest doesn't matter:

1. Least privilege (give the minimum permissions needed)

The agent gets only as much access as it actually needs for its task — and nothing more. Not "full admin access just in case". Read-only by default. Write access only when there is a specific, documented, one-off task and a separate go-ahead from you. If the agent "reports" — it doesn't need permission to edit budgets. Ever.

2. Separation of duties

Different tasks = different agents = different tokens. One "super-agent" with access to Google Ads, GA4, Merchant Center, CRM and email is risk centralization. When it falls over — everything goes. Therefore: the reporting agent separately, the data extraction agent separately, the ChatGPT analysis agent separately (and that last one is best run WITHOUT a live account connection).

3. Audit by default

Every agent action is logged automatically — with identification of "who" (agent), "for whom" (the user whose permissions it uses) and "what" (action). The audit log is not an option you enable when there's a problem. The audit log is the foundation without which you'll never detect a problem before you see the financial impact.

OAuth scopes — granting the minimum

An OAuth scope is simply the "permission range" an app asks for when it logs in. The Google Ads API has one "full" scope (https://www.googleapis.com/auth/adwords) — read + write across the entire account. Grant this scope only when you genuinely need to give the AI write access. In 95% of cases an AI agent only needs to read reports.

Practical approach (at the application + user level):

Agent use caseWhat to grant
Reports / dashboardsRead-only user on the account + adwords scope (read-only app)
CSV data extractionRead-only user on the account
ChatGPT analysis via copy-pasteNo integration. Copy CSV, paste into ChatGPT — zero OAuth
Auto budget optimizationStandard user + extra restrictions (max daily % change)
Creative editingStandard user + sandbox first, then production
Everything + adding usersNO. Admin only for the human in charge

Google Ads role hierarchy:

  • Admin — full access + adding users. Only for you (the owner) or one trusted person
  • Standard — edit campaigns, no right to add other users
  • Read-only — read only
  • Email-only — notifications only (no panel)

For an AI agent: Read-only in 95% of cases. Exception is an agent that actually executes optimizations — then Standard with additional restrictions (max daily % change, list of allowed action types, daily report to you).

RBAC for team and agency

RBAC (Role-Based Access Control) is simply "who has what access to the account". In Google Ads that's user management. A pattern that works:

RoleGoogle Ads accessNotes
Business owner (you)AdminOne Admin per account, ideally with a hardware key (e.g. YubiKey — a physical USB stick used for login) on the Google account
Agency / freelancer running the accountStandardCampaign edits, no admin
Agency junior / analystRead-onlyCan learn, can't break things
Internal analystRead-onlyCSV export → analysis
AI agent (reporting)Read-only (separate account / token)NOT on your personal account
AI agent (optimization)Standard + restrictionsOnly after a full audit

RBAC red flags I still see too often:

  • One shared admin account for the entire agency — when 1 person leaves, you must disconnect EVERYONE and rebuild access
  • AI agent on your personal admin account — when the agent (or its vendor) falls over, you fall over with it
  • "Forever" tokens — every integration should have a timeout, even if it means re-authorising every week
  • Service-account email as a personal Gmail — a service account (a separate Google account used only for integrations, not for daily work) should sit on your business domain so you can reclaim it if someone leaves
  • No rotation — a quarterly review (who still needs access?) is the minimum, not the maximum

Audit log — what to monitor

Google Ads has a built-in Change History (Tools & Settings → Account → Change History). Everything that happens on the account is logged there. The question is not "do I have a log" — it's "is anyone looking at it".

Practice that works:

  1. Monthly export of Change History to Google Sheets (Apps Script or manually) — you keep history even if Google ever truncates it
  2. Alerts on unusual changes: budget spike > 20% in 24h, mass campaign pauses, new user added, new OAuth token issued
  3. Weekly review — 10 minutes on Friday, scan the week's changes. Do I see anything not from me or the agency?
  4. Hourly anomalies — changes at 3 AM on a Polish account are suspicious by default

What specifically to monitor:

  • Budget changes (> 20% in 24h = alarm)
  • Conversion changes (adding / removing goals — critical)
  • User changes (new user = alarm, verify the email)
  • API access changes — Google Ads Change History logs campaign / budget / conversion / user changes. New OAuth token issuance is not logged there — check it at myaccount.google.com → Security → Activity
  • Mass pause / enable of campaigns (bot pattern)

Without an audit log, you won't detect a leak until you see the financial impact — which is already too late.

10-point pre-integration checklist

Before you connect an AI agent to a Google Ads account (or anything valuable), go through 10 points. Every ✓ is a concrete action, not philosophy:

  • Minimum scope (read-only by default). If the vendor asks for write — ask "exactly why?". Without a concrete answer → NO.
  • Dedicated service account. Not your personal Google account. Set up a separate Google account on your business domain, with its own password and a hardware key (e.g. YubiKey — a physical USB stick used for login), used only for the AI integration.
  • Short-lived tokens (max 24h, auto-rotate). If the vendor says "token forever" — red flag.
  • IP allowlist where possible. The agent runs from specific IPs — list them in Google Cloud Console.
  • Audit log enabled + monitoring. Weekly review minimum.
  • Quarterly access review. Each quarter: who still needs access? Anything to remove?
  • Incident response plan (see section below). Written before the problem, not during.
  • Sandbox environment for tests. Test the agent on a separate Google Ads account (test account) before releasing to production.
  • Code review of the integration (if custom-built). An independent pair of eyes on code that touches your money.
  • Vendor due diligence. Ask for: SOC2 Type II certification and GDPR compliance (these are standard security credentials you should require from any serious vendor), server location, incident history, breach response plan.

If even 2 points are unmet or the vendor dodges specifics — DON'T connect. This is not pessimism, it's the procedure you routinely expect from banks and insurers.

From my work with accounts The most frequent sins I see at clients: (a) one admin for the whole agency + one shared login, (b) "forever" tokens in old integrations no one uses anymore, (c) no weekly review of Change History — the log exists, but no one looks. Each of these sins is on average easy to fix in 30 minutes. The hard part is noticing them at all.

Incident response — what to do when it leaks

It will leak someday. Maybe not your token, maybe a vendor on your side, maybe an agency. The assumption "this won't happen to me" is the most common reason a first response takes 4 hours of mistakes rather than 5 minutes of action. A plan worth having printed:

Step 1 (first 5 minutes) — Revoke the OAuth token

OAuth tokens for external apps (AI agents, SaaS tools) are managed at the Google Account level, not inside the Google Ads panel. Go to myaccount.google.com → Security → Third-party apps with account access → find the suspect app → Remove access. Revoke any tokens you're unsure about — better too many than too few (you can re-authorize later).

Additionally in the Google Ads panel (Tools & Settings → Account Access) remove any service accounts / users added as part of the integration — that's a separate access mechanism from OAuth tokens.

Step 2 (15 minutes) — Secure the Google account

Change the password on the main Google account + enable a hardware key (e.g. YubiKey — a physical USB stick used for login) if you don't already have one. Also check two-step verification (2FA) — do you have backup methods that aren't the same phone as the primary one?

Step 3 (30 minutes) — Review Change History

Google Ads → Tools & Settings → Account → Change History → last 7 days. Are there unusual changes? Check especially: budgets, conversions, users, campaigns active / paused.

Step 4 (1 hour) — Roll back changes, if any

If you spotted unintended changes — undo them manually. Google Ads Change History shows "before → after", so you know what to restore. If many changes — export changes + restore from a saved copy of the campaign (if you have one).

Step 5 (24 hours) — Notifications and lessons learned

If it's a client account (agency → client) or your account with client data (e-commerce with conversion data) — notify the client. If the leak was on the vendor's side — notify the vendor and demand a post-incident report. Write down lessons learned: how it happened, how long it took to detect, what I'm changing so it doesn't repeat.

Keep this plan in a visible place (Notion / team document / printed). Searching for a procedure during a panic is worse than not having one.

Summary Safe AI integration with an ad account is not philosophy — it's a 10-point checklist + 3 fundamental principles + 5-step incident response. Least privilege, separation of duties, audit by default. Read-only scope by default. Short-lived tokens. Quarterly review. A leak-response plan written before the leak. If even 2 checklist points fail — pass on the integration or demand fixes. The industry doesn't have standards yet — you must have your own.
I'll review your integrations' security I'll go through current AI connections to your Google Ads account — what scopes, what tokens, what audit log, what red flags from the 10-point checklist. You'll get a concrete list: what to change immediately (priority 1), what within a month (priority 2), what during the next review. Write to jakub.pytlik@jp-ads.pl or through the contact form.
Series: AI safety in advertising 2026
  1. Manifesto — where AI helps, where it hurts the account
  2. API keys, OAuth — what not to paste into ChatGPT
  3. AI Max — what Google doesn't say
  4. MCP and AI agents — who reads your ad account
  5. Safe AI integration with an ad account (you are here — series finale)

About the sources: Article based on Cowork — AI Agent Permissions 2026, Aicuflow — Enterprise AI SSO/RBAC/Audit, Stacklok — Best MCP platforms 2026, RootCX — AI Agent Governance, WitnessAI — Agent Access Control, Arcade.dev — Secure AI Agent Connections + observations from JP Ads client accounts. Numbers from my practice are labelled "from my experience".

Related articles
← Blog Security audit

Quick question