Security
Your assistant neverholds an ad token.
The connected assistant never holds an ad platform token: it talks to the gateway, the gateway talks to the platforms. Everything below is a fact about the shipped gateway, stated once and published in three formats.
- 5
- Sub-processors
- 3
- Outside the EU
- 7
- Stored items
- 2026-08-29
- Last reviewed
Tokens
- At rest
- Ad platform tokens are encrypted at rest with AES-256-GCM and never leave the server.
- Assistant exposure
- The connected assistant never holds an ad platform token: it talks to the gateway, the gateway talks to the platforms.
- Revocation
- Revoking an assistant's access happens in the dashboard and does not require rotating any platform credential.
Authentication
- Protocol
- OAuth 2.1 with PKCE (S256), dynamic client registration (RFC 7591), protected resource metadata (RFC 9728).
- API keys
- No static API keys exist for the MCP surface.
Account scoping
The property most reviews come here to check: connecting a manager account does not expose the accounts under it.
- Model
- Per ad account, not per connection. Only accounts explicitly ticked in the dashboard are reachable.
- Enforcement
- Server side, on every call, including calls routed through run_tool. Nested account identifiers in arguments are checked too.
Safe Writes
- Preview
- Every write returns a description of the change and stops. Applying it requires a second call with confirm set to true.
- Creation
- Campaigns are always created paused. There is no option to create them active.
- Free plan
- The Free plan announces no write tool and refuses any write call.
Data
Advertising data is never stored. What is stored is the plumbing that makes an account reachable, and it is listed in full.
- Advertising data
- Never stored: answers stream from the platform APIs to the assistant.
| Name | Kind | Why | Kept |
|---|---|---|---|
| __session, __client_uat | cookie | Keeps you signed in, so the dashboard does not ask again on every page. | Until you sign out. |
| gma_org | cookie | Remembers which organisation you are looking at, when you belong to more than one. | One year. |
| oauth state | cookie | Ties an advertising platform's authorisation response to the request you started. Without it, the flow cannot be verified. | The duration of the connection flow. |
| sidebar:state | cookie | Remembers whether you collapsed the sidebar. | One year. |
| theme | local storage | Remembers whether you chose light or dark. | Until you clear your browser data. |
| gma_consent | local storage | Remembers your answer about analytics, so we do not ask again. | Six months, then we ask again. |
| Vercel Web Analytics | local storage | Counts page views and where visitors come from. No cookie, no cross-site identifier, no profile. | Aggregated. Nothing identifies a visitor. |
| What | How long |
|---|---|
| Your account and organisation | For as long as the account exists. Deleting the account removes them, and an organisation left with nobody in it is removed with it. |
| Advertising access tokens | Until you disconnect the platform, or the platform revokes them. Disconnecting deletes the row rather than marking it revoked. |
| Advertising data itself | Never stored. Campaigns, spend and performance are read from the platform on demand and passed straight to your assistant. |
| Usage counters | Thirteen months, so a year-on-year comparison is possible. They hold a count, not a query. |
| Invitations | Kept as a record of who was invited and when. The link itself is stored only as a hash and is never recoverable. |
Sub-processors
5 services touch personal data. 3 of them process it outside the European Union, and each one says where.
| Service | Role | Data | Region |
|---|---|---|---|
| Vercel | Hosts the website and the dashboard. | Request metadata, and the session of a signed-in user. | Edge in Paris, functions in Virginia (iad1).outside EU |
| Neon | PostgreSQL database. | Account, organisation, memberships, invitations, encrypted advertising tokens, usage counters. | AWS us-east-1, Virginia.outside EU |
| Cloudflare | Runs the MCP gateway and serves DNS. | Request metadata and the bearer token presented by an MCP client. | Nearest edge location. Requests from Europe are served in Europe. |
| Clerk | Sign-in, sign-up, password reset and session management. | Email address, name, password hash, session and device metadata. | United States.outside EU |
| Resend | Sends transactional email: invitations and the welcome message. | Recipient email address, and the content of the message. | AWS eu-west-1, Ireland. |
What an agent is never allowed to do
These are not exposed as agent capabilities at all: the boundary is architectural, not advisory.
Human only
- Granting OAuth consent on an advertising platform.
- Choosing which ad accounts to expose.
The four guarantees
The same four the product is sold on, stated here where they can be quoted.
Your assistant never holds an ad token
It talks to the gateway; the gateway talks to Google, Meta, TikTok and Pinterest. Ad platform credentials are encrypted at rest with AES-256-GCM and never leave the server, so a leaked chat transcript is not a leaked ad account.
Exposure is per account, not per connection
A Google MCC or a Meta Business Manager can sit over dozens of client accounts. Connecting one does not expose them all. The gateway answers only for the account IDs you explicitly ticked, and returns nothing for the rest.
Safe Writes: every change previews first
Every write tool returns a description of the change and stops. Applying it takes a second call with confirm set to true. An assistant that picked the wrong campaign shows you the wrong campaign instead of pausing it. Campaigns are always created paused.
OAuth 2.1, not an API key in a config file
The client registers itself dynamically, PKCE is required, and the code is bound to the redirect URI it was issued for. Revoking an assistant's access does not mean rotating a secret across your team.
Found something this page does not answer, or something it answers wrongly? Write to us. The privacy policy carries the legal detail behind these facts.