Blocks
Every block in @tempio/ui/components/blocks/*, rendered once from its fixture in @tempio/ui/fixtures/blocks, with its import path and its props type above it. Props types live in @tempio/ui/components/blocks/types. Four blocks appear twice: Pricing, FounderNote, Testimonial and StatTiles each carry a gate, and the second frame passes the entry that fails it so the empty result and the rule are both on the page. Everything here is fixture data — not a customer, not a confirmed figure.
A band at ground tone and content width. Ground is the one tone that carries the dark palette with it.
The ads command center
Put frontier AI to work on every ad account you run.
Tempio's MCP hands your AI every account, every number and the tools to run them across Meta, Google Ads and TikTok.
Every change lands as a draft on the record and goes live when you approve it, or when a rule you wrote does.
Bring your own AI
- Anthropic
- OpenAI
- Gemini
- Grok
- OpenClaw
- Kimi K3
Ask your agent for the change, then approve the draft it writes.
Tempio hands the AI you already use every ad account you run. Each change it makes lands as a change request that applies when you approve it, or when a rule you wrote does.
No safe zone is drawn for this placement.
Bring your own AI
- Anthropic
- OpenAI
- Gemini
- Grok
- OpenClaw
- Kimi K3
An empty advertisers list renders nothing. The row stays empty until the ad library has a source, and no placeholder takes its place.
Three dashboards, or one room
- Yesterday's spend lives in three tabs and none of them agree on the day boundary.
- A budget change is six clicks and no record of who asked for it.
- Your AI cannot see any of it, so you paste screenshots into a chat window.
- Currency is whatever each platform decided to show you.
Four surfaces, no ledger.
- One normalised account tree, one timezone, one set of base counts.
- A budget change is a draft with an author, a reviewer and a diff.
- Your AI reads the accounts over MCP and drafts the work in place.
- Money is minor units with its currency; a ratio with no denominator reads as a dash.
One surface, every change on the record.
But I heard…
AI tools spend your budget while you sleep.
MCP servers only read; they cannot change anything.
Cross-platform numbers never reconcile.
One operator, every account they run.
- Connected ad accountsunlimited
- MCP server and scoped keys
- Drafts, approvals and the audit log
- Seats and roles
USD 24/month
A team, with the approval trail to match.
- Connected ad accountsunlimited
- MCP server and scoped keys
- Drafts, approvals and the audit log
- Seats and roles
USD 64/month
Fixture tiers and amounts for the gallery and the tests. The published price list is the site's, and it stays unpublished until the flag flips.
tiers: null renders nothing. The route passes tiers only once the price list is published, so a page with no published price shows no empty table.
What people ask it
Questions
Anthony Tirrizzi
Founder, Tempio
I run ad accounts for other businesses. Tempio is the tool I use on real money, which is why the gate exists and why nothing applies without an authority on the record.
If a number here cannot be traced to a platform response, it does not ship.
— Anthony
A null entry — no portrait, no paragraph — renders nothing, and no placeholder takes its place.
| Tempio | Other MCP servers | The ad manager | |
|---|---|---|---|
| Your own AI reads the accounts | Yes | Yes | No |
| Your own AI writes campaigns, ad groups and ads | Yes | PartialRead tools, in the ones published so far | No |
| Every write lands on the record first | YesA draft with the current value, the proposed value and the authority that cleared it | No | PartialA change history, which is not an approval |
| Meta, Google Ads and TikTok in one account tree | Yes | No | One platform per login, one timezone per platform |
| Ratios | Base counts stored; CPC, CPM, CTR and ROAS computed at read time, and a dash where the denominator is zero | Whatever the platform returned | The platform's own rounding |
| Where they win | An ad manager carries the platform's newest surfaces the day that platform ships them; Tempio reaches them adapter by adapter, and says on the channel page which state each one is in. | ||
Who this is for
A good fit if
- You run ad accounts on Meta, Google Ads or TikTok and you already work with an AI assistant.
- You want a change on the record before it is a change on the platform.
- You would rather write the rule that approves a change than approve the same change every morning.
Might not be a good fit if
- You want the platform's newest beta surface the week it ships; Tempio reaches it when the adapter does.
- You want an agent to spend without an approval or a rule behind it. There is no mode that does that.
- You run a single account and the ad manager already does everything you need.
Put your agent in the room
Connect an ad account, mint a scoped key, and let your own AI read the numbers and draft the work. Approve what it writes, or write the rule that approves it.
Request early access- No card. Early access is invite-only while the platform approvals land.
- Read and draft by default; approve is a separate permission you grant.
Fixture copy standing in for a quote nobody has given yet. The block renders a card only when a named person has said it can be published and the page can say where they said it.
Source: fixture
permission: false renders nothing. A quote appears only when a named person gave permission and the words can be traced to where they were said.

Fixture copy standing in for a quote nobody has given yet. The block renders a card only when a named person has said it can be published and the page can say where they said it.
Fixture OperatorMedia buyerFixture Co Source: fixtureFixture copy for the second card, so the wall has a grid to lay out. The wall gates every entry the way the single card does.
Fixture PlannerPerformance leadFixture Group Source: fixture
3
Ad platforms with a live adapter: Meta, Google Ads and TikTok
fixture
1
Gate every write passes through, agent or person
fixture
A tile without confirmedBy does not render, and a set where none are confirmed renders nothing. Real numbers enter copy only after Anthony confirms them.
What the workspace holds
One account tree
Every connected account, campaign, ad group and ad in one normalised shape, on one timezone, with one currency rule.
Base counts only
Impressions, clicks, spend and conversions are stored; CPC, CPM, CTR and ROAS are computed when you read them.
Drafts, not writes
A change is written as a draft against the account it targets, with the current value, the proposed value and the author on it.
Scoped keys
A key carries read, draft or approve. The embedded agent never holds approve, and a key dies with the membership that minted it.
An audit log
Every apply names the authority that cleared it, whether that was a person or a rule the org wrote.
How the gate worksThree moves from account to draft
- 01
Connect the account
Authorise the ad account once. Tempio pulls the account tree and the last ninety days of base counts into the workspace.
- 02
Point your agent at it
Mint a scoped key and add the MCP server to whichever client you already use. The tools appear; nothing else changes.
- 03
Approve what it drafts
The agent reads and writes drafts. A draft becomes a change when you approve it, or when a rule you wrote approves it.
Return on ad spend
- ROAS
- 4
- Break-even ROAS
- —
- ROAS is attributed revenue divided by ad spend, inside the same attribution window.
- Break-even ROAS is one divided by your gross margin, which is why the margin input is the one that decides whether the first number is good news.
- A ratio with no denominator is a dash, never a zero.
What each platform counts as revenue
| Platform | What it counts | Where the number comes from |
|---|---|---|
| Meta | Purchases inside the attribution window | The platform's own reporting |
| Google Ads | Conversions at the value you sent with them | The platform's own reporting |
| TikTok | Purchases inside the attribution window | The platform's own reporting |
Return on ad spend (ROAS)
Return on ad spend is the revenue attributed to a campaign divided by what that campaign cost. A ROAS of 3 means three units of revenue for every unit spent.
ROAS = attributed revenue ÷ ad spend
- attributed revenue
- Revenue the platform or your own analytics assigns to the campaign, inside its attribution window.
- ad spend
- What the campaign cost over the same window, in the account's own currency.
Work it out with the calculator
What the number is telling you
ROAS is a ratio, so it moves when either side moves. A campaign whose revenue held steady while spend fell has a higher ROAS and a smaller business behind it.
Where it goes wrong
A ROAS with no revenue in the window is undefined, not zero. Fixture copy: the rendered pages carry the sourced version.
Gallery stand-in. The frame renders whatever a route puts inside it and never supplies a tool of its own.
What the examples show
Meta, single image
ImageOne image, one headline, one destination, with the safe zones drawn on top of it.
Fixture entry
Google Ads, responsive search
Fifteen headlines and four descriptions, and which combinations the platform is allowed to build.
Fixture entry
TikTok, in-feed video
Nine by sixteen, with the caption and the interface chrome overlaid where they land.
Fixture entry, no destination yet
The accounts, the plan and the drafts in one workspace
Each view reads the same normalised numbers, so the table, the timeline and the review never disagree about a campaign.
Campaigns
10 campaigns
| Campaign | Spend |
|---|---|
| Spring launch, prospecting | A$4,820.60 |
| Brand search | A$1,298.80 |
| Always-on video | A$2,103.00 |
| Retargeting, last 30 days | A$964.10 |
| Lookalike, top customers | A$1,547.20 |
| Competitor terms | A$613.40 |
| Creator spotlight | A$889.00 |
| Generic search terms | A$721.80 |
| Holiday gifting | A$382.50 |
| Winter clearance | A$0.00 |
Your channels in one workspace. Campaigns, ad groups and ads from every connected account, on one timezone, with each amount kept in its own currency.
- Meta
- Google Ads
- TikTok
Your own agents over MCP. Point the client you already use at your workspace. It reads the numbers and drafts changes with a key scoped to what you allow.
Also in the workspace
Guardrails
Spend caps and limits that every draft is checked against before it can apply.
Approvals
Approve a change yourself, or write the rule that approves changes like it.
Pacing
Spend against plan by day, so a campaign running hot shows up before the month ends.
The ad library
Public ads from other advertisers, saved and compared beside your own.
Client sign-off
Send a draft to the client whose account it touches and keep who signed it off on the record.
The CLI
The same tools in your terminal, under your keys and on the same record.
Ask where the spend went this week and get the answer with the numbers behind it.

All your ad accounts in one place
Learn moreNo safe zone is drawn for this placement.
No safe zone is drawn for this placement.