Do You Know What Meta's Andromeda Is?
Meta picks ads in two stages. You've only ever been shown one of them.
If you've bought UA for more than a couple of years, you've probably noticed your accounts behaving strangely since early 2025. New ads that get zero spend for days. One ad eating 80% of an ad set's budget while its 9 siblings starve. A "refresh" of a winning ad that dies on arrival. More variations somehow making performance worse.
Most buyers chalk that up to the usual Meta weirdness. It isn't random. Every one of those symptoms comes from the same change, and the change has a name: Andromeda.
You already know creative is the targeting now. Everyone says it. The why gets said a lot less, and the why is where the useful part is.
Two stages, and you only ever see one
When someone opens Instagram and scrolls, Meta has a few milliseconds to pick an ad. The pool of eligible ads is tens of millions deep. Nobody can score tens of millions of ads per scroll, so Meta doesn't try. It splits the job in two.
Stage 1 is retrieval. A fast model takes the whole pool and cuts it to a few thousand candidates. Stage 2 is ranking. A much bigger model takes those few thousand, predicts which one this person will act on, and runs the auction.
Everything you know about Meta ads (bids, learning phase, CPMs, the auction) lives in stage 2. Stage 1 is invisible. There's no metric for it. Your ad either got retrieved or it didn't, and if it didn't, it never entered the auction at all. It just didn't spend.
Andromeda is stage 1. It shipped in December 2024, and it's the reason your accounts started feeling different.
What Andromeda actually does
The old retrieval system ran on CPUs, which meant the model had to be small. A small model can only match on crude signals: the audience settings you picked, some coarse interest categories. It was a lookup, more or less.
Andromeda runs on NVIDIA Grace Hopper chips. Meta's engineering blog says this let them grow the retrieval model by 10,000x. Take the exact figure with salt, but the direction is the point. A model that big can read the ad itself.
It looks at the image, the copy, the video, the audio, the hook, and builds a picture of what the ad is. Then it builds a picture of the person and matches the two. Meta organizes the ad pool as a hierarchical index, basically a tree, so ads that are alike sit on the same branch, and when a branch doesn't fit the person, the whole branch gets pruned at once.
That last detail is the one that explains the weirdness.
The one-ticket problem
Say you take a winning ad and make 20 variations. Different headline, different background color, different first 3 seconds, same concept. Under the old system that was smart. 20 shots at the auction.
Under Andromeda, those 20 ads sit on the same branch of the tree. They read as the same ad. Buyers have started calling this an "entity," as in, your 20 ads collapsed into one entity. When that entity gets retrieved, one representative goes to the auction. The other 19 never do.
So the ad set with one ad eating everything and 9 starving? Those 10 ads were retrieved as 1. The other 9 were never in the running.
The refresh that died on arrival? The system read it as a copy of something it had already scored, and the original already owned that branch.
More variations hurting performance? Each one added weight to a single entry point and diluted the data behind it.
What's above Andromeda
For completeness: stage 2 got rebuilt too. Meta's ranking layer is now GEM, a foundation model they describe as trained at GPT-4 scale, rolled out through 2025, plus a consolidation project called Lattice that folded roughly 100 separate ranking models into one. Meta credits those with conversion lifts in the 3 to 5% range per surface.
But GEM only sees what Andromeda hands it. If your ad doesn't get retrieved, the smartest ranking model in the world can't help you. That's why stage 1 is the part worth understanding.
What changes in practice
Diversity replaces volume. The question for every new ad is: does this sit on a different branch than what's already running? A new hook, a new format, a new angle on the product, a different kind of person on screen. If the answer is "it's the winner with a tweak," you're probably feeding the same entity.
Leave winners alone and add neighbors. A winning ad has claimed its branch. Leave it running and put genuinely different concepts beside it.
Consolidate ad sets. 10 ad sets for 10 audiences splits the data Andromeda needs to learn what your ad is. 1 to 3 broad ad sets with real creative variety inside them gives it more to work with.
Read delivery as a retrieval signal. An ad with near-zero spend after 3 or 4 days is usually being pruned before the auction. Ask what it duplicates.
And when delivery drifts to the wrong people, look at the creative before the settings. If a quarter of your reach is going to a segment that never buys, something in the ad reads as belonging to them. The tree put you on their branch. Age caps push against that; a different ad moves you off it.
Why it never reached the buyer side
Meta didn't hide Andromeda. They wrote a blog post about it. But it's an infrastructure post, written for engineers, and it never made the jump into the buyer's vocabulary. Meanwhile the Ads Manager UI didn't change at all. Same settings, same columns, same learning phase badge.
So a lot of very experienced people are still reasoning about a system that no longer exists. The panel looks the same. The thing behind the panel got replaced.
Andromeda facts are from Meta's engineering blog (December 2024). GEM and Lattice numbers are Meta's reported figures. "Entity" is buyer shorthand for observed behavior, not a documented Meta mechanic.