Your first client is free.

What is a good campaign naming convention?

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

The fields, and when to leave one out

Campaign name fields
FieldExampleInclude when
Client or brandnikeYou run more than one brand. A single-brand advertiser can drop it entirely.
PlatformmetaNames are ever exported or compared across platforms. Inside one ad account it is redundant.
ObjectivepurAlways. It is the field that makes a name mean something a year later.
Market or countrynlYou buy in more than one market. Otherwise it is six wasted characters on every campaign.
AudiencebrdTargeting is the variable you are testing at campaign level.
Product or offerairmaxYou run several products at once and need to report on them separately.
Funnel stagetofYou genuinely report by stage. If objective already implies it, this duplicates.
Date20260827Campaigns 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.

Delimiters, abbreviations, casing and order

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.

How short should abbreviations be?

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.

Uppercase or lowercase?

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.

Does field order matter?

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

  • Nike - Purchase NL (Broad) FINAL v2
  • nike_purchase_netherlands_broadaudience_q3_2026_v2_new
  • NKE_PUR_NL

Scannable

  • nike_meta_pur_nl_brd_20260827

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.

The same convention across four platforms

Campaign name examples by platform
PlatformExample campaign name
Meta Adsnike_meta_pur_nl_brd_20260827
Google Adsnike_google_lead_uk_ret_20260827
LinkedIn Adsnike_linkedin_awa_de_lal_20260827
TikTok Adsnike_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.

Below the campaign

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.

Create your workspaceFree for one client. No card required.