Every pause, budget change, and creative swap — timestamped, attributed to a person, and kept even when Meta restricts the account. “I think someone changed it” isn't a client report. And when an AI agent changes a campaign, it isn't even that.
Optmyzr's MCP writes Rule Engine strategies in plain English. Supermetrics creates campaigns from Claude. The write moved into the ad account — the actor behind it is what clients and regulators ask about. Ott's activity log is the record, for human changes, automated changes, and agent changes alike.
| Situation | What it looks like |
|---|---|
| Answering “why did spend drop?” | Log into Meta Ads Manager, find the campaign, open the history tab, scroll raw events, screenshot, email the client. Ten minutes per question. |
| Monthly client report | Compile Ads Manager history screenshots across four campaigns, paste into slides, add context by hand. Two-plus hours per client. |
| Account restricted by Meta | History UI gone. No record of last budgets, last statuses, or what changed before the restriction. Blind. |
| Proving you optimized | “I promise we optimized it” — against a client that speaks in numbers. |
| An AI changed a campaign | Strategy written, keyword applied, budget moved. Who asked for it? Who approved it? No record at all. |
| Situation | What it looks like |
|---|---|
| Answering “why did spend drop?” | Open the brand page. Timeline reads: “Campaign ‘Forex Signals Jan’ paused by Sarah M., Tue 4:12 PM.” Thirty seconds. Done. |
| Monthly client report | Export the timeline for the date range. Every change, timestamped, attributed, with before/after values. Five minutes. |
| Account restricted by Meta | Events stored in Ott’s database, independent of Meta. You still see the last-known state of every campaign, budget, and status. |
| Proving you optimized | Here’s the record. Every pause, every shift, every swap — with the values and the person. |
| An AI changed a campaign | It’s in the timeline like every other change — object, values, timestamp. You see the write. You decide whether it was right. |
Campaigns don't break in the abstract. They break because something changed — a pause, a budget edit, a creative rejection, a bid-strategy flip. The change is the explanation. Most agencies just can't find it.
Spend drops Tuesday. You log into Ads Manager, dig through the history tab, and try to reconstruct what happened from a raw event log. Was it paused manually? Did the budget change? Did Meta reject a creative? By the time you piece it together, the client has already asked twice.
Finance clients — forex brokers, prop firms, crypto exchanges — are quantitative. “I promise we optimized it” doesn’t survive contact with a client who watched their CPM double. They want proof, not reassurance. Screenshots of Ads Manager prove you can take a screenshot.
It lives inside each account, inside each object. There’s no unified view across 30 accounts and 15 clients. And when an account gets restricted, the history goes with it — exactly when you need it most.
Your media buyer pauses an ad set. The client’s internal team raises the budget. Meta auto-rejects a creative. Then an AI agent writes a strategy and applies a keyword. Nobody has a single source of truth. The agency gets blamed for all of it.
In 2026 the platforms learned to write. Optmyzr’s MCP writes Rule Engine strategies in plain English and applies keywords. Supermetrics creates and launches campaigns from Claude. Fourteen consecutive weekly checks of the PPC ecosystem turned up zero write-capable platforms with a change record. They built the write. They skipped the receipt.
Ott continuously syncs ad activity events from Meta's Graph API, stores them independently, and surfaces them in one unified timeline across every brand, campaign, and ad account you manage.
The events are preserved even when Meta restricts the account. The data lives in Ott, not in Meta's volatile history UI. When an account disappears from Ads Manager, your record of it doesn't.
Competing tools track metrics. Ott tracks changes — the what, the who, and the when behind every number on the dashboard. The record and the Campaign Triage view are two halves of the same morning check.
Everyone learned to write campaigns. Ott kept the record.
| Level | Event types |
|---|---|
| Campaign | Created, paused, unpaused, budget changed, ended, merged |
| Ad set | Created, paused, stop delivery, budget changed, bid strategy changed |
| Ad | Created, updated (copy, creative, targeting), review status changed (approved, rejected, pending) |
| Ad account | Status changed, spending limit changed |
Every event carries the same four fields:
Timestamp — when it happened, not when you noticed
Actor — who made the change (your team, the client’s team, or the tool)
Before/after values — what actually changed
Linked object — the campaign, ad set, or ad it happened to
Campaign “Forex Signals Jan” budget changed from $200 to $500 by Sarah M. — Aug 18, 2:14 PM
A budget change on Monday correlates with a CPM spike on Tuesday. A creative swap on Wednesday correlates with a CTR jump on Thursday. Ott overlays activity events on your performance charts, so you see the metric change and the event that caused it in one view.
Scrollable chronological timeline of every campaign change, on brand pages and campaign pages
Activity markers overlaid on performance charts — correlate “budget increased” with “CPM spiked” without switching tabs
Filter by campaign, ad set, or date range
No toggling between Ads Manager history and your analytics dashboard. One view, both answers.
“Here's exactly what we did this month” is a defensible client report. Every pause, every budget shift, every creative swap — timestamped and attributable. Finance clients carry compliance obligations of their own; an audit trail supports their internal controls, which makes you harder to replace.
High-risk verticals get restricted. When it happens, Meta's history UI becomes inaccessible — and your timeline in Ott doesn't. You still know what was live, what was changed, and what the last state was. You rebuild from facts, not memory. Meta ad account security for finance agencies.
When a client's internal team changes something and performance dips, the trail shows it wasn't you. Attribution matters when contracts are on the line.
“You didn't spend our budget.” The activity log shows exactly when budgets were adjusted, paused, and reactivated — with the dollar amounts.
The regulator, the standards body, and the trade press all said the same word: accountable.
The FCA's chief executive, June 24: “Accountability for regulated activities and outcomes must remain clear.”
IAB Tech Lab's AAMP 2.3: “Trust and Safety Move from Optional to Enforceable” — with a hard approval boundary its authors called “a critical requirement for regulated advertisers.”
AdExchanger, August 17: “Automation only works at scale if you build governance into it from the start.”
The mandate is clear. The record is the product. Ott's activity log is that record, built for the agencies running Meta ads in regulated verticals.
Link your Meta ad account to Ott — the same connection that powers your analytics.
Ott pulls activity events from Meta’s Graph API on a continuous schedule, with a 7-day rolling lookback so nothing slips between syncs.
Events are written to Ott’s database — independent of Meta’s systems, so restrictions and outages don’t touch them.
The timeline appears on brand and campaign pages, alongside your performance charts. Export the trail for any date range in about 90 seconds.
No setup, no new logins, no spreadsheets to maintain.
| Meta Ads Manager | AgencyAnalytics | Spreadsheets | Birch (ex-Revealbot) / Madgicx | Ott | |
|---|---|---|---|---|---|
| Tracks ad-account changes | Partial — raw history per object | No — logs actions taken inside AgencyAnalytics | Manual, if someone remembers | Partial — Birch logs its own rule runs; nothing documented from Madgicx | Every change, one unified timeline |
| Actor attribution | Partial — per object, where Meta records it | Yes, for in-tool actions | Whoever wrote it down | Partial — the rule and its owner, in Birch’s rule logs | Named person or tool, on every event |
| Survives an account restriction | No — the history goes with the account | Its own log, yes — no ad-account record to lose | Yes, if you logged it | No — Birch’s log covers the rule, not the account | Yes — independent store |
| Unified across clients | No — per account | Per-client dashboards, no ad-account change data | No | No | One timeline, every brand |
| Exportable for client reports | Screenshots | In-tool activity log, not an ad-account record | Manual | No — Birch states log export is not available | Full timeline export |
Credit where it is due: AgencyAnalytics does log activity — its Activity area records actions your team takes inside AgencyAnalytics, down to the user's name. Birch (the product formerly called Revealbot) keeps rule logs showing what its automations did, though log export is not available. Madgicx publishes nothing comparable we could find. None of them is a record of the ad account's own change history — what was paused, what a budget was before it changed, and who was behind it — and none survives the account being restricted.
On the write era: Optmyzr's MCP and Supermetrics' Claude integration can now change campaigns. Neither publishes its own change record naming the actor behind the write — Optmyzr's MCP reads the ad platform's change history instead, and Supermetrics documents approval settings, not an actor-level record. Ott doesn't write — it records everything, including the changes those tools make. In an ecosystem where anyone can write, the platform that keeps the receipts is the one a regulated agency can defend.
Log into Ads Manager → navigate to the campaign → open the history tab → scroll the raw event log → screenshot → email the client. Five to ten minutes, per question.
Open the brand page. The timeline shows “Campaign paused by Sarah M., Tue 4:12 PM.” Thirty seconds. Done.
Compile Ads Manager history screenshots across four campaigns, paste into a slide deck, add context by hand. Two-plus hours per client.
Export the timeline for the date range. Every change, timestamped, with actor attribution. Append to the performance report. Five minutes.
The account disappears from Ads Manager. History inaccessible. You don't know which campaigns were affected, what their last status was, or what budget was live. Blind.
Every activity event for that account is preserved. You see the last-known state of every campaign, every budget, every status. You rebuild instantly.
The agent applied the change and the reasoning stayed in the chat window. If a client or regulator asks who approved the write, under which rules, there is no answer.
The write is in the timeline like any other change — object, before/after values, timestamp. You see it, you review it, and if it was wrong, the record shows exactly what to roll back. The write era demands a write log. Ott is the write log.
Yes. Events are stored in Ott’s database, independent of Meta’s systems. When an account is restricted and its history UI disappears, your timeline in Ott is untouched.
Whoever made the change: your media buyer, the client’s internal team, or the automation tool that applied it. Ott attributes every event to a named actor or source, so “someone changed it and nobody knows who” stops being a sentence your agency says.
Yes. If a rule engine or automation tool changes a campaign through the connected Meta account, the change appears in the timeline like any other event. Ott records changes regardless of where they came from.
Ott continuously syncs activity events with a rolling lookback, so current changes are always captured, and the events accumulate in Ott’s store. The timeline is available for any date range you’ve been connected.
Yes. Export the full timeline for any date range in about 90 seconds — every event with its timestamp, actor, and before/after values. That’s the difference between “trust us” and “here’s the record.”
Today, activity logging covers Meta ads — where finance agencies run most of their high-risk spend. The Meta connection powers the timeline; Google Ads coverage is on the roadmap.
Catch no-spend campaigns, CPM spikes, and CTR drops before clients notice. Morning triage in 90 seconds instead of 30 minutes.
Track Telegram joins, bot starts, and DMs as Meta conversions. CAPI postback with per-ad attribution. Built in, not bolted on.
The only PPC analytics platform built for regulated finance. Track FTDs, deposits, and Telegram conversions across every client.