AI Ad Optimization for Profit: Three Systems Into One
I had three AI ad systems fighting each other. Here is how I collapsed them into one channel-neutral spine that optimizes for profit, not platform ROAS.
By Mike Hodgen
How I Ended Up With Three AI Systems Doing the Same Job
I want to be honest about something before I tell you how I fixed it: I created this mess myself. Nobody handed me three overlapping ad systems. I built them, one at a time, each one solving a real problem that was in front of me that week.
This is the part of AI ad optimization for profit that nobody warns you about. Building fast feels productive. And it is, right up until you look up and realize you have three different brains making decisions about the same dollars, and none of them agree.
The Meta autopilot that actually ran
The first system was the Meta autopilot I built. This thing was alive. It made real bid and budget moves every single day, no human in the loop for the routine stuff. It worked. It still works.
It optimized hard against platform ROAS, because that's what Meta gives you and that's what was easy to wire up first.
The Google system stranded mid-build
The second system started during a client engagement. I built a Google-channel system to do roughly the same job on a different platform. Then priorities shifted, the build got paused, and it ended up technically alive but disconnected. Code that ran, logic that was sound, plugged into nothing.
The advisory profit brain that never pulled a trigger
The third system was the smartest of the three and the most useless. It was an advisory profit brain. It calculated the genuinely correct call based on actual margin, not platform vanity metrics. And then it did absolutely nothing about it. It produced recommendations a human had to read and execute by hand.
Three systems. None of this was planned. Each got built fast to solve the problem directly ahead of me, which is exactly what agentic velocity is good at. The trouble is that velocity is great at producing capability and terrible at producing coherence.
The Symptom: Systems That Drift and Quietly Disagree
Here's the thing about redundant AI systems. They don't crash. A crash would be merciful, because you'd notice immediately. Instead they drift.
Three overlapping systems with conflicting verdicts
The Meta autopilot was optimizing to platform ROAS. The advisory profit brain looked at the same campaigns and said the actually profitable move was something completely different. The stranded Google system, when anyone bothered to check it, had a third opinion that nobody was reading.
This is the failure mode that costs you money quietly. When two systems touch the same budget logic with different assumptions baked in, you don't get redundancy in the safe sense. You get silent conflict. There's no single source of truth, just competing votes that never get reconciled.
The concrete example that made it real for me: one system would flag a campaign as a clear winner because the ROAS looked great. The profit brain would look at the same campaign and flag it as a margin loser, because the products driving that revenue had thin margins and heavy return rates. Same campaign. Opposite verdicts. Both "right" by their own logic.
That's the trap. Each system was internally consistent. The disagreement only showed up when you laid them side by side, which almost never happened in the day-to-day.
This is a broader pattern with automation. Systems that start aligned drift apart over time as each one gets patched, tuned, and extended independently. Nobody decides to create contradictory logic. It accumulates. And by the time you feel the symptom, the cause is spread across three codebases.
I wasn't losing money in a dramatic way. I was losing it in a thousand small allocation decisions that pointed in inconsistent directions.
Mapping the Mess: A Multi-Agent Audit of My Own Stack
Before I touched a line of code, I needed an honest map. So I ran a multi-agent audit across all three codebases. The goal was simple: figure out what each system actually touched, where logic was duplicated, and where they overlapped on the same decisions.
Multi-agent audit findings of duplicated logic
I want to stress the word actually, because "I have a vague feeling these systems overlap" is worthless. You can't consolidate a feeling. The audit turned that vague feeling into "here are the exact four places they collide."
What it surfaced was uglier than I expected:
- Three separate implementations of bid logic. Each system had its own way of deciding what to bid, with subtly different assumptions.
- Two budget allocators that could, in theory, both move money on overlapping campaigns.
- Channel-specific assumptions baked into core logic in multiple places, so Meta's quirks and Google's quirks had bled into decision-making code that should have been platform-agnostic.
That last one was the real problem. When platform assumptions live inside your core logic instead of at the edges, every system becomes a tangle that's hard to reason about and impossible to unify.
The audit was the difference between a rewrite and a plan. I genuinely considered burning it all down and starting fresh. The map talked me out of it, because it showed me that most of the logic was good. It was just duplicated and disorganized.
Consolidation starts with an honest map, not a rewrite. You cannot collapse what you have not measured. If you skip the diagnosis and jump straight to "let's just rebuild it clean," you'll re-create the same overlaps in a nicer-looking package and feel productive while you do it.
The Decision: Optimize for Profit, Not Platform ROAS
The three systems disagreed for one root reason: they were optimizing different things. Meta's autopilot chased platform ROAS. The Google system chased its own metrics. The advisory brain chased actual margin. Of course they fought. They weren't even speaking the same language.
ROAS vs Profit optimization comparison
So I made one decision that everything else hung on. Profit became the single objective. Not ROAS, not clicks, not platform-reported return. Margin dollars.
I've written the full argument for this in optimize on profit, not ROAS, but here's the short version: platform ROAS lies. It counts revenue, not margin. A campaign selling your thinnest-margin products at a discount can post a beautiful ROAS while losing you money on every order. The platform doesn't know your cost of goods. It can't. So it optimizes you toward the wrong target with a clear conscience.
ROAS also treats brand search the same as net-new acquisition. Someone who already knows your name and searches for you is not the same as a stranger you paid to discover you. Platform math flattens that distinction. Profit-driven ad bidding doesn't.
The consolidated spine uses margin as the conversion value. Every channel gets judged in the same currency: dollars of profit. Not platform points. Not vanity revenue. Profit.
This is the decision that made one engine even possible. You can only fold channels together if they share an objective function. As long as Meta was chasing ROAS and the profit brain was chasing margin, no amount of clever engineering would reconcile them, because they fundamentally wanted different outcomes.
Once everything was measured in profit, the systems stopped being three opinions. They became three views of the same question, which meant they could finally be merged.
The Architecture: One Channel-Neutral Spine, Pluggable Adapters
With a shared objective, the architecture almost designed itself. I describe the mechanics in detail in fold two channels into one engine, but the principle is what matters here.
Channel-neutral spine with pluggable adapters architecture
The spine owns the decisions
There's one channel-neutral decision engine. I call it the spine. It knows nothing about Meta. It knows nothing about Google. It doesn't know what a campaign object looks like on any platform. It reasons purely in profit terms: given this much margin per conversion at this cost, where should the next dollar go?
The spine is where the advisory profit brain went. I didn't delete it. Its logic became the spine. The smartest system I had, the one with no hands, finally got to be in charge of the decisions instead of just suggesting them.
Adapters own the platform quirks
Then there are thin adapters, one per platform. An adapter does two jobs. It translates the spine's profit-based decisions into actual platform API calls, and it translates platform data back into the common profit currency so the spine can reason about it.
All the Meta-specific weirdness now lives in the Meta adapter. The Meta autopilot's execution layer, the part that actually knew how to talk to the API, became exactly that. The stranded Google system became the Google adapter. Nothing was wasted. It was reorganized.
That's the lesson worth taking even if you never build any of this yourself: separate the decision from the channel. When the brain is clean and the platform quirks are quarantined at the edges, adding a third channel later isn't another brain. It's just another adapter. Same decision logic, new translator.
This is the difference between multi channel ad automation that scales and the version that collapses under its own weight. Most stacks I see have the channel logic and the decision logic fused together, which is why adding a channel feels like a rebuild every time.
The Guardrails: What the AI Is Forbidden From Touching
A profit-optimizing AI left fully unconstrained is dangerous, and not in an obvious way. It will find moves that are locally optimal and strategically stupid. The math will look correct in the moment and wrong over the quarter.
AI guardrails and human approval thresholds
So the consolidated system has hard constraints. AI ad budget guardrails aren't a limitation bolted on after the fact. They're part of the design.
The headline guardrail: the AI is forbidden from cutting or reallocating brand search. I wrote the full case in never touch brand search, but the logic is straightforward. Brand search is cheap defense. It protects revenue that's already yours. And platform math will always try to cut it, because on paper it looks like easy efficiency. A pure profit optimizer, judging on immediate numbers, would happily strip it out and hand your branded traffic to a competitor bidding on your name. So I took that decision away from the machine entirely.
Other guardrails in the consolidated spine:
- Bid strategy limits, so the AI can't switch to an aggressive strategy that blows past sane bounds.
- Maximum daily change caps, so no single decision can swing budget wildly. The system can adjust, but it can't make a reckless overnight bet.
- Human approval thresholds for large moves. Small, routine reallocations run automatically. Anything big enough to hurt waits for a human.
This is the human-in-the-loop philosophy applied with intent. I'm not keeping a human in the loop because I distrust the AI's day-to-day judgment. The autopilot has earned my trust on routine moves. I keep humans on the big swings because the cost of one bad large decision dwarfs the savings from a hundred good small ones.
Guardrails are what let me actually trust the system to run. Without them, I'd be checking it constantly, which defeats the entire point.
The Real Lesson: Consolidation Is Its Own Discipline
Here's what I took away from cleaning up my own mess. Agentic velocity produces capability fast. It also produces redundant systems that drift and quietly fight each other. Both of those things are true at the same time.
Building fast is one skill. Knowing when to stop and consolidate is a different skill, and a rarer one. The market is full of people who can ship the third ad system. Almost nobody is asking whether the third system should exist, or whether it's silently contradicting the first two.
Most companies bolting AI onto their ad spend are going to hit exactly what I hit, except worse, because their three brains came from three different vendors. Three dashboards. Three sets of contradictory recommendations. Three definitions of "winning." And no single profit truth anywhere in the building.
The fix isn't more AI. It's the opposite. It's collapsing what you already have into one coherent spine with a shared objective and hard guardrails. Less surface area, more agreement. One source of truth measured in profit instead of three sources of noise measured in vanity metrics.
This audit-and-consolidate work is a big part of what I do as a Chief AI Officer. Not just building new systems, but mapping the ones you already have, finding where they collide, and folding them into something that actually agrees with itself.
If your ad stack has three brains and no agreement, that's not a vague problem. It's a mappable, fixable one. I've done it on my own stack, and the map always shows up clearer than the dread suggests.
Want to explore what AI could do for your business?
Book a free 30-minute strategy call. No pitch deck, no sales team, just a real conversation about your operations and where AI actually fits.
Get AI insights for business leaders
Practical AI strategy from someone who built the systems — not just studied them. No spam, no fluff.
Ready to automate your growth?
Book a free 30-minute strategy call with Hodgen.AI.
Book a Strategy Call