Brand Search US daily budget
$40.00to$48.00+20.0%
- Account is not protected
- +20.0% is inside the 25% change cap
- Google
validate_onlyaccepted it
The open control plane for paid media
Every change is previewed, checked against your caps and logged before it runs.
How it works
Brand Search is at 4.1× ROAS and capped by budget. Raise it from $40 to $48 a day.
I’ll ask adport for a preview first.
{
"account_id": "8204417795",
"campaign_id": "21490387612",
"daily_budget_micros": 48000000
}$40.00to$48.00+20.0%
validate_only accepted it{"ts":"2026-10-01T14:02:09.418Z","event":"validated","provider":"google","tool":"google_set_budget","accountId":"8204417795","pendingId":"7c41e9b2-5d0a-4f6e-9b13-2a8e60c4d1f7","summary":"Change \"Brand Search US\" daily budget 40000000 → 48000000 micros"}A simulation of adport’s default policy. The rejections are the messages the policy engine returns.
See it in action
What you can ask
Anything that would change an account comes back as a preview, with every adjustment the policy made spelled out.
“Set up a search campaign for the autumn sale, $60 a day.”
New campaigns are created paused, even when the agent asks for them to go live. Adport reports every coercion like this one instead of applying it silently.
google_create_campaignpreviewChanged by policy paused_creation
“Pause Retargeting EU on Meta.”
Status changes get the same preview as budgets. Meta checks the request with validate_only before you approve, and the change is logged once it runs.
meta_set_campaign_statuspreviewMeta validate_only accepted it. Nothing changed yet.
“Double the Spark test budget on TikTok.”
Budget caps are checked before a preview is issued. A change over the cap is refused with the reason, and nothing reaches TikTok.
tiktok_set_budgetrejectedOver the 25% cap. No token issued, nothing sent to TikTok.
“Add these three keywords to Generic Tents.”
Bulk edits come back as one preview that lists every keyword and match type. Applying runs exactly that list, nothing more.
google_add_keywordspreviewApply runs exactly these 3 keywords.
Safety
A prompt is not a permission system. These checks sit in the code path every write takes, on every platform, from any MCP client or the CLI.
# Defaults shown. Change them, and the gate changes.
require_validation: true
paused_creation: true
max_budget_delta_pct: 25
max_daily_budget_micros: 500000000 # $500/day
protected_accounts:
- "1150938260" # the client who said no
pending_ttl_minutes: 15
The first call returns a preview and a short-lived token. Nothing changes.
require_validationApplying needs that token and identical arguments, within fifteen minutes.
pending_ttl_minutesPercentage and daily caps are checked before a preview is issued.
max_budget_delta_pctListed accounts are refused, and checked again right before apply.
protected_accountsNew campaigns start paused, and every coercion is reported.
paused_creationEvery preview, rejection and applied change is logged, ready to export.
audit/*.jsonlGet started
Add Adport to the AI you already use. Every write still goes through the same gate.
Hosted MCP with OAuth sign-in. Connect your ad accounts in Adport, then add one URL to your assistant.
Open Plugins, choose +, then Add custom MCP server. Name it Adport, paste this server URL, and choose OAuth. Open ChatGPT Plugins ↗
https://app.adport.dev/mcpCreate the plugin, sign in to Adport, and install it. In a new chat, type @ and select Adport before asking your first question.
Run this command in your terminal. It adds Adport to the MCP configuration shared by your local Codex clients.
codex mcp add adport --url https://app.adport.dev/mcpComplete the browser sign-in when prompted. If sign-in has not started, run the command below.
codex mcp login adportOpen Customize → Connectors, choose + Add, then Add custom connector. Name it Adport and paste this server URL. Open Claude Connectors ↗
https://app.adport.dev/mcpKeep sign-in enabled and finish connecting to Adport. In your conversation, open + → Connectors and enable Adport.
Run this command in your terminal. User scope makes Adport available across your local Claude Code projects.
claude mcp add --transport http --scope user adport https://app.adport.dev/mcpOpen Claude Code and run /mcp. Select Adport and follow the browser sign-in.
Open the install link and confirm Add in Cursor. Adport uses browser sign-in, so no API key is needed. Add to Cursor ↗
{
"mcpServers": {
"adport": {
"url": "https://app.adport.dev/mcp"
}
}
}Complete the sign-in from Cursor’s MCP settings, then start a conversation with Agent.
Add a remote MCP server in your assistant. Name it Adport, paste this URL, and choose Streamable HTTP with OAuth.
https://app.adport.dev/mcpFollow your assistant’s sign-in prompt. If it does not support OAuth, an admin can create an API key under Advanced on the AI assistants page.
Adport Cloud is currently invite-only. Join the waitlist
Adport Cloud pricing
Cloud is currently invite-only. Unlimited projects, free read-only viewers, and fixed pricing with no percentage of ad spend.
For owners and small teams
Operate your ads with a preview before every change.
Billed monthly
Early access by invitation
Included with Pro
11 ad platform integrations
For growing teams
Keep brands, departments, and projects organized in one place.
Billed monthly
Early access by invitation
Included with Growth
For larger teams
Coordinate more accounts and people across your organization.
Billed monthly
Early access by invitation
Included with Business
11 ad platform integrations
3 active ad accounts · 1 member · 30-day audit history. Unlimited projects and free read-only viewers.
11 ad platform integrations
Prices are per organization. Active accounts and editing members are shared across its projects. Viewers can see results, but cannot change ads.
Enterprise
More than 60 active accounts or 15 editing members? Let’s put together a plan for your organization.
Prefer to host it yourself? The open-source CLI and local MCP server remain free. Explore the source.
Resources
Practical guides to AI workflows, Google Ads, and client operations.
A practical setup path from a connected Google account to your first useful AI report.
Read guideA repeatable audit order that starts with measurement and ends with evidence-backed actions.
Read guideAn operating model for agencies that need clear client boundaries without separate subscriptions for every project.
Read guideConnect your ad stack
Pick your platform for setup steps, a useful first report, and the details that matter to your campaigns.
Read Facebook and Instagram campaign results in Claude, with the right account and budget level.
Read guideFrom Snap account authorization to your first campaign and ad-squad report in Claude Code.
Read guideConnect the right TikTok advertiser and turn campaign reports into a useful review in Claude.
Read guideConnect through ChatGPT
Install the MCP plugin, choose a client project, and ask campaign questions grounded in your account data.
A current ChatGPT setup guide, with prompts that keep account scope and evidence visible.
Read guideUse Meta account data in ChatGPT without confusing placements, attribution, or campaign and ad-set budgets.
Read guideBring Snap account and campaign results into ChatGPT, with ad-squad context and clear reporting limits.
Read guideEarly access
Adport Cloud is in early access: hosted MCP with sign-in, team workspaces and the same preview on every change. Join the Cloud waitlist and we’ll write once, when your spot opens.