Every connection you create in AdKit, whether it's an AI agent, a CLI session, or a plain API key, has an access level. The level decides what that connection can do with your ad accounts: pull reports, prepare drafts, or publish changes live. New connections get full access by default, and you can lower any of them whenever you want.
The most common reason to change it: give a reporting agent Read-only, so it can pull combined reports with no way to edit, pause, or delete a live ad.
| Level | What the connection can do |
|---|---|
| Disabled | Nothing, not even reading. Use it to switch a key off without deleting it. |
| Read-only | View your campaigns and pull reports. Cannot change anything in your ad accounts. |
| Draft only | Create and edit campaigns as drafts. Drafts can only be published from the dashboard, by you. |
| Draft + Publish | Create and edit campaigns as drafts, and publish them. This is the default for new connections. |
Every level except Disabled can read your data. And every change an agent makes is saved as a draft first, so the only difference between Draft only and Draft + Publish is who can push a draft live: you from the dashboard, or the agent itself.
You don't have to recreate a key to change what it can do.
The new level applies on the connection's next request.
A read-only connection pulls reports and reads campaigns normally. The moment it tries to make a change, AdKit blocks the request and tells the agent that its connection doesn't have permission, with a link back to Devices & Keys. Nothing reaches your ad accounts. To allow the change, raise the level on that page and have the agent try again.
When you connect an agent through the in-app flow ("Connect an agent" or the OAuth login), it starts at Draft + Publish. To restrict it, open Devices & Keys afterward and lower its level. Picking the level during the connect flow is coming later.
New to connecting agents? Start with the getting started guide.
Need a hand? Reach out and we'll help.