Nomenclature 4 min read

Meta Ad Set Names: Examples That Survive Reporting

Concrete ad set naming examples for Meta Ads, what each variable buys you in reporting, and the mistakes that make an export unreadable.

An ad set name is not a label. It is the only key your reporting has to group results by audience or by angle. Get it wrong and the export is a column of strings that nobody can pivot.

Most naming guides give you a template. The useful part is the rule behind it, so here is both.

The rule

Each level of the hierarchy names what that level decides. Nothing more.

The campaign decides the objective and the market. The ad set decides who sees the ad and where. The ad decides what they see. An ad set name that repeats the objective is spending characters on a variable the campaign name already carries, and pushing the useful part out of view in an interface that truncates.

This is the convention used across the rest of this site, and it is worth stating in full so the three levels sit together:

LevelPatternExample
Campaign[Objective]_[Market]_[Month]Conversion_US_March2026
Ad Set[Audience]_[Concept]_[Placement]Broad_UGC-Testimonial_AllPlacements
Ad[Concept]_[Iteration]_[Format]_[Hook]UGC-Testimonial_V3_Story_PriceSlash

A pattern that holds

Broad-25-45F_SkincareRoutine_AllPlacements
Lookalike-Purchasers-1_SkincareRoutine_Feed-Story
Retargeting-14d_UsVsThem_AllPlacements
Interest-Skincare_BeforeAfter_Feed

Read left to right: audience, concept, placement.

Underscores separate the variables. Hyphens join words inside a variable. That one rule is what lets any tool, spreadsheet or script split the name back into three clean columns.

What each variable buys you

VariableThe question it answers
AudienceBroad against lookalike against retargeting, at equal creative
ConceptWhich angle works, independent of the audience it ran on
PlacementWhether an angle carries on story as well as it does in feed

Drop one and the matching question becomes unanswerable in an export. That is the entire test for whether a variable belongs in the name: name the question it lets you answer, and if you cannot, leave it out.

Examples by account type

E-commerce, one concept across three audiences:

Broad-25-45F_SkincareRoutine_AllPlacements
Lookalike-Purchasers-1_SkincareRoutine_AllPlacements
Retargeting-14d_SkincareRoutine_AllPlacements

This is the shape that lets you say an angle works on cold traffic but not on retargeting, which is genuinely useful and impossible to see when the audience is not in the name.

Lead generation, where the destination changes what the numbers mean:

Broad-30-55_ProductDemo_Form
Broad-30-55_ProductDemo_Site

Instant form leads and website leads do not produce comparable costs per result. Here the destination takes the placement slot, because it is the variable you actually filter by.

Agency accounts, where the client prefix goes on the campaign rather than the ad set:

ClientA_Conversion_US_March2026        campaign
Broad-25-45F_SkincareRoutine_Feed      ad set inside it

Putting the client on every ad set repeats it dozens of times for no filtering gain, since ad sets are always read under their campaign.

The mistakes that cost the most

Dates inside the name. 03-03-26_Skincare looks harmless until a reporting tool reads 26 as a concept identifier and groups two unrelated ad sets together. Meta already stores the creation date and shows it as a sortable column.

The same concept spelled three ways. SkincareRoutine, skincare_routine and Skincare-Routine are three separate concepts to every aggregate that has ever been computed. This is the single most common cause of numbers that are quietly wrong rather than obviously broken.

Describing the creative instead of the targeting. The hook, the format and the iteration belong to the ad name. The ad set name is about who sees it.

Free text at the end. ..._SkincareRoutine_test2_NEW_final is where conventions go to die. If it is worth recording, it is a variable with a position. If it is not, it does not belong in the name.

Fixing an account that already drifted

You cannot fully repair this retroactively, and it is worth being clear why. Meta lets you rename ad sets, and new exports will carry the new names. Every export you already pulled keeps the old strings, so any historical comparison spans two conventions.

The pragmatic approach is to draw a line rather than rewrite history. Apply the convention to everything created from a fixed date, leave what exists, and note the cutover date somewhere your future self will find it.

What this does not solve

A good name makes results readable. It does not make them valid. Thirty ad sets sharing one budget still concentrate delivery on two or three, and no naming convention will tell you that the other twenty-seven never really ran.

Naming also does not survive people. A convention holds until someone types a name by hand at eleven at night, and it holds again only if the person who notices fixes it the next morning.

The feature AI naming detection Your naming convention, recognized and applied on its own.

Frequently asked questions

What should an ad set name contain?

What is decided at ad set level: the audience, the concept and the placement. The objective and the market are decided at campaign level and already sit in the campaign name, so repeating them here only pushes the useful part out of view.

Should the date go in the ad set name?

Usually not. Meta already stores the creation date and shows it as a sortable column. A date inside the name also gets parsed as an identifier by tools that look for numbers. If you genuinely need launch cohorts, put the date last and in an unambiguous format.

Underscore or hyphen?

Both, for different jobs. Underscores separate variables, hyphens join words inside one variable. The moment a single separator does both jobs, no tool can tell where a variable ends.

How long can an ad set name be?

Long enough that length is not your constraint. Legibility is: interfaces and exports truncate, so the variables you filter by most should sit on the left.

Vos 2h de process quotidiens → 47 secondes

Join 135+ clients who transformed their Meta Ads workflow with Apogee.

Get started free → Book a demo
Talk to Founder