Facebook ads naming convention,
enforced at launch.
Facebook ads naming convention applied automatically to every ad in your bulk launch. Token templates, live preview, clean reporting from day one.
One template per ad account. Every ad in every batch inherits it.
Source: uplads naming engine, May 2026
Every paid-ads team has a naming convention. Very few teams have a naming convention that is still intact six months in. The format gets agreed in a Notion doc, applied for a week, broken on the first launch under pressure, and quietly abandoned by month three. By month six, the campaign list in Ads Manager is the usual mix of Campaign_v3_FINAL, summer_test_2, and please_use_this_one. The mechanical problem with naming conventions is not the format. It is enforcement.

Six things a Notion doc cannot do.
Token tray
Compose from filename, file type, an auto-incrementing ID, launch date, and custom text.
Live preview
The resolved ad name updates as you click. Find the ugly combinations before launch, not after.
Dimension stripping
Short ratio tokens like 4x5 and 9x16 are removed from the filename portion automatically.
Brand-name stripping
Leading brand segments before the first separator are dropped inside brand-specific ad accounts.
Separator choice
Underscore, hyphen, space, dot, or pipe. Pick one and the engine joins every token with it.
Per-account scope
Each ad account holds its own template. Agencies keep different brands' conventions side by side.
From token tray to clean ad names in thirty seconds.
Open the Naming Convention card
Sits in your ad-account settings. The form is a token builder with a live preview underneath.
Drag the tokens in order
For example Custom: SummerSale then filename then id then date(yyyy-MM-dd). The preview updates on every click.
Pick the separator
Underscores are the default. Pipes read well for browsing the campaign list. Spaces are easiest on the eye.
Toggle the strippers
Turn on "Remove dimensions" if filenames carry ratio tokens. Turn on "Strip brand name" if filenames lead with a brand segment.
Save
From the next launch onward, every ad in every batch is named from that template. No per-ad clicking, no rename pass afterwards.
What a workable naming convention looks like
A good convention is shorter than you think. The most-cited Facebook ads naming format on the web, including the Jon Loomer template and Motion's creative-side convention, splits by level. Campaigns encode objective and funnel stage. Ad sets encode audience and bidding. Ad names encode creative identity, variant, and launch date. The point is filterability, not exhaustiveness. Every extra token is a future column to maintain, and the half of the team that forgets to fill it is what kills the convention.
A workable 2026 starting point: Objective_FunnelStage_Country_2026Q2 at the campaign level, Audience_AgeRange_BidStrategy at the ad set level, and Creative_Variant_AspectRatio_LaunchDate at the ad level. Three to four tokens per level is usually enough. The first version of any naming convention always has one token too many.
Where every naming convention breaks: enforcement.
The uplads angle is simple. Spreadsheet conventions fail because the manual step disappears under deadline pressure. Reporting-side renamers (Improvado, Supermetrics) parse whatever names you have and normalise them after the fact, which works but pushes the cost to your data team and never fixes the Ads Manager view. uplads moves enforcement out of Ads Manager and into the tool that creates the ads. Convention applied automatically, every time, before the ad name ever reaches the Meta Marketing API.
Why this is a launch-time problem
“A naming convention that lives in Notion does not survive a fifty-ad Monday launch. By the second hour someone is renaming files in Finder, by the third hour two team members have invented different shorthand for the same audience. Enforcement has to happen at the moment the ad is created, or it does not happen at all.”
Thomas Danninger · Founder, uplads
A concrete example, end to end
A creative team drops Acme_summersale_headlineA_9x16.mp4 and Acme_summersale_headlineB_4x5.mp4 into a launch. The configured template is Custom: SummerSale plus filename plus id plus date(yyyy-MM-dd), separator pipe, both strippers on. The launch fires on 14 May 2026, and the resulting ad names in Ads Manager read:
SummerSale | summersale_headlineA | 1 | 2026-05-14SummerSale | summersale_headlineB | 2 | 2026-05-14
The brand prefix is stripped, the _9x16 and _4x5 tokens are stripped, the launch date is normalised, and the ID makes every row unique even when the rest of the template matches. Drop those names into a reporting query and the filter for "summer sale launches, week of 14 May" is one line.
Naming is one of three things uplads applies automatically inside a bulk facebook ads upload. The other two are multi-placement grouping and per-ad failure isolation. All three exist for the same reason: the operations work belongs inside the launch, not after it.
