Naming conventions for Meta campaigns, ad sets and ads
A consistent naming scheme makes Meta ads easier to find, filter and automate, and the names often end up in your analytics too. This guide covers what each level's name should describe, Meta's name templates, names in dynamic URL parameters, why a published name is fixed in those parameters, and the scheme we use.
This guide is built from the Meta Business Help Center and Google Analytics Help, checked on 10 November 2026: Create a name template in Meta Ads Manager, Apply a name template in Meta Ads Manager, Specifications for dynamic URL parameters, Add URL parameters to your Meta ads, About campaigns, ad sets and ads, Use search and filter to find ads, Duplicate ad campaigns and Google's Best practices to avoid sending PII. Meta gives you the tools (name templates and name-based URL parameters) but doesn't publish a naming convention of its own. The scheme near the end of this page is ours and marked as such.
Why names matter more on Meta
A name in Ads Manager is not only a label for you. It travels in three directions:
- Into the Ads Manager table and its search. Meta's search and filter bar lets you "search and filter your campaigns, ad sets and ads from one place", and a search term is the quickest filter there is if the names are predictable.
- Into your analytics. With dynamic URL parameters such as
{{campaign.name}}and{{ad.name}}, Meta writes the names into the link people click, so the names become your campaign and content values in GA4 or any other tool. - Into automation. Automated rules can target campaigns whose name contains a given word, so a consistent word in the name decides which campaigns a rule touches.
The second point is the one that catches people out: a name that went into a URL parameter is frozen at the moment the ad was first published (see below). Getting the convention right before launch matters more on Meta than on platforms where you can fix a name later.
What each level's name should describe
Meta's structure page sets out what is decided where: "You set the advertising objective at the campaign level. ... At the ad set level, you define who sees your ad by setting up your audience, budget, schedule and placements. At the ad level, you design the creative that people see." Our Meta ads basics guide covers the levels themselves. For naming, the useful rule is that each name describes what is set at its own level, so you never repeat the same information three times:
| Level | What Meta sets there | What the name can carry |
|---|---|---|
| Campaign | The objective | Objective, market or country, offer or product line, start month |
| Ad set | Audience, budget, schedule, placements | Audience type, location, age range, placement choice |
| Ad | The creative: images, video, text, call to action | Format, hook or angle, version |
Meta notes that "a campaign can include multiple ad sets" and "you can have multiple ads within a single ad set", so the name at each level should be what tells siblings apart.
Creating a name template
Name templates are Meta's built-in way to keep names consistent. Three limits come first in Meta's help:
- "We only support one template per level (meaning that, campaign, ad set and ad) per ad account."
- "Any edits made to an existing template will only be applied to future campaigns, ad sets or ads."
- Templates you created and applied before are turned off for existing campaigns, ad sets or ads. "Only the names will be saved."
To create one, open Name templates in Ads Manager, select Create below Campaign name, Ad set name or Ad name (or Edit if one exists), then + Add component. Each component is one of three field types:
- Campaign fields: settings such as objective or ad format, which fill in automatically from your selections when you create or edit.
- Open text field: free text you type each time.
- Custom field: a dropdown list you build, which you pick from each time.
You can add as many fields as you like and drag them into order. Then choose a Field separator (between fields) and an Item separator (between several items inside one field). Meta requires the two separators to be different from each other and from the open text and custom fields, then you select Save.
Custom fields are the part worth spending time on. A dropdown of approved values (for example the audience types you use) is what stops "Lookalike", "LAL" and "lookalike" turning into three rows in a report.
Applying a template
When you create a campaign, or check a campaign's box and select Edit, find the Campaign name, Ad set name or Ad name field and switch the Template toggle on. Meta says: "If a template has already been created for this ad account at this level, a name will be generated." You then use the dropdowns for custom fields, type into any open text fields and check the preview. Edit template on the same field takes you back to the template itself.
Because there is one template per level per ad account, a template is an account-wide decision. If several people or an agency share the account, agree the template before anyone builds on it.
Names in URL parameters
Meta's dynamic parameters fill in values when the ad is delivered. The list on Meta's specification page is ad_id={{ad.id}}, adset_id={{adset.id}}, campaign_id={{campaign.id}}, ad_name={{ad.name}}, adset_name={{adset.name}}, campaign_name={{campaign.name}}, placement={{placement}}, site_source_name={{site_source_name}}, and media_type={{media_type}} for Advantage+ catalog ads only.
For Google Analytics, Meta's own example is:
utm_campaign={{campaign.name}}&utm_content={{ad.name}}
With a campaign named "Prospecting 2026" and an ad named "Holiday", Meta says the URL "would appear as: utm_campaign=Prospecting%202026&utm_content=Holiday (spaces in URLs are rendered as %20)". You add these under Tracking in the ad, in the URL parameters field or with Build a URL parameter. Points from Meta's two parameter pages that affect naming:
- Parameters in the URL parameters field override duplicate parameters in the Website URL field: with
utm_source=1in the website URL andutm_source=2in the parameters field, "only utm_source=2 will be in the final URL." - Adding parameters in Ads Manager "will override any parameters you have set elsewhere, such as in Instagram's default URL parameters."
- Don't leave a parameter empty: "Always include a value for each parameter key ... or remove the parameter."
- "Dynamic URL parameters are not supported for ads in collection format on Instagram placements."
- Meta may add some parameters to ad traffic automatically, including source (Facebook or Instagram), medium "paid" and the ad, campaign and ad set IDs.
How to choose source, medium and campaign values that GA4 sorts into the right channel is in our UTM tracking links guide; we don't repeat it here. One rule from Google matters for names specifically: its PII guidance says "Be sure not to include PII in custom campaign parameters utm_source, utm_medium, utm_term, utm_campaign, and utm_content." Once names flow into utm_campaign and utm_content, a campaign named after a person, or an ad named with a customer's email, is personal data sent to Analytics.
Renaming, duplicating and the original name
Meta's rule for name-based parameters: they "are set to the campaign, ad set or ad name used when the ad was first published. Campaign, ad set or ad names can still be changed, but the parameters will refer to the original names." And: "If you want to change the parameter value, you need to create and publish a new campaign, ad set or ad."
In practice that means:
- Renaming a live campaign tidies the Ads Manager table but not your analytics. Reports keep showing the old name for that campaign's traffic.
- Information that changes during a campaign's life (budget, bid, "testing", "winner") doesn't belong in a name that feeds a URL parameter. It goes stale and can't be corrected.
- Changing the URL parameters themselves after publishing is allowed, but Meta warns it "may cause your ad set to re-enter the learning phase."
Duplicating is where names usually drift. Meta's duplicate flow lets you copy campaigns, ad sets or ads into the original campaign, an existing one or a new one, choose a number of copies, then "Make changes to the campaign, ad set or ad if needed" before you click Publish. That step before publishing is the moment to fix the copy's name, because after it the name in the parameters is fixed.
Finding campaigns by name
Ads Manager's search bar offers "a list of predicted searches" as you type, and you can combine several search terms and filters. Meta keeps your 3 most recently used search and filter settings automatically; you can also Save a search with a name, and create Quick views at the top of the reporting table to switch between saved filter views.
A naming convention makes these worth setting up. If every prospecting campaign has the same word in its name, one saved search shows all of them, and an automated rule with a "campaign name contains" condition covers new ones without editing the rule. For the reports themselves, see our Meta ads reporting guide.
Our naming scheme
This section is our own practice, not Meta guidance. It works with Meta's name templates and with the name-based parameters above:
- Campaign:
objective_market_offer_yyyy-mm, for examplesales_us_spring-sale_2026-03. Objective and market as template campaign fields or custom dropdowns, the offer as open text. - Ad set:
audience_location_age_placement, for examplelookalike-purchasers_us_25-54_advantage. Audience type as a custom dropdown so the spelling never varies. - Ad:
format_hook_version, for examplevideo_price-hook_v2. Because this becomesutm_content, it is what tells creatives apart in GA4.
The rules behind it:
- Lowercase, with an underscore as the field separator and a hyphen inside values, and no spaces, so names read cleanly in a URL rather than with
%20. - Only facts that won't change after launch. No budgets, bids or results in names.
- No people's names or personal data, since the names end up in Analytics.
- The same words as in Google Ads and other platforms where possible (for example the offer name), so a cross-channel report lines up. Our Google Ads labels guide covers the Google side, where labels do some of the work names do here.
- A short written list of allowed values, kept next to the account's template, and a review whenever a new market or audience type is added.
Long names are fine in Ads Manager, but keep each part short: a name that needs scrolling in the table is hard to scan, and every character also goes into the URL.
Frequently asked questions
Does Meta have an official naming convention?
No. Meta provides name templates in Ads Manager, one per level per ad account, built from campaign fields, open text fields and custom dropdown fields, but it leaves the choice of fields and order to you.
If I rename a campaign, does the name in my UTM parameters change?
No. Meta says name-based parameters such as {{campaign.name}} are set to the name used when the ad was first published. You can rename the campaign, but the parameter keeps the original name. To change the value you need to create and publish a new campaign, ad set or ad.
Can I have more than one name template?
Not at the same level. Meta supports one template per level (campaign, ad set and ad) per ad account, and edits to a template apply only to campaigns, ad sets or ads created afterwards.
Which Meta names should go into utm_campaign and utm_content?
Meta's own example for Google Analytics is utm_campaign={{campaign.name}}&utm_content={{ad.name}}, so the campaign name becomes the campaign and the ad name tells creatives apart. Spaces in names appear as %20 in the URL.
Will changing URL parameters on a live ad reset learning?
It can. Meta says you can change URL parameters after you publish the campaign, but this may cause your ad set to re-enter the learning phase.
For more on Meta ads, see our guides to Meta ads basics, Meta ads reporting, campaign vs ad set budgets and UTM tracking links, or see our services.