Your first client is free.

Meta Ads Naming Convention Template

A convention for all three levels of a Meta account, the reasoning behind each field, and a live example you can change.

Campaign

{client}_{platform}_{objective}_{country}_{audience}_{date}

NIKE_META_PUR_NL_BRD_20260826

Everything you would ever filter a campaign list by, in the order you would filter it.

Ad set

{country}_{audience}_{age}_{placement}

NL_BRD_18-45_ADV

What actually varies between ad sets. Repeating the client here buys nothing.

Ad

{format}_{angle}_{hook}_{creator}_{version}

UGC_PAIN_HOOK03_SARAH_V2

The variables under test, so a winning ad explains itself.

Change a value, watch all three follow

Country and audience appear at two levels. A convention only works if they stay in step.

Campaign
NIKE_META_PUR_NL_BRD_20260826
Ad set
NL_BRD_18-45_ADV
Ad
UGC_PAIN_HOOK03_SARAH_V2

Country and audience appear at two levels. Change one and both names follow, which is the only reason the ad set name is worth filtering on.

Why each field is there

Client

Only if you run more than one. Inside a single-brand account it is the same word on every campaign, which costs characters and tells you nothing.

Platform

Same rule. In a Meta-only account it is redundant. Keep it if the same convention also has to cover Google and TikTok, because then the export from all three still sorts.

Objective

Worth keeping almost always. It is the fastest way to separate prospecting spend from retargeting spend when someone asks where the budget went.

Country and audience

These earn their place at two levels: on the campaign for filtering, on the ad set because that is where they are actually set. Redundant on paper, useful in practice.

Date

YYYYMMDD, at the end. It sorts correctly as text, which no other date format does, and putting it last keeps names grouped by client rather than by launch day.

Age and placement

Ad set only, and only while you are testing them. A field that never varies is a field to remove: the convention should describe the decisions, not the defaults.

Casing, separators and abbreviations

Casing

Uppercase for names in Ads Manager, lowercase for the UTM values that mirror them. Ads Manager is case-sensitive when you filter, GA4 is case-sensitive when it groups, and picking one rule per surface avoids both traps.

Separators

Underscores between fields. If a value itself needs a separator, use a hyphen, as in 18-45. That way splitting a name on _ always gives back exactly the fields.

Abbreviations

Write them down once and make them shared. Two to four characters, no vowel-dropping games, and never two abbreviations for the same thing. PUR, not PURCH and PU.