How-to

Meta ads naming convention: a template to copy, applied to every ad

A naming convention is your reporting schema, typed by hand, and every typo is a corrupted row. Here is the template we use, and how to apply it at upload so nobody types it.

Adlio team4 min read

The short answer

One delimiter, a fixed field order and a controlled vocabulary at every level. Campaign {market}_{objective}_{funnel}_{yyyymm}, ad set {audience}_{placement}_{geo}_{v}, ad {concept}_{hook}_{format}_{ratio}_{filename}. Then stop typing names: generate them from that pattern at upload, so no batch ships with a typo or a "Copy of" prefix.

What a naming convention is for

Ads Manager breaks down performance by campaign, ad set and ad name. Exports, dashboards and every spreadsheet on top of them split on the same strings. A naming convention is not tidiness. It is the schema of your reporting, and every typo is a corrupted row.

Three properties make a convention work:

  1. Fixed field order. The third field is always the same thing.
  2. One delimiter that never appears inside a field. We use _.
  3. Controlled vocabulary. video is always vid, never video, VID or mp4.

Which fields, and how many, depends on how you report. The template below is the one we use. Take fields out before you add new ones.

The template

Campaign

{market}_{objective}_{funnel}_{yyyymm}

Example: NL_SALES_PROSPECTING_202608

  • market: ISO country code, or GLOBAL.
  • objective: Meta's objective in short form: SALES, LEADS, TRAFFIC, AWARENESS.
  • funnel: PROSPECTING, RETARGETING, RETENTION.
  • yyyymm: the month the campaign started. Not today's date: campaigns outlive months.

Ad set

{audience}_{placement}_{geo}_{v}

Example: BROAD_AUTO_NL_v1

  • audience: BROAD, LAL1, INT-running, RT-30d. Short, but readable without a legend.
  • placement: AUTO, or the set you forced, for example REELS.
  • geo: country or region when it differs from the campaign market.
  • v: a version counter for the same audience relaunched with a different setup.

{concept}_{hook}_{format}_{ratio}_{filename}

Example: SUMMER_price-drop_vid_9x16_SUMMER_vid_02_NL

  • concept: the creative theme or test cell.
  • hook: the first-three-seconds idea, two or three words with hyphens.
  • format: img, vid, car (carousel).
  • ratio: 1x1, 4x5, 9x16.
  • filename: the asset's file name without extension. People drop this field and regret it. It is the only link from Ads Manager back to the file.

The six mistakes that break breakdowns

  1. "Copy of" prefixes. Every duplicate starts with one. Duplicate by hand and renaming is a manual step. Manual steps get skipped at 22:00.
  2. Spaces and mixed delimiters. Summer Sale - vid_02 splits differently in every tool.
  3. Dates in three formats. 0826, 26-08, Aug26. Use yyyymmdd or yyyymm, always.
  4. Meaning in capitalisation. vid and VID are one word to a human and two values to a filter.
  5. Fields that describe the moment, not the object. "test", "new", "final". All wrong within a week.
  6. Creative names without the asset name. The creative team asks "which file was ad 23" and nobody knows.

Make the file name do the work

The cheapest place to encode creative metadata is the file name, at export, by the person who made the asset. If your files are already called SUMMER_vid_02_NL.mp4 and SUMMER_img_04_NL.jpg, most of the ad name exists before anyone opens Ads Manager. Agree the file pattern with whoever produces the creatives. The ad pattern then becomes {concept}_{filename}, with the rest derived.

Apply it automatically at upload

A convention that depends on typing has a typo rate. To get it to zero, generate the name from a pattern at the moment the ad is created.

In Adlio you save a naming pattern once per ad account, with these tokens:

TokenResolves to
{filename}the asset's file name without extension
{index}the ad's position in the batch (01, 02, ...)
{date}the launch date as yyyy-mm-dd
{campaign_name}the campaign you launch into
{adset_name}the ad set you launch into
{type}image, video or carousel

A pattern like {campaign_name}_{type}_{index}_{filename} names every ad in a batch the same way: no "Copy of", no typos, file name preserved. The same tokens work in the UTM template, so utm_content={filename} links your analytics rows to the same asset. Values are URL-encoded in UTMs and left readable in names.

The pattern is saved per ad account, so client A's convention never appears on client B's ads. Run six accounts and that matters more than it sounds.

Roll-out in one afternoon

  1. Write the three patterns down in one shared document, with the controlled vocabulary next to each field.
  2. Agree the file-name pattern with the creative side.
  3. Rename existing ads once via Export and Import (formula in a spreadsheet, import back).
  4. Create every new ad from the pattern: set it in your uploader, or make the template the first line of your manual checklist.
  5. Add "names follow the pattern" to your pre-launch QA checklist.

After that, the convention maintains itself. That is the only kind that survives.

Launch from a folder and the pattern is applied at creation. Bulk upload Facebook ads from a folder shows how the tokens above fill in on every ad.

Frequently asked questions

Should the ad name include the file name of the creative?+

Yes, or a stable creative ID derived from it. The file name is the only link from the ad in Ads Manager back to the asset in your drive or DAM. Adlio's {filename} token exists for exactly this reason.

Underscores or pipes as the delimiter?+

Either, as long as it is one character, never appears inside a field, and is the same everywhere. Underscores survive copy-paste into spreadsheets and URLs better than pipes. That is why the template uses them.

How do I rename hundreds of existing ads to the new convention?+

Export the ads to a spreadsheet, generate the new names with a formula, and import the sheet back with Ads Manager's Export and Import. Do it once. Then create every new ad with the pattern, so you never do it again.

Can Meta apply a naming template automatically?+

Ads Manager offers a name template when you create a campaign, ad set or ad by hand. It does not apply to duplicates or imports, and it does not know your file names. Applying the convention at creation through a tool is the only way it holds across a bulk batch.

Adlio team

Built by media buyers who launch Meta ads in volume. Questions or corrections: support@adlio.ai.

Topic cluster

Launch hygiene and QA

Naming, UTMs, pixel, identity and the paused review that makes a bulk batch safe to set live.