Test structure 8 min read
Meta Ads Campaign Structure: How Many Campaigns, Ad Sets, Ads
How the campaign, ad set and ad levels fit together on Meta, what each one controls, and how many of each your budget can actually support.
Contents
- How is a Meta Ads campaign structured?
- What campaign structure should you default to?
- Should the budget sit at campaign or ad set level?
- Which structural mistake costs the most?
- How many ad sets do you actually need?
- What happens at the ad level?
- Should testing live in its own campaign?
- When is a new campaign genuinely justified?
- What should you audit every quarter?
- What does campaign structure not solve?
Most accounts are not badly optimised. They are badly divided. The structure question comes before every setting inside it.
The short answer: a Meta Ads account works in three levels, campaign, ad set and ad. Use one campaign per objective and per market, as many ad sets as your budget can bring out of learning, and a handful of ads per ad set, each one carrying every ratio of its creative. The sections below explain why each of those numbers is what it is.
How is a Meta Ads campaign structured?
Meta’s Marketing API overview describes the hierarchy the same way Ads Manager shows it: one campaign contains one or more ad sets, and each ad set contains one or more ads.
| Level | What it decides | Typical mistake |
|---|---|---|
| Campaign | The objective, and the budget under Advantage+ campaign budget | One campaign per idea or per creative angle |
| Ad set | Budget under ABO, schedule, bidding, optimization event, audience and placements | Several ad sets chasing the same audience |
| Ad | The creative, the copy, the call-to-action and the destination | One ad per format of the same creative |
The structure is the same for Facebook and Instagram ads, since both run from the same Ads Manager. Placements decide where an ad shows, and they live at ad set level. It is also the same logic on other platforms: Apogee’s Meta, TikTok Ads and Snapchat Ads page maps the middle level as ad set on Meta, ad group on TikTok Ads and ad squad on Snapchat Ads.
What campaign structure should you default to?
One campaign per objective, per market.
Conversion_US_Evergreen sales, United States
Conversion_UK_Evergreen sales, United Kingdom
Lead_US_Evergreen leads, United States
A campaign exists to separate what must not share a budget or an optimisation goal. Sales and leads must not. Two markets with different costs per result usually must not. Two creative angles absolutely must not: that is what ad sets are for.
The names follow the [Objective]_[Market]_[Month] pattern from the Meta Ads naming convention guide, with Evergreen in the period slot for campaigns that do not run in cohorts. More examples are in Meta Ads campaign name examples.
Should the budget sit at campaign or ad set level?
Under CBO, which Meta now calls Advantage+ campaign budget, the budget sits at campaign level and Meta allocates between ad sets. You get the best delivery and the least control.
Under ABO, each ad set has its own budget. You get a guaranteed floor per ad set and worse global allocation.
The choice is not ideological. During a structured test, ABO protects the ad sets that would otherwise be starved before producing a read. In steady state, CBO usually wins.
The choice also changes how edits behave. Under Advantage+ campaign budget, Meta moving money between ad sets does not restart their learning, but changing the campaign budget itself can send several ad sets back into learning at once. The full list of edits that restart learning is in the Meta Ads learning phase.
Which structural mistake costs the most?
Splitting one audience across several campaigns or ad sets. The usual belief is that they bid against each other. Meta’s page on auction overlap says otherwise: when two or more of your ads enter the same auction, Meta keeps only the one with the highest total value and leaves the others out, so your ads never bid against one another.
The cost is elsewhere. The ad sets left out of those auctions cannot spend their budget, and they collect fewer results, which can keep them from exiting the learning phase. Meta’s fixes are the ones you would expect: combine similar ad sets, or turn off the overlapping ones that are learning limited and move their budget to the one that delivers.
If two campaigns target the same people, merge them: one campaign, with only as many ad sets as the test you are running needs.
How many ad sets do you actually need?
As many as the budget can feed. Meta says an ad set usually exits the learning phase after about 50 results in the week after its last significant edit.

Ten ad sets on a budget that produces sixty conversions a week means no ad set ever exits learning. The structure looks rigorous and produces nothing you can trust. Meta’s guidance on managing ad volume draws the same conclusion from the other side: combining ad sets helps you get the conversions you need to exit learning sooner.
What happens at the ad level?
Campaign and ad set get all the attention. The ad level decides something just as structural: how many ads sit inside one ad set, and what each one contains.
Meta allows up to 50 ads in each ad set. That is a ceiling, not a target. Meta’s page on ad delivery explains that when an ad set holds several ads, it shows the one most likely to get the lowest cost per optimization event for each person, so the ads are not delivered the same number of times. Put eight ads in one ad set and most of the delivery goes to a few of them: you have not run an eight way test, you have paid for ads that barely served.
The second decision is what counts as one ad. A concept usually exists in several ratios, and those files belong inside a single ad so the right ratio serves per placement. Meta recommends exactly this: fewer ads per ad set, with diverse creative assets, since one ad can contain up to 10 assets. Splitting the ratios into separate ads multiplies your ad count, splits the delivery signal, and makes the reporting harder to read for no gain. How to bundle them is covered in multi-format ads on Meta.
| Ads per ad set | What you actually learn |
|---|---|
| 1 | A clean read on that creative, if the budget supports it |
| 2 to 3 | A usable comparison, delivery still concentrates |
| 6 or more | Which few ads Meta preferred, and little about the rest |
In Apogee, this decision is a card rather than a setting: the four testing structures (one ad set one ad, one concept one ad set, all in one, insert into an existing ad set) decide how many ads land in each ad set, and every ad bundles one concept, one iteration and all its formats.

Should testing live in its own campaign?
Conversion_US_Evergreen_CBO
Conversion_US_Testing_ABO
Two campaigns, one purpose each.
The evergreen campaign holds what works and is left alone. The testing campaign holds what is being tried, under ABO so that each test gets a guaranteed floor rather than competing for scraps of a shared budget. The budget mode goes at the end of the name only because both modes run side by side here.
Keeping them apart has a second benefit that shows up at reporting time: exploratory spend does not contaminate the numbers you present as account performance.
When is a new campaign genuinely justified?
Create one when something at campaign level must differ:
- A different objective, since sales and leads cannot share optimisation
- A different market with materially different costs
- A budget that must not be shared, typically a promotion with its own envelope
- A different budget mode, CBO against ABO
Create one for none of these reasons and you have split your own delivery for nothing.
What should you audit every quarter?
Open the campaign list and ask three questions.
Which campaigns target the same audience. Which have not spent in thirty days. Which exist because of a promotion that ended.
The answers are usually a handful of campaigns that should have been paused months ago. They are not costing much directly, and they are making every list, every filter and every export harder to read. Agencies running many accounts face the same problem multiplied, covered in agency Meta Ads account structure.
What does campaign structure not solve?
Structure decides what your numbers mean. It does not decide whether the creative is any good, and no arrangement of campaigns rescues an offer nobody wants.
It also does not survive contact with a live account for long. Structures drift as people add campaigns for one-off promotions and never clean them up, which is a governance problem rather than a media buying one.