How to Revoke an AI Assistant's Access to Your Ad Accounts
VigilDog Team · October 20, 2026 · 6 min read
You connected Claude or ChatGPT to your ad accounts, the trial ended, or the freelancer moved on. Now you want that access gone for good. The trap is that clicking "disconnect" in the chat app does not actually cut off the connection, the account can often be re-authorized on the next request because the grant still lives at the platform. Here is how to revoke AI access to ad accounts properly, at every layer that matters.
What "revoking access" actually means
An AI assistant reaching your ad accounts touches three distinct things, and each has its own off switch. First, the connector or MCP server configured inside Claude or ChatGPT. Second, the OAuth grant, the refresh token the platform issued that lets the tool mint fresh access tokens without asking you again. Third, the account-level user or app permission that says this identity is allowed on this ad account at all.
Removing only the connector is the mistake almost everyone makes. The refresh token keeps working, and re-adding the connector (or another tool using the same OAuth client) re-authenticates instantly. Real revocation means killing the grant and, for anything sensitive, removing the account-level access so nothing can re-authorize. Learn the flow once and it applies to any assistant, not just the VigilDog Ads MCP.
Step 1: Disconnect the connector in Claude or ChatGPT
Start where it is visible. In Claude, open Settings and remove the connector or custom MCP server under your connected tools. In ChatGPT, remove the connector or GPT that holds the ad-account integration. This stops the assistant from initiating new calls from that client.
Do not stop here. Disconnecting the client does nothing to the token the platform already handed out. If you only manage a single personal account and you fully control the OAuth client, this step plus Step 2 is enough. For shared or client accounts, keep going to Step 3.
Step 2: Revoke the OAuth grant at the platform
This is the step that actually invalidates the token. Each platform exposes a page listing third-party apps with access, revoking there kills the refresh token so no future access token can be issued.
- Google Ads: go to myaccount.google.com/permissions (Third-party apps with account access), find the app, and choose Remove Access. This revokes the OAuth grant for that Google identity.
- Meta (Facebook/Instagram): Business Settings > Business Integrations, or facebook.com/settings?tab=business_tools, then remove the connected app. For programmatic access, remove the System User's token under Business Settings > Users > System Users.
- LinkedIn: check linkedin.com/psettings/permitted-services for permitted third-party services, and in Campaign Manager review the app's authorized access. Revoke the marketing API app's authorization.
- If the tool documents a token endpoint, you can also POST the refresh token to the provider's OAuth revoke endpoint, but the account settings page above achieves the same result without touching code.
Step 3: Remove account-level user access
Revoking the grant stops the current token, but if the assistant authenticated through a user or manager account that still has standing access, it can be re-authorized later. To close that door, remove the identity from the account itself.
In Google Ads, remove the user from Account Access under the manager (MCC) or client account admin. In Meta, remove the person or partner and any System User from Business Settings for that ad account. In LinkedIn Campaign Manager, remove the user from the account's User Permissions. This is the durable fix: with no standing role on the account, no token, old or new, resolves to any permission.
Verify the revocation and rotate what's left
Trust, then check. Trigger a read from the assistant and confirm it now fails with an auth error rather than returning data. On Google Ads, open the account's Change History to confirm no further automated changes appear after your revocation timestamp.
Finally, rotate any shared secrets the integration used, a developer token, an OAuth client secret, or an API key stored in the tool's vault. Revoking a grant does not rotate the client credentials behind it, and a leaked client secret is worth cleaning up while you are already in the settings. If you built the connection following our guide to running Google Ads from Claude, the same three layers map directly onto its OAuth setup.
A cleaner model than raw API keys
Most of this pain comes from long-lived tokens with broad, silent write access. VigilDog's Ads MCP is built the opposite way: every change runs as an approval-gated dry-run first, so the assistant proposes and you confirm before anything touches a live campaign, and access is scoped and revocable from one dashboard rather than scattered across three platforms. It is the difference between hoping an assistant behaves and being the one who presses go.
