Adspenta

The daily ads work, done. The judgement stays yours.

Ad account management software for agencies. It reads every connected Meta and Google account each day, flags what is drifting, and proposes the fix with the evidence — then executes only what your team approves. Every change is logged and reversible.

Approval-gated Dry-run mode Full audit ledger Row-level tenant isolation

A working demonstration of the Today screen. Six client accounts were read this morning and one is flagged. A proposal to reduce a daily budget from 120.00 to 96.00 is waiting. The Approve and Take back buttons below work: pressing Approve opens the five-minute take-back window, pressing Take back returns the card to a proposal.

Adspenta Today Accounts Ledger Reports Dry run · Google
Portfolio · Thursday 10 September
6 accounts read · 1 needs a decision
09:41
Harbor & Vine
Today 412.80 · pacing 99%
Northwind Dental
Today 340.00 · pacing 118%
Keel Outdoor
Today 268.15 · pacing 97%
Fernbrook Clinic
Today 190.40 · pacing 94%
Atlas Removals
Today 88.60 · pacing 101%
Pale Blue Optics
Today 145.05 · pacing 96%
Proposal Northwind Dental · Meta Blast radius 12%
Reduce daily budget on Winter Prospecting
120.00 96.00 per day

Because pacing is 18% over plan with 11 days left. Holding this budget spends the month out on 24 September.

5:00
09:43:07

The loop

Read, notice, propose, approve, verify. Every day, on every account.

The five steps a good media buyer runs each morning, run every morning on every client account, and written down. The long version is on how it works.

1Read

Every account. Every day.

Each morning Adspenta pulls the last 30 days from every connected Meta and Google account: campaigns, budgets, delivery, spend, cost per result, creative performance.

6 accounts · 41 campaigns · read at 09:12

2Notice

It notices what a good buyer would.

Deterministic detectors compare what is happening to what was planned. Pacing above its band, cost per result drifting, creative fatiguing, a budget that will not spend, a learning phase reset.

Northwind Dental · Winter Prospecting · pacing above band since Tuesday

3Propose

It proposes the fix, with the reason.

A finding becomes a proposal card: the exact change, the numbers before and after, the evidence it was drawn from, and how much of the account it touches. Nothing is hidden behind a score.

Reduce daily budget 120.00 → 96.00 · blast radius 12%

Reduce daily budget

Winter Prospecting · Meta
120.0096.00 per day
Pacing 18% over plan · 11 days left
5:00
Take-back window
Take back
4Approve

Nothing happens without a yes. And you can still say no.

A person approves, or does not. After a yes there is a five-minute window in which one click puts the old value back, before anything is written to the platform.

Approve, or take it back. Five minutes, your call.

5Verify

Verified. Logged. Reversible.

The change is written, then read back from the platform to confirm it landed. The result goes into an append-only ledger: approved, executed, verified, by whom, at what second.

Nobody can edit this. Not even us.

09:43:07

What it catches

Ad spend pacing alerts, creative fatigue detection, and three more checks, run daily.

Five detectors, each written as a rule you can read. Each one shows the same evidence it would put in front of a buyer. This is Google Ads and Meta ads monitoring that names the problem instead of colouring a cell red.

Ad spend pacing over plan

Spend is running ahead of the plan with days still to go, so the budget runs out before the month does. Budget pacing is the check most agencies want running first.

Month plan3,600.00
Spent to date2,478.00
Pacing+18%

Creative fatigue detection

The same people are seeing the same ad too often, and the click-through rate has been falling for long enough that it is not noise.

Frequency, 7 d4.6
CTR trend, 14 d-31%
Days running26

Cost per result getting worse

Cost per result has moved outside its normal range for this account, compared against its own recent history rather than a made-up benchmark.

30-day median18.40
Last 7 days26.10
Results, 7 d41

Budget not spending

The money that was meant to go out did not. Usually a delivery problem, a narrow audience, or a disapproved ad. It costs the client the same as overspending.

Daily budget200.00
Delivered, avg 5 d61.20
Utilisation31%

Learning phase reset

An edit sent an ad set back into learning, so recent numbers cannot be trusted yet and further edits will make it worse.

Reset at08 Sep, 14:02
Events since19 of 50
RecommendationHold

And what it will not do

It does not write your creative, pick your offers, or decide your strategy. It watches the operational surface: budgets, delivery, pacing, structure. The judgement stays where it belongs.

Detectors are rules, not guesses
Every finding shows its evidence
Every action needs a human

Why another tool

Where rule-based automation runs out across forty client accounts.

Three problems an agency ad management platform is supposed to solve, and usually does not.

The problem

What agencies keep hitting

Written down from what buyers say about the tools that exist.

  • Pulling numbers out of dozens of accounts for client reports eats hours every week, and the hours grow with every new client.
  • Bulk changes across accounts are where the expensive mistakes happen. One wrong row in a bulk sheet moves the wrong client's money.
  • Rule-based tools such as Revealbot or Madgicx only fire on conditions you already imagined. The condition you did not think of is the one that costs you the account.

What Adspenta does

The same work, done as proposals

Read everything, propose specifics, execute only what is approved.

  • The weekly client PDF is written from the ledger, so the report is a record of what happened rather than an export you reformat.
  • One change per proposal card, with the account, the old value, the new value and the blast radius on the card. There is no bulk sheet to get wrong.
  • Detectors look at every account against its own history, so a problem gets raised whether or not you wrote a rule for it. You still decide.

PPC automation with approval, rather than automation you hope you configured correctly.


How it decides

Rules you can read. AI that only explains.

The part that touches money is ordinary, testable code. The language model is kept on the other side of that line, where the worst it can do is write a bad sentence.

Deterministic

What the code does

Written as rules, covered by tests, identical every time it runs.

  • Detectors: the thresholds and windows that decide something is drifting.
  • Proposals: the exact change, computed from the numbers, with its evidence attached.
  • Guardrails: blast radius, cooldown between changes, daily cap, per-account live-write flag.
  • Execution: the write to Meta today, the read-back that verifies it, the ledger entry. Google is read only for now.
  • The take-back window and what it restores.

Language model

What the AI does

It reads the same numbers you can see, and writes.

  • Answers questions about an account in plain English, citing the figures it used.
  • Explains why a detector fired, for a client who is not a media buyer.
  • Drafts the weekly client update, which a human edits and sends.
  • Raises a proposal card for a person to look at, the same card the rules produce.

It never executes a change, never moves a budget, and never approves anything on your behalf.


Safety, made visible

Four locks between a proposal and your client's money.

Built in dry-run first. Live is a switch you flip, per account, on purpose. The panel below works: flip the switches, drag the guardrails, press halt, and read what would happen underneath.

Lock 1

Platform mode

Dry run computes and logs the change without sending it. Every platform starts here.

Meta Live
Google Dry run

Live writes reach Meta today. Google is connected read only until that work ships.

Lock 2

Live writes, per account

Even on a live platform, each account stays read-only until someone turns it on.

Northwind DentalLive
Harbor & VineLive
Keel OutdoorProposals only
Fernbrook ClinicProposals only

Lock 3

Guardrails

Limits on how much one approval can move, how often, and how many times a day.

15%
24 h
6 / day

Lock 4

Halt

One button stops every pending and future write across every account, immediately. It stays stopped until a person turns it back on.

00:00:00 HALT_ENGAGED by you halt

Try a proposal

Build one and watch the locks decide

-20%

What would happen

Executes

Move a switch or a slider.

Nothing here touches a real ad account. The order of checks is the product's own: halt first, then the guardrails, then platform mode, then the account's own switch.


The ledger

Every read, every proposal, every change, written down and never edited.

Append-only. Each entry carries the second it happened, who approved it, what changed, and whether the platform confirmed it.

Ledger · Thursday 10 September Append-only
09:12:04Daily read completed · 6 accounts, 41 campaigns, 0 errorsread
09:12:41Detector pacing_over_plan fired on Northwind Dental · Winter Prospectingfinding
09:12:42Proposal raised · reduce daily budget 120.00 → 96.00 · blast radius 12%proposal
09:41:58Approved by Dana K. · take-back window opens, 5:00approved
09:43:02Written to Meta · ad set 23851… daily budget set to 96.00executed
09:43:07Read back from Meta · value confirmed 96.00verified
10:04:19Proposal declined by Marek T. · pause Retargeting Broad · reason: seasonaldeclined
11:20:33Approved by Dana K. · then taken back at 11:22:06, nothing writtentaken back
13:06:50Google account Keel Outdoor is in dry run · change computed, not sentdry run
14:30:11Viewer login · Harbor & Vine client account read its own reportaccess
16:45:27Guardrail blocked a proposal · daily cap reached on Northwind Dental (6 / day)blocked
17:02:00Weekly report generated for Fernbrook Clinic · awaiting a human to sendreport

Nobody can edit this. Not even us.


Ask it anything

It can answer. It cannot act.

The chat reads the same numbers you can see and explains them. When it thinks something should change, it raises a proposal card and stops.

Why did Northwind's cost per booking go up last week?
Cost per booking moved from 18.40 to 26.10 between 1 and 8 September. Two things happened. Winter Prospecting has been pacing 18% over plan since Tuesday, so more of the spend went to the broadest audience. And the top creative has been running 26 days at a frequency of 4.6, with click-through down 31% over the last fortnight. Results held at 41 for the week, so this is a cost problem rather than a demand problem.
Proposal Needs your approval
Reduce daily budget on Winter Prospecting
120.00 96.00 per day

Because pacing is 18% over plan with 11 days left.

Ask about an account…

It can answer. It cannot act. Approval is the only path to a change.


For agencies

One login for your team. One clean view for each client.

Your clients' data is invisible to your other clients, and to us. How the separation is enforced is written out on the security page.

Manage multiple ad accounts in one portfolio

Every account you run, in one list, with the ones that need a decision at the top. Adding a client is connecting an account, not a migration.

Client-scoped viewer logins

Give a client a login that shows their account and nothing else. Read-only: they can see the findings, the changes and the reports, and they cannot approve.

A weekly PDF the client can read

What changed, why, and what it did, in sentences rather than a dashboard export. Generated automatically, sent by a person after they have read it.

We cannot read your ad data

Support staff at Adspenta have no route to the campaign data in your tenant. Where an operator can reach anything at all, the access is logged and shown to you.


Proof

We have no customer logos yet. Here is what we can show instead.

Structural proof, checkable today. Names and numbers from clients will go here when there are clients to name.

840

Automated tests against a real database

Not mocks. The test suite runs the real schema, including the tenant-isolation rules, on every change.

2

Independent security audits, findings published

Two rounds by people who do not work for us. What they found, and what we did about it, is in the changelog.

Every read

By the operator is logged

Operator access to a tenant is recorded in the same append-only log as everything else, and is visible to the tenant.

Built in the open. The changelog of what shipped and when is dated and honest, including the rounds where the audit found something.


Pricing

Per agency, per month. Priced on connected accounts, not on spend.

Two packages and an enterprise option, in euro. You pay for the client accounts you connect. Nothing about the safety machinery is metered.

Studio

A small agency, or a first portfolio on the system.

€490per agency, per monthUp to 15 connected ad accounts, Meta and Google
Request access
  • 500 AI questions a month
  • Daily reads, findings, proposals, approvals, five-minute take-back
  • Guardrails, halt, append-only ledger
  • Weekly PDF reports
  • 3 team seats and unlimited client viewer logins
  • Email support
Recommended

Agency

A team running a portfolio of client accounts across both platforms.

€1,290per agency, per monthUp to 50 connected ad accounts, Meta and Google
Request access
  • Everything in Studio
  • 3,000 AI questions a month
  • 10 team seats
  • Priority support with a named contact
  • Quarterly account review
  • DPA on request
  • Early access to Google live writes when they are released

Enterprise

Larger portfolios, procurement, and agencies who need their own instance.

From €2,900per agency, per monthCustom account and question limits
Talk to us
  • Everything in Agency
  • Service level agreement
  • Dedicated instance option
  • Support with client security reviews

Founding agency

The first five agencies get 50% off for six months, in exchange for a monthly feedback call. That is the whole offer.

Annual billing

Pay for a year and two months are free, refundable pro rata within 14 days of the first payment. Monthly stays monthly, with no notice period.

What an AI question is

One message to the assistant, or one generated client update. Reads, findings, proposals and executions are unlimited on every plan.

Live writes reach Meta today. Google is connected read only until that work ships, and it is dry run for everyone until then. Full detail on the pricing page for agency ad management.


Questions

What agencies ask before they connect an account.

Short answers. Where the answer is "not yet", it says so.

Can it manage both Meta and Google Ads accounts?

Yes for reading and proposing. Adspenta reads Meta and Google Ads accounts every day through the official APIs, runs the same detectors on both, and raises proposals for both.

Writing back is where they differ today. Live writes reach Meta. Google is connected read only while the write path is finished, so a Google proposal is computed, approved and logged rather than sent. The changelog will carry the date Google live writes are released.

Does it change budgets automatically?

No. There is no code path that changes an ad account without a recorded approval naming a person and the second they gave it. Adspenta proposes a specific change with the evidence behind it, and waits.

After a yes, a five-minute take-back window opens and one click restores the old value. Nothing has reached the platform during those five minutes.

How is this different from Revealbot or Madgicx rules?

Rule-based tools do what you configured. You write a condition, it fires, it acts. That works well for the cases you already thought of, and it is silent on the ones you did not.

Adspenta runs its detectors against every account's own recent history, so a problem gets raised whether or not you wrote a rule for it, and it stops at a proposal rather than acting. You get the reasoning and the numbers on the card, then you decide. It is PPC automation with approval rather than automation that runs while you are asleep.

How many ad accounts can one agency connect?

15 on Studio, 50 on Agency, custom above that. A connected account is one ad account on one platform, so a client running both Meta and Google is two.

Pricing is per agency per month, on the number of connected accounts. It is not a percentage of ad spend, and it does not change when a client's budget does.

Does it send ad spend pacing alerts and catch creative fatigue?

Both, daily. Pacing over plan compares spend against the month's plan with the days left. Creative fatigue watches frequency, click-through and days running together, so a single noisy day does not trigger it.

Three more detectors run alongside them: cost per result drifting outside the account's own range, budgets that will not spend, and learning-phase resets. Each one shows the evidence rows it fired on.

Can a client see their own account without seeing the others?

Yes. A client-scoped viewer login shows one account and nothing else. It is read-only: findings, changes and reports are visible, and approval is not available to it.

The separation is enforced in the database by row-level security rather than in application code, so a query that fails to scope itself returns nothing. The security page explains it in full.

Proposals, not surprises.

Connect one account in dry run and watch it work for a week before anything is live.