TL;DR: Meta's Andromeda update turned creative into the targeting layer, and it reads your ad through computer vision, OCR on your on-screen text, and speech-to-text on your voiceover. A swapped hook or a reworded headline does not clear its distinctness bar, so eighty ads routinely land as twenty units. Meta still finds a winner inside each unit, which is why variants are not waste, but only a genuinely new idea reaches a new person. The number that predicts performance is units, not ads, and it has two ceilings: your budget and your conversion volume.
A few weeks ago we wrote that Meta wants volume, but it counts your samey ads as one. That post made the argument. This one hands you the mechanic, the grid, and the spreadsheet.
There is a specific conversation we keep having with founders this year. They tell us the account has eighty ads running. Performance is flat. They want to know whether the problem is the bidding, the budget, or the audience. It is almost never any of those. It is that the eighty ads are, from the algorithm's point of view, about twenty.

This is new, and it is worth understanding precisely, because the fix is not intuitive.
For most of the last decade, Meta routed ads using audience inputs. You picked interests, built lookalikes, layered demographics, and the creative was the thing that converted the traffic your targeting sent. Creative mattered, but it mattered downstream.
Andromeda inverted that. Meta now parses the creative itself and predicts who it fits based on behavioral signals. Targeting inputs still exist, but they have been substantially demoted. The creative is the primary instruction you give the system about who your customer is.
It helps to be precise about what Andromeda actually is. Meta's own engineering team describes it as the retrieval stage: the first pass that narrows tens of millions of ad candidates down to a few thousand, before the ranking models decide winners. It delivered a 6 percent recall improvement and an 8 percent ads quality improvement on selected segments, running on roughly ten thousand times the model capacity of the system it replaced. Meta also built hierarchical indexing into it for a stated reason: over a million advertisers were using its generative tools to produce more than 15 million ads in a single month, and the old retrieval stack could not absorb that.
So Andromeda is the gate, not the judge. If your creative does not survive retrieval, nothing downstream matters.
This is the question we get asked most, and the honest answer has two parts. Meta publishes performance numbers but not a feature specification. What follows is the best available reconstruction, triangulated from the Andromeda paper, the later MARM ranking paper, and observed delivery behavior. Treat it as well-supported inference rather than documented fact.
Four signal categories appear to carry the weight.

Visual composition and attention cadence. The encoder pulls a time-series of visual features across the first few seconds: motion, color contrast, subject placement, shot changes. Thumbstop rate is a crude proxy for something much richer. The model is reading the shape of the visual signal over time, which means two edits that share an opening frame are far more similar than they look on a storyboard.
On-screen text and spoken entities. Meta's encoders include OCR and speech-to-text layers. Your burned-in captions and your voiceover script both enter the feature vector as entities. This is the most actionable item on the list, and it is the one most teams have never internalized: your script is not just persuasion aimed at a human, it is structured input to the targeting system.
Format fit and placement-native cues. Aspect ratio, duration, and whether the asset was built for Reels or zoom-cropped to fit are all features. This is the mechanical reason the same creative can perform several times better in one placement than another with the same audience.
Embedding-space neighbors. Every creative occupies a position relative to every other creative Meta has ever served. If your ad's vector sits near ads that have historically worked for high-value users in your category, retrieval can act on that resemblance before your own performance data exists. This is why genuinely fresh creative sometimes gets traction immediately. It is not learning in the old sense, it is being matched to neighbors that already have history.
One consequence worth pulling out: a static image produces a thinner vector than video. Composition, OCR, embedding placement, and format, and that is all. Video adds motion, audio entities, and temporal attention. That is a technical argument for putting your proven statics into motion, not a stylistic one.
Here is the part that changes how you count, and it is the single most important idea in this post.
A small tweak does not create a new creative. Swap the hook, reword the headline, trim ten seconds, change the end card. To you those are four different ads and Ads Manager will happily report them as four. To Andromeda they are one unit, because nothing in the feature vector moved far enough for the encoder to place them anywhere new. Eighty ads become twenty units. That is not a rounding error, it is a four-to-one gap between what you think you are running and what the system can distinguish.
But here is the nuance that most coverage of this gets wrong, and getting it wrong leads people to the wrong conclusion.

Meta still finds a winner inside the unit. Within a cluster of near-identical variants, the system will identify the version that performs best and route spend to it. Your variants are doing real work. That is exactly what variants are for, and it is why "stop making variants" is bad advice.
What variants cannot do is reach a person your idea was never going to reach. Optimising within a unit makes that idea perform to its ceiling. Only a genuinely new idea raises the ceiling, because only a new idea lands somewhere new in the embedding space.
So the operating rule is not "fewer variants." It is:
The honest audit follows directly: place every live ad into a unit defined by which argument it makes and what format it makes it in. Count the occupied cells. That number, not your ad count, predicts whether the model has room to work.

Founders are consistently surprised by this number, and the reason is structural rather than careless. Teams under production pressure iterate on winners, and iterating on a winner produces variants, not units. The account fills up while the effective library stays flat.
Founders and media buyers often talk past each other here, so it is worth setting the terms.
Vertical scaling means pushing more budget through what already works. Same creative, same structure, bigger number. The conventional discipline is to raise budgets gradually, roughly 20 percent every few days, so you do not reset the learning phase.
Horizontal scaling means adding new surface area. New personas, new arguments, new formats, new placements, new markets. Instead of pushing more money through the existing pathway, you build additional pathways.

Vertical scaling has a hard ceiling under Andromeda, because you are asking the system to find more of the same people using the same instruction. You bid up against a pocket you have already harvested, and CPA climbs. Horizontal scaling raises the ceiling itself, because each genuinely new unit is a new description of who you can serve.
Put plainly: vertical scaling buys more of the audience your creative already describes. Horizontal scaling changes the description.
This is where the two directions stop being alternatives and start working as a ratchet. And it is where most planning goes wrong, because most people ask about conversion volume and forget the budget question entirely.
There are two ceilings, and the binding one is whichever is lower.
Ceiling one: your budget. The rule we run is roughly $1,000 of monthly spend per net-new distinct creative. It is a heuristic, not physics, but it holds up across accounts because it encodes something real: below that, spend is spread so thin that no unit accumulates enough delivery to earn a fair read, and your production cost per unit starts to outrun what the unit can return. A $10,000 per month account supports about ten distinct units. A $60,000 account supports about sixty. Running thirty units on ten thousand dollars is not ambition, it is dilution.
Ceiling two: your conversion volume. Even a funded unit has to be readable. If an ad set generates 20 conversions a week and you need roughly 15 per creative to separate signal from noise, you can resolve one unit, not twenty. This is the ceiling that bites considered-purchase and lead-gen businesses hardest, because the money is there and the conversions are not.
Take the lower number. That is your target.
Now the ratchet. Every vertical step up in budget entitles you to a horizontal step out in creative. Add $5,000 a month and you have earned roughly five new distinct units. The two moves are supposed to travel together, and the failure modes are symmetrical:
This also explains why the published guidance disagrees with itself. One camp points to 15 to 25 distinct actives in a consolidated ad set. Another, including Monica Shukla at Mile Marker and practitioners like Alex Neiman, argues that 20 or more fragments signal and defaults to 6 to 10 concepts. Both are right for their own account sizes. Motion's study of 550,000 ads across $1.3 billion in spend found roughly 5 to 6 percent of ads become real winners and about half get near-zero spend, a distribution a high-volume ecommerce account resolves quickly and a long-cycle business does not.
Nobody in that debate argues that more near-identical variants help. They are arguing about units, and the answer depends on your budget and your conversion volume rather than on someone else's benchmark. The spreadsheet below computes both ceilings for you, because this is the calculation most often skipped.
Knowing you need more units does not produce them. Here is the stack we build with, in the order it should be used.
Start from personas, not from formats. This is the most common sequencing error we see. Teams open an AI tool and start generating, which produces format variety wrapped around a single argument. If you are not starting from persona, you are producing variants at speed. Each persona is a distinct limiting belief and a distinct objection, and each one earns its own angle, its own casting, its own look, and its own ad pack.
Mine competitors through the Meta Ad Library. It is free, it shows every ad any advertiser is currently running, and length of run is a reasonable proxy for what is working. Pull the libraries for your five closest competitors, classify what you find by format and by argument, and you have an empirical map of which units your category has already validated and which are unoccupied.
Use a ranked format library to break the imagination bottleneck. The blocker is rarely capacity, it is that teams run out of ideas for what a genuinely different ad would look like. Dara Denney's ranking of 51 Meta creative formats is the most useful artifact we have found for this. The short version is that only three formats earn her top tier: founder content, partnership ads, and VSLs. Four are ranked F outright: press ads, testimonial statics, podcast ads, and notes-app style UX ads.
Her argument for partnership ads is the one most directly tied to everything above, and it is worth hearing in her words:
Because Andromeda is person-based, the most direct route to a persona is a creator that persona already engages with, and the seed audience starts from that creator's own following. That is how you buy net-new reach rather than bidding harder for the pocket you already have.
Then use AI where it actually earns its place. We should be direct about where we land here, because the category is oversold. We are not believers in AI actors or synthetic UGC. It is the most hyped and least durable application of AI in this stack. Denney ranks AI avatars C tier and expects them to phase out, noting that larger brands are increasingly choosing real creators and that the choice tends to trickle down. Our objection is simpler: the entire value of creator content is that a real person with real standing said the thing. Synthesising that away removes the asset while keeping the format.
Where AI genuinely earns its keep:
The sequencing is the whole point. Persona, then competitive map, then format, then AI applied to production and analysis. Reverse it and you get volume without variety, which is the exact problem you started with.
Everything above assumes you can tell which creative worked. That assumption is doing an enormous amount of load-bearing work, and in most accounts we open, it does not hold.
You cannot find winners without clean data. You cannot count units without a tagging convention that survives contact with a freelance editor. You cannot compute a duplication ratio if half your ads are named `final_v3_USE_THIS`. You cannot trust any of it if the Pixel and the Conversions API are double-counting, or if Event Match Quality on your primary conversion event is sitting below seven and quietly degrading Meta's ability to attribute outcomes to creatives at all.
This is the least glamorous part of performance marketing and it is the backbone of all of it. Every framework in this post, the grid, the unit count, the two ceilings, the winner-inside-the-unit logic, is downstream of one question: can you trust what your account is telling you?
When the answer is no, teams spend quarters rebuilding creative libraries that were never the problem. We have watched it happen more than once. The signal was broken, the reporting looked plausible, and a year of creative strategy was built on a number that was wrong.
So before you brief a single new unit, verify three things. That the Pixel and CAPI run together with deduplication working. That Event Match Quality clears seven on the event you actually optimise toward. And that every ad carries a naming convention that lets you group it into a unit without a human guessing.
If you do not have that, or you are not sure how to build it, that is the conversation worth having first. It is the one we start most engagements with.
Build the grid before you build anything else. Arguments on one axis, formats on the other. Place every live ad into exactly one unit. The empty cells are your production queue, already prioritised.
Compute both ceilings and take the lower one. Roughly $1,000 of monthly spend per distinct unit, and enough weekly conversions to read each one. Plan vertical and horizontal moves together so budget and creative stay in step.
Mine the assets you already validated. Animate your proven statics. It is the cheapest unit you will ever buy, and it thickens a thin feature vector.
Fix the signal before you blame the creative. Pixel and CAPI running together, Event Match Quality above seven, and a naming convention that makes units computable. Below that bar, you will read a measurement problem as a creative problem.
Want to run this on your own account? Start with this prompt in Claude. It turns the moves above into a working audit you can complete in about an hour.
Before you run it, connect your data. This prompt is written to pull real inputs rather than guess at them. Step 2 needs the Meta Ad Library, which is public and free, so have your competitor list ready. Steps 1, 3 and 4 work best with Meta's official Ads MCP server connected to Claude, which gives it read access to your live ads and spend. If you have not connected it, paste your ad names and 30-day spend manually and the prompt still runs. If you do connect it, set the connector to read-only first: Meta defaults every ad account to allowing all seven sensitive actions, including create campaigns and edit budgets.
You are a fractional CMO who specializes in paid social
creative strategy. You are auditing my ad account for
creative diversity under Meta's Andromeda retrieval
engine, where creative functions as the targeting layer.
KEY DEFINITION
A "unit" is a genuinely distinct creative idea. A swapped
hook, a reworded headline, or a trimmed edit does NOT
create a new unit, because Andromeda collapses those into
one and optimises within them. Only a different argument,
format, talent, or setting creates a new unit. Count
units, never ads.
DATA SOURCES
- My live ads and spend: [via Meta Ads MCP, read-only,
or pasted below]
- Competitor creative: Meta Ad Library, public, at
facebook.com/ads/library
MY CONTEXT
- Business: [what you sell, to whom]
- Category constraints: [regulated? claims review? any
formats you legally cannot run?]
- Monthly ad spend: [amount]
- Weekly conversions on my optimization event: [number]
- Five closest competitors: [names]
- Current CPA and target CPA: [numbers]
Work through these six steps in order.
1. PERSONA MAP. Before looking at any ad, list my
distinct customer personas. For each, name the
limiting belief or objection that stops them buying.
These become the rows of the grid. If I have given
you fewer than three, push back and ask.
2. COMPETITIVE UNIT MAP. Using the Meta Ad Library for
the competitors named above, classify what they run
by format and by argument. Flag anything that appears
to have been running a long time. Tell me which units
my category has validated and which are empty.
3. MY UNIT GRID. Group my live ads into units using the
definition above. Be strict: if two ads differ only
by hook or headline, they are one unit. Show the
grid, count occupied cells, and report my unit count
against my raw ad count with the ratio between them.
4. THE TWO CEILINGS. Compute both:
a) Budget ceiling, at roughly $1,000 of monthly spend
per distinct unit.
b) Conversion ceiling, from my weekly conversions
divided by the conversions needed to read a unit.
Take the lower. If I am already above it, tell me to
consolidate rather than produce, and say so plainly.
5. DATA INTEGRITY CHECK. Before recommending any
creative work, list what I must verify about my
tracking: Pixel and CAPI deduplication, Event Match
Quality on my primary event, and whether my ad naming
lets units be grouped without guesswork. Tell me what
a failure looks like in the data so I can tell a
measurement problem from a creative problem.
6. PRODUCTION QUEUE. Rank the empty units by expected
impact, capped at the ceiling from step 4. For each,
name the format, the persona, the argument, and the
opening line. Drop anything my category constraints
rule out and say why.
Output format: a prioritized action list with an owner
and an effort estimate for each item, ordered by
expected impact on CPA. Not a summary. Ask me one
clarifying question at a time when you need more
information.
If you want a version of this prompt already loaded with your business context, your competitive set, and your live account state, that is the kind of starting artifact we build for our fractional-CMO clients.
It is tempting to read all of this as a production problem and conclude the answer is better AI tooling. Tooling genuinely helps, and teams using it are shipping more creative than teams that are not.
But generation capacity is no longer the constraint. Anyone can produce fifty ads this month. The constraint has moved to deciding which fifty are worth producing, and that decision requires knowing your customer segments well enough to name the distinct arguments that would move each of them, and having clean enough data to tell which ones landed. That is strategy work sitting on top of measurement work. Neither gets easier when generation gets cheaper. Both get more valuable, because the cost of pointing a fast production pipeline at the wrong fifty ideas went up.
That is usually the gap we are hired to close. Not the shipping, the deciding.
If your ad count is climbing and your cost per acquisition is not moving, or you are not confident your account data can tell you which creative actually won, that is worth a conversation. Book a call.
Product and operations are handled. If marketing is the missing piece, let's talk.