Which delimiter?
Underscores between fields. They survive URLs without encoding, they are visually distinct from hyphens inside a value, and they let you split a name back into fields programmatically. Pick one and never mix.
Your first client is free. Set up your naming system in two minutes.
One that makes names predictable enough that another marketer can read a campaign and understand it without asking whoever created it. In practice that means a fixed set of fields, in a fixed order, with one delimiter and one casing rule.
The framework, and one name built from it
{client}_{platform}_{objective}_{country}_{audience}_{date}
nike_meta_pur_nl_brd_20260827
| Field | Example | Include when |
|---|---|---|
| Client or brand | nike | You run more than one brand. A single-brand advertiser can drop it entirely. |
| Platform | meta | Names are ever exported or compared across platforms. Inside one ad account it is redundant. |
| Objective | pur | Always. It is the field that makes a name mean something a year later. |
| Market or country | nl | You buy in more than one market. Otherwise it is six wasted characters on every campaign. |
| Audience | brd | Targeting is the variable you are testing at campaign level. |
| Product or offer | airmax | You run several products at once and need to report on them separately. |
| Funnel stage | tof | You genuinely report by stage. If objective already implies it, this duplicates. |
| Date | 20260827 | Campaigns recur and you need to tell this quarter's from last. Use YYYYMMDD so it sorts. |
More information is not automatically better. Every field you add costs characters in every report column forever, and a name nobody can scan is worse than a name missing a detail you could have looked up. If a field is constant across the whole account, it carries no information and should not be in the name.
Underscores between fields. They survive URLs without encoding, they are visually distinct from hyphens inside a value, and they let you split a name back into fields programmatically. Pick one and never mix.
Short enough to save space, long enough to guess. pur for purchase and brd for broad are readable; p and b are a quiz. Keep a fixed list rather than abbreviating on the fly, because that is where two spellings of the same thing come from.
Either, consistently. Uppercase scans slightly better in a crowded Ads Manager table, which is why the Meta template recommends it. Lowercase matches what you want in UTM values, so if the campaign name flows into utm_campaign, lowercase saves a mismatch.
Yes, because names sort alphabetically. Put the field you most often want grouped first: brand for an agency, objective for a single-brand account. Everything after that should go from broad to specific.
Unusable
Scannable
The first cannot be parsed and contains a word that means nothing next quarter. The second is accurate and too long to read in a report column. The third abbreviates so hard that only its author knows what NKE was.
| Platform | Example campaign name |
|---|---|
| Meta Ads | nike_meta_pur_nl_brd_20260827 |
| Google Ads | nike_google_lead_uk_ret_20260827 |
| LinkedIn Ads | nike_linkedin_awa_de_lal_20260827 |
| TikTok Ads | nike_tiktok_traf_fr_brd_20260827 |
Same fields, same order, same delimiter, different values. That is the whole trick: when the shape is identical everywhere, a name from any platform can be split into columns without a per-platform parser, and cross-channel reporting stops being a rebuild.
Ad set and ad names deserve their own field lists rather than a longer campaign name. An ad set is usually targeting and placement; an ad is usually format, angle, hook, creator and version. Keeping each level to what varies at that level is what stops names growing to 150 characters.
The Meta Ads naming convention template sets out all three levels together, and Meta Ads UTM tracking shows how those three levels map onto tracking parameters.
Define the rules once, not per campaign
UTMConfig stores the fields, order, separator and abbreviations for your workspace, then generates every campaign, ad set and ad name from them.