Account & Campaign Structure
Where the budget, the audience and the creative live on Meta and Google — and why consolidation beats fragmentation.
Three levels, two vocabularies
Both platforms use three levels. Meta and Google just name them differently, and the budget does not always sit at the same level. Get this map straight and most platform documentation becomes readable.
| Level | Meta | Google Ads | What you decide here |
|---|---|---|---|
| 1 | Campaign | Campaign | Objective, budget strategy, bid strategy |
| 2 | Ad set | Ad group (or asset group in Performance Max) | Audience, placements, schedule, optimisation event |
| 3 | Ad | Ad | Creative, copy, destination, tracking parameters |
On Meta the objective is set at campaign level but the optimisation event is set at ad set level. Those are different decisions, and mismatching them is one of the most common structural mistakes.
Stop building one ad set per idea
Both platforms optimise per ad set / ad group using conversion signal. Split your budget across fifteen ad sets and each one gets a fraction of the signal, learns slowly, and competes with your other ad sets for the same people. Consolidation is not laziness — it is how you feed the algorithm enough data to work.
- Fewer, better-funded ad sets outperform many thin ones at the same total spend.
- Split only when the split changes a decision — a different budget, a different market, a different offer.
- Testing creative does not require a new ad set. Multiple ads inside one ad set is usually the right test.
Duplicating an ad set to "restart learning" splits your signal again. Fix the input that was broken instead.
Where the budget sits
On Meta you choose between a campaign budget shared across ad sets, and per-ad-set budgets. The campaign-level option lets Meta move money toward whichever ad set is finding results, which is usually what you want — unless you have a hard reason each ad set must spend a fixed amount, such as a guaranteed spend per market.
| Choice | Use it when |
|---|---|
| Campaign budget shared across ad sets | The default. You care about total cost per result, not about which ad set spends. |
| Budget per ad set | You must guarantee spend per market, product line or client, and accept worse efficiency. |
Google's equivalent tension is between campaign types. Search gives you control over keywords and match types; Performance Max hands placement and targeting to Google and asks you for asset groups and audience signals instead. Running both, with clear separation of what each is responsible for, is normal.
A naming convention you will not abandon in week three
Naming is the only structure that survives platform redesigns and staff changes. Use a fixed field order, no spaces, and never encode anything the platform already tracks.
Campaign / ad set / ad naming
Campaign : {platform}_{country}_{objective}_{product}_{yyyymm}
Ad set : {audience-type}_{audience-name}_{placement}
Ad : {format}_{creative-id}_{hook}_v{n}
Example
Campaign : meta_eg_sales_petfood_202608
Ad set : broad_ae25-45_advantageplus
Ad : video_c118_price-anchor_v2
- Same field order on every platform so one filter works everywhere.
- Lowercase and hyphens only — spaces break exports and URL parameters.
- Do not encode budget or status in the name. Those change; names should not.
Match your ad naming to your UTM parameters exactly. When the ad name and the analytics row read the same, attribution arguments end in seconds.
Features covered here
Check your understanding
3 questions. Wrong answers explain themselves.
1.On Meta, at which level do you choose the optimisation event?
The objective is a campaign-level choice, but the specific optimisation event lives on the ad set alongside audience, placements and schedule. Treating them as one decision is a common structural error.
2.A client wants to test five audiences and three creatives. What is the structurally sound build?
Audience differences belong at ad set level; creative differences belong at ad level. Five ad sets with the three creatives in each gives every audience enough budget to learn, and lets the platform pick the winning creative within each.
3.Why should budget and status stay out of your naming convention?
Names are durable identifiers; budget and status are live state the platform already reports. Encoding volatile state guarantees the name goes stale and starts lying.