Atribu
Features

AI Media Buyer

Daily, guardrailed recommendations to scale, pause, reallocate, and refresh your ads — every change previewed, approved by you, and verified against Meta.

AI Media Buyer

The AI Media Buyer watches your ad accounts every day and proposes concrete, dollar-estimated actions: scale this winner, pause that underperformer, move budget from laggards to leaders, refresh a creative before it fatigues.

It is deliberately split into two halves. Rules decide the "what" — every action comes from a fixed set of four action types with hard numeric guardrails, so the AI can never invent an action or exceed a limit. AI writes the "why" — a language model prioritizes the list and explains each recommendation in plain prose, backed by your actual attribution data.

Nothing is ever executed on its own. Every change to your ad account requires an explicit confirmation from a workspace owner or admin.

What it does

Once a day, after the daily creative scoring run, the engine:

  1. Scores every ad against its cohort — ads with the same channel, format, objective, audience warmth, geo, and placement — so a $50/day lead-gen ad is never judged against a $5,000/day e-commerce ad
  2. Generates candidate actions from the four action types below, applying every guardrail
  3. Prioritizes and explains the surviving candidates, capped at 10 per action type and 12 per workspace
  4. Publishes them to the Recommendations page, the notification bell, and your morning briefing

Each recommendation card shows the action, the reasoning, an estimated dollar impact over the next 7 days, and a confidence percentage. Recommendations you don't act on expire after 30 days; if the data changes, they are superseded by fresh ones.

The four actions

ActionWhat it changesLimitsRisk tierMeta calls
Scale a winnerRaises the ad set's daily budget+25% by default, always between +10% and +50%Medium — explicit confirmOne budget update
Pause an underperformerSets the ad to pausedBottom 10% of its cohort only, and only after $50+ spend in 28 daysSafe — reversible by unpausingOne status update
Reallocate budgetMoves daily budget from lagging ad sets to leading ones20% shift by default, between 10% and 35% per leg; budget-neutral; never drops an ad set below $1/dayMedium — explicit confirmOne budget update per ad set
Refresh creativeNothing in your ad accountOnly fires on ads that were performing well and now show high fatigue riskManual onlyNone

When each action fires

  • Scale — the ad's calibrated top-performer probability is at least 0.75, the forecast shows a meaningful lift over its current pace, and its refund rate is under 10%. Ads that already take 30% or more of the account's spend are never scaled further.
  • Pause — the ad's composite score sits in the bottom 10th percentile of its cohort. Ads with less than $50 of spend in the last 28 days are exempt (they haven't had a fair shot), and ads whose first attributed conversion landed within the last 14 days are protected from pausing.
  • Reallocate — leaders need a top-performer probability of at least 0.7; laggards must score below their cohort's 25th percentile. The legs are sized so the money freed from laggards equals the money added to leaders — your total daily budget stays the same.
  • Refresh — the ad scores 70 or higher (it was working) but the model predicts a high risk it fatigues soon. Applying this recommendation makes zero changes in Meta — it marks the recommendation as handled and directs you to Ads Lab to produce replacement creative.

What the AI can and cannot do

The language model reranks the candidate list, writes the prose rationale, and can nudge the two percentages (scale amount, reallocation shift) within their clamps. It cannot invent new action types, change which ad is targeted, or exceed any guardrail. If the workspace's monthly AI budget is exhausted, recommendations still ship — with rules-based explanations instead of AI prose.

Nothing happens without your approval

Every apply follows the same loop:

Preview

Clicking Apply opens a preview first — never a direct write. The preview shows the action type, its risk tier, the exact Meta call(s) that will be made, the budget percentage, the estimated dollar impact, and the confidence.

Confirm

Only a workspace owner or admin can confirm. Members and guests can see recommendations but cannot apply them.

Execute

Before writing anything, Atribu fetches the ad's current live state from Meta (status and budget) and records it. Budget changes are computed against those live values — never against stale snapshots — so a budget you edited manually an hour ago is respected.

Verify

About 5 minutes after the apply, Atribu re-reads the ad from Meta and checks that the change stuck. The card shows a Pending verification badge that flips to Verified on match. If Meta's state doesn't match what was expected — for example, someone edited the budget in Ads Manager in between — the card shows a warning instead.

Safety rails on execution

  • One at a time — applies are rate-limited to one per minute per workspace, and a concurrency lock prevents double-clicks or two people applying the same recommendation simultaneously.
  • Safe retries — every apply carries an idempotency key. Retrying a request that already succeeded returns the existing result; it never triggers a second Meta write.
  • Partial failures block re-apply — if a multi-step apply partially failed against Meta, you must roll back or retry the failed steps before applying again. Atribu refuses to blindly re-run over a prior write.
  • Circuit breaker — 3 failed Meta calls within 30 minutes pause all applies for the workspace until the window clears.
  • Fresh data only — a recommendation cannot be applied if its underlying score is more than 12 hours old.

No autopilot

There is no automatic execution mode. Every Meta write today — including "safe"-tier pauses — is confirmed by a human before it runs.

Your morning briefing

The AI Media Buyer surfaces its findings through three channels:

Notification bell

The bell in the top bar collects workspace alerts:

AlertWhat it means
Spend anomalyUnusual spend detected on a campaign or ad
Fatigue flipAn ad's fatigue prediction turned critical
New recommendationFresh recommendations landed for a profile
Draft readyA Replicate creative draft finished generating

Alerts are deduplicated per day, so a persistent anomaly won't flood your bell.

Daily digest email

A daily email summarizes the day's alerts across your workspace.

Morning brief (opt-in)

An optional AI-written narrative email, delivered in the early morning in your workspace's timezone. It covers:

  • Yesterday's alerts
  • Ads at risk, with the estimated daily spend at risk
  • Your top 3 open recommendations with their estimated dollar impact

Each user opts in individually. If the workspace had a quiet day — no alerts, nothing at risk, no open recommendations — no email is sent.

Audit trail and reversibility

  • Logged before it runs — every confirmed apply writes an append-only audit record (who, what, the exact payload) before the Meta call is made. Workspace members can read the audit trail; no one can edit it from the app.
  • Pre-change state captured — the ad's live status and budget are recorded before every write, so the previous value is always known.
  • Pause is reversible — undo a pause by setting the ad live again in Meta Ads Manager. That reversibility is why pausing is the only "safe"-tier action.
  • Reallocations roll back in one click — a multi-ad-set reallocation has a Roll back all action (owner/admin) that restores every applied ad set to its captured prior budget. If a two-sided reallocation fails halfway, the completed half is rolled back automatically.
  • Scaled budgets — the prior budget is recorded in the audit trail, but there is no one-click undo for scale actions; restore the value in Meta Ads Manager if needed.

Where to find it

  • Recommendations page — in the workspace sidebar. Filter by time window (7d / 14d / 28d / lifetime), action type, and status (open, applied, dismissed, superseded, expired, rolled back). Recommendations span all client profiles in the workspace; guests only see profiles they are members of.
  • Top Performers page — the scoring layer the recommendations are built on, also in the workspace sidebar.
  • Notification bell and email — as above.
  • REST APIGET /api/v1/recommendations and an apply endpoint. Applying requires the campaigns:apply scope, which is not granted by default — a workspace admin must opt each API key in — plus an Idempotency-Key header on every apply.
  • MCP (Claude and other agents)apply_recommendation with preview, dry_run, and confirm modes. Applying through MCP requires all three of: a token with the mcp:write scope, the workspace's write-back setting enabled, and an admin or owner role.

What it never touches

The engine refuses to recommend actions on:

  • Ads in unknown cohorts — if it can't classify the ad, it won't judge it
  • New or immature ads still in their learning phase
  • Ads whose first conversion just landed (14-day protection)
  • High-refund ads (as scale candidates)
  • Ads that are already paused
  • Accounts where Meta itself recently paused something — Atribu backs off rather than fighting the platform
  • Winners already at 30%+ of account spend (for scaling)
  • Anything scored more than 12 hours ago

And it never, under any circumstances: applies a change without human confirmation, deletes ads or campaigns, or edits targeting or creative in Meta.

On this page