One Campaign Per Offer: The Post-Andromeda Meta Structure We Run for 7-Figure Brands

Scroll down a tired Meta account and you can feel the years in it. Twenty-three campaigns. Some named after a season that ended eighteen months ago. A "Moms - Retargeting - v3" sitting next to a "Students - Broad - TEST (do not pause)" that nobody remembers building. Half of them spending four dollars a day, blinking in and out of the learning phase, each one a starved little island. Somewhere in that mess is your whole budget, and no human alive can hold all of it in their head at once.

I open accounts like this most weeks. And the founder is almost never lazy. Usually it's the opposite. They built a campaign for every audience, every angle, every avatar, because that's what diligent media buying looked like for years. Each campaign was a pipe, you stacked enough pipes, and the flow added up.

Here's the thing - that whole approach quietly stopped being the right one, and most brands haven't caught up yet.

So this is the structure we now build for seven-figure brands, post-Andromeda, and the reasoning underneath each decision. It's a how-to, not a hot take. By the end you'll have the actual campaign tree and, more importantly, the one rule that tells you when you're allowed to add to it.

Why the old structure stopped making sense

Quick bit of context, because the structure only makes sense if you understand what changed under the hood.

Meta's ad retrieval system, the thing that decides which ad to show which person, runs on a vastly bigger pool of context than it used to. Think about how long the average person has been on the platform. Ten, fifteen years. Every video they've watched to the end, every post they've bought from, every format they scroll past without stopping. That's an enormous behavioural history, and Meta can now process far more of it per decision than it could even a couple of years ago.

To put that in perspective, the old approach was you, a human, looking at the last seven days of data and trying to out-guess that. It was never a fair fight, and it's now a complete mismatch.

That has one big consequence for how you build. You used to separate campaigns by audience and angle to "aim" the pixel and keep reporting clean, because the system couldn't sort a hundred ads inside one campaign on its own. It can now. So the job of splitting by audience has largely been taken off your plate. The machine pairs ad to person better than your segmentation ever did.

Which means most of those twenty-three campaigns aren't helping it. They're getting in its way.

The structure we actually build

So let me give you the tree. This is roughly what a clean account looks like for a seven-figure brand we've just taken over and consolidated.

The unit is the offer, not the audience. We build one campaign per offer. By "offer" I mean what you're actually selling, the product or category, not who you're selling it to or which angle you're using. Leggings is an offer. Outerwear is an offer. The mistake we're undoing is one campaign for "leggings to moms" and another for "leggings to runners". Those collapse into a single leggings campaign now.

Default campaign type is the Advantage+ sales build. That's the default flow Meta gives you anyway. We're not fighting it. For most brands with a real catalogue and a spread of order values, we run it value-optimised against a target ROAS rather than lowest-cost.

Here's why that matters, and it's worth slowing down on. Say your average order value sits around $80, so you set a cost cap at $40 thinking you've got a tidy 2:1. What you've quietly done is told Meta to ignore every order above that line. You can't pay $40 and win the $150 basket, you'd need to be bidding closer to $75 for that one. So the system stops chasing your higher-value buyers entirely. This is why nearly every lowest-cost account I open has an AOV that's mysteriously lower than it should be. Value optimisation with a target lets Meta reach up for the bigger baskets and bid harder to win them.

Audience stays broad. No 1% lookalikes, no stacked interests. Broad targeting is the setting that lets the retrieval system do its thing, matching each individual to the right ad out of the pile. You feed it the offer and the creative, it handles the pairing.

Budget is set well above what you expect to spend. If I want $1,000 a day out of a campaign, I'll set the budget at something like $5,000 with the target ROAS holding the line on efficiency. The target is the brake, the inflated budget is the open road. You're letting it find every profitable dollar it can at your target rather than you capping it by hand at an arbitrary number.

Then you flood it with creative. This is the part that's now load-bearing. With audience splitting gone, your campaign isn't where the variety lives, your ad library is. We want a stack of genuinely distinct ads inside that one campaign. Not the same image with the background recoloured, Meta doesn't even register that as a new ad. Distinct hooks, distinct formats, distinct angles, ideally each able to access different placements. The retrieval system rewards advertisers who give it more options to pull from. Show up with one tired ad and you're telling it you're not serious, and it will hand the cheap impressions to someone who brought more to choose from.

So the shape of the work changes. Less time clicking around building campaigns. Far more time feeding fresh creative into the few you've got. That's the trade, and it's a good one.

The one rule: a separate campaign only for a separate bid

If you remember one line from this, make it this one.

You only split out a new campaign when that thing needs a different bid.

That's it. That's the test. A separate campaign or ad set earns its place when it has a genuinely different efficiency story, a different marginal maths, that needs to be bid against differently. Not because it's a different audience. Not because you'd like cleaner reporting. Because the economics underneath it are actually different.

So ask of anything you're tempted to split: does this need its own bid? If product A and product B carry basically the same margin, the same cost of goods, the same shipping, they belong in the same campaign and can run at the same bid. Splitting them just starves them both of data for no gain. But the moment the economics diverge, that's your signal to give it its own lane.

When we still split

Consolidation is the default, not a religion. There are two honest exceptions where we still build separately.

Inventory you have to move. Pure dropshipping with infinite stock, I'd happily throw everything into one campaign and not care about the offer level at all. But real ecommerce has inventory obligations. If you've over-ordered on a specific line, or you've got a core SKU that simply has to sell through, that product needs its own campaign so you can actually push volume into it rather than hoping the algorithm chooses to. That's a business decision overriding the tidy structure, and it's the right call.

Anything with a different bid. This is the rule from above, made concrete. A lapsed-customer win-back campaign carries different economics to cold acquisition, so it gets its own lane. Selling internationally with different shipping costs and margins, your overseas market wants a separate campaign from your home one. A genuine offer test, a new bundle or price you want to read cleanly before it pollutes the main pool, can warrant its own space too. Each of these passes the test honestly: the bid genuinely needs to be different.

What does not pass the test is "moms versus runners". Same product, same margin, same bid. One campaign.

What this looked like for one brand

Let me give you a concrete before-and-after, with the numbers invented and rounded so I'm not pretending it's a guaranteed result. But the shape is true to what we see.

An apparel brand came to us spending roughly $1,800 a day across twenty-two campaigns. Beautifully, exhaustingly segmented. Audience splits inside angle splits inside seasonal leftovers. Their blended cost per acquisition sat around $52 and, more tellingly, the account felt unreadable. Costs jumped daily because almost nothing had enough conversions to settle.

We collapsed it to four campaigns. One per real offer, broad, value-optimised, inflated budgets, every spare hour going into creative instead of campaign admin. We kept exactly one split that mattered, a separate win-back campaign for lapsed customers, because that genuinely needed its own bid.

Over the following weeks the cost per acquisition drifted toward the high $30s, call it a quarter cheaper, on roughly the same daily spend. I'd love to say the consolidation alone did that. Honestly, the bigger lift was that we could finally see what was happening and pour energy into creative rather than babysitting twenty-two starving ad sets. The simpler structure is what made the real work possible.

A couple of honest cautions

Don't knock the whole account down in a single afternoon. Collapsing twenty campaigns into four means resetting learning, and you want to do that deliberately, ideally not in the run-up to your biggest sales window. Build the consolidated campaigns, let them gather data, then retire the old ones in stages.

And consolidation is not a licence to coast on three ads. The entire structure assumes you're feeding it a steady stream of distinct creative. Take the campaigns down to a handful and starve them of new angles, and you've just built a simpler account that quietly underperforms. The volume moved from your campaign list into your ad library. It still has to live somewhere.

Where to from here

If your account has crept past a dozen or fifteen campaigns and you're not sure all of them earn it, try the rule on every one of them before you touch a setting. Walk down the list and ask of each: does this need its own bid, genuinely different economics, or is it just a different audience for the same product? Be honest. Most accounts I see can answer "yes" for two or three and "no" for the rest.

If you'd like a clear-eyed read on which of yours genuinely need their own lane and which are quietly bleeding your data dry, that mapping is a core part of a Signal/Noise Audit. We'll lay your real structure against your spend and your margins and show you exactly where the consolidation is sitting, no pressure and no sales theatre, just an honest picture of how lean your account could actually be.

Ethan To
CEO @ Pigeon Digital