A system that records every change we (or our agency) make to our ads, offers and landing pages — automatically where possible — watches the numbers, and tells us honestly whether our optimisations worked or the market just moved.
Two problems everyone who touches our paid ads will recognise.
Campaign pauses, budget shifts, a new offer ($1699 for 400 shots of Ultherapy instead of freebies), a landing-page tweak, a new WhatsApp follow-up script — these live in people's heads and scattered chats. Three months later, nobody can reconstruct what was changed, when, or why.
Leads went up — was it our new offer, or the school holidays? Leads dropped — bad creative, or two doctors on leave that fortnight? Without a reliable timeline of changes and context, every answer is a guess dressed as an opinion.
The core insight: Google already records every in-platform change (who, what, when — including the agency's). We just have to capture it before it expires, and add the one thing no API knows: why we did it.
Setting expectations before anything else.
Plain code does the watching (cheap, testable, never hallucinates). AI is used only where judgment is needed — deciding what matters and explaining it.
Everything happens in one Slack channel. Three moments:
Intervention #112 · SLAC · offer · Ulthera LP · 22 JulThis is where most tools overpromise. Ours won't.
What changed, what happened after, what else was going on (holidays, roster, competitors). Never lost, never dependent on memory.
Where the numbers are big enough, it compares against control baselines (untouched campaigns, sibling brands) and shows the uncertainty.
Offer and LP questions usually can't be answered by observation. The system says so and recommends a proper split test instead of pretending.
Rule it lives by: no causal claims without the statistics to back them. "Not measurable yet — wait 3 weeks before reacting" is a first-class answer, and often the most valuable one.
Five words you'll see it use.
Ordered by what loses data by not existing — Google's change history only keeps ~30 days, so capture ships first.
API access + daily capture of Google Ads change history into the Ledger. No AI yet — just stop the history from evaporating.
Every week of delay is ledger history lost foreverSlack bot goes live. The team can declare offers, LP changes and roster events in one line; the bot confirms what it recorded.
Metric anomaly + silence detection across all 5 brands, with the Analyst filtering noise. We run 2–4 weeks and tune until "when it posts, it matters".
Weekly attribution digest: what changed, what worked, what's unknowable without an experiment.
Disapproval alerts for active ads only (no more year-old-paused-ad email noise) and budget pacing against declared plans.
Extend the same sensing and ledger to Meta — our Meta metrics already flow into the warehouse daily.