What ad agents actually spend on
An agent that runs advertising doesn’t just adjust bids. It launches campaigns on new platforms, books sponsored slots in newsletters, tops up prepaid ad balances, buys audience data, pays creators and renews tools. Each of those is a new commitment of someone’s budget — often a client’s — made at machine speed, many times a week.
Ad platforms enforce their own campaign budgets well. What none of them can tell you is whether the agent should have created that campaign, on that platform, for that audience, at all. That decision sits above any one platform — in the agent’s spend authority.
Where ad spend goes wrong
- The wrong audience. Cheap reach that doesn’t convert: consumer placements for a B2B product, the wrong geography, a lookalike of the wrong list.
- Runaway pacing. A loop that keeps topping up a balance or launching “one more test”, each spend small, the total not.
- The wrong kind of purchase. Contact lists, fake-follower services, “guaranteed placement” offers — things the brand would never approve, and which injected text on a landing page will happily suggest (see prompt injection).
- Unowned commitments. Annual sponsorships and subscriptions booked by an agent whose mandate was a quarter.
An authority for an ad agent
A workable starting point for an agent that buys B2B demand:
{
"purpose": {
"objective": "Acquire qualified enterprise developer leads",
"success_criteria": [
"Leads are platform engineers at enterprise companies",
"Cost per qualified lead under $120"
],
"constraints": [
"No consumer social campaigns",
"Never buy contact lists"
],
"context": "B2B developer-tools company, Q4 pipeline push"
},
"currency": "USD",
"per_transaction_limit_minor": 50000,
"review_threshold_minor": 25000,
"monthly_budget_minor": 500000,
"blocked_merchants": [
"ListBroker"
],
"daily_budget_minor": 50000,
"velocity": {
"max_count": 20,
"window_seconds": 3600
}
}- Per-transaction limit and review threshold — $500 and $250: small tests run on their own; anything bigger gets a person, or gets capped.
- Daily and monthly budget — pacing in the authority itself, independent of any platform’s campaign budget.
- Velocity — 20 authorized spends an hour stops a loop long before the budget notices.
- Categories, once you map them — when your organization maps its ad platforms and publishers to categories, restrict the agent to advertising and sponsorship. The mapping is trusted; a category the agent merely declares can only make things stricter, and an unmapped merchant goes to a person.
- A blocked merchant and a purpose with constraints — the list-broker case is refused outright; “no consumer social campaigns” is the kind of rule only a purpose check can apply.
Cap, don’t stall
Ad spend is usually divisible: a $900 sponsorship package can be bought as a $250 test first. Mark those spends limitable, and a spend above a limit or threshold is capped to the amount the agent may spend on its own instead of waiting for a person:
import { Neltava } from "neltava";
const neltava = new Neltava(); // NELTAVA_AGENT_KEY
const d = await neltava.authorize({
task: "Q4 pipeline: enterprise developer leads",
action: {
merchant: "Platform Weekly",
amount: 900.00,
currency: "USD",
description: "Sponsored slots reaching platform engineers at enterprise companies",
},
limitable: true,
});
if (d.proceed) {
// pay d.amount — in Enforce, through your payment adapter with d.capability
}{
"decision_id": "dec_7f3c…",
"decision": "LIMIT",
"effective_decision": "LIMIT",
"reason_code": "LIMIT_APPLIED",
"requested_amount_minor": 90000,
"authorized_amount_minor": 25000,
"currency": "USD",
"mode": "ENFORCE",
"explanation": "Limited: 900.00 USD requested; 250.00 USD may be spent autonomously."
}The campaign keeps moving at a safe size; the person sees the capped spend in the record, not in their inbox. Commitments that can’t be divided — an annual sponsorship, a conference booth — go to human review instead.
The audience problem
The failure that costs ad budgets the most is invisible to every numeric control: spending inside the limits, on a real platform, for the wrong audience.
Merchant
Instagram Ads — not blocked
✓Amount
$185, under the $250 threshold
✓Budget
within today's $500
✓Velocity
4 of 20 this hour
✓Purpose
consumer audience vs. enterprise developer leads
✕A $185 consumer campaign for a B2B lead-generation budget.
A purpose check reads the campaign description against the objective — “acquire qualified enterprise developer leads” — and its constraints, and sends the doubtful ones to a person. It never blocks on its own: a campaign it misjudges waits for a reviewer rather than being refused.
Agencies and client budgets
One agent per client budget
Give each client budget its own agent and key, with its own authority and purpose. Budgets, velocity and reviews never mix, and each client’s record stands on its own — every decision keeps the authority version it was decided under.
Evidence you can hand over
For each spend: what the agent asked, why, under which rules, what was decided, who reviewed it and what actually happened. When a client asks why their money went where it did, the answer is a record, not a reconstruction.
Rolling it out
- Connect the agent in Shadow Mode. Campaigns keep running; every spend is decided and recorded.
- After a week, read the report: which spends would have been capped, reviewed or blocked — and whether you agree.
- Tune the thresholds and constraints; replay the recorded week against the new authority before saving it.
- Switch to Enforce, and route top-ups and bookings through a payment adapter that requires each spend’s single-use capability.




