Skip to content
All ArticlesMeta and TikTok Ad Naming Conventions That Scale

Meta and TikTok Ad Naming Conventions That Scale

Meta, TikTok and Google Ads use three token syntaxes that fail silently. The full reference, the __AID__ trap, and a field order that maps to UTMs.

Lakshya Soni
Founder, EchoPulse Media · writes about content, video & AEO
Meta and TikTok Ad Naming Conventions That Scale

An ad name is the only label that reaches your analytics tool, and on Meta and TikTok the name is written into the tracking link when the ad is published. Rename the ad afterwards and the value already baked into its URL does not update. That is why naming conventions matter more on paid social than anywhere else: you effectively get one attempt per ad.

Below: the token syntax for Meta, TikTok and Google Ads side by side, the two TikTok macros that do not mean what they appear to mean, a field order that maps onto UTM slots, and a note on which naming numbers you can actually verify.

What is an ad naming convention?

An ad naming convention is a fixed field order, a fixed delimiter and a fixed vocabulary, applied to campaign, ad set and ad names so any name splits back into columns. It is only worth the effort if those fields survive into your reporting, which is the part most naming guides leave out.

Which tracking tokens does each platform use?

Three platforms, three incompatible syntaxes for the same idea. Switching between them is the most common cause of a literal token string appearing in a report instead of a value.

Token syntax by platform, checked September 2026

  • Meta: double curly braces. {{campaign.name}}, {{adset.name}}, {{ad.name}}, plus the matching id variants.
  • TikTok: double underscores at both ends. __CAMPAIGN_NAME__, __AID_NAME__, __CID_NAME__.
  • Google Ads: single curly braces and no dot. {campaignid}.
  • A wrong brace or underscore count throws no error on any of the three. The literal text is passed straight into the destination URL.

Meta's tokens and their syntax are set out in this reference on Meta dynamic UTM parameters, published 15 June 2026, and the TikTok equivalents in the companion TikTok macro guide from the same date.

The two TikTok macros that do not mean what they read

  • __AID__ is the ad group id, not the ad id.
  • __CID__ is the creative id, not the campaign id.
  • The campaign id is __CAMPAIGN_ID__.
  • The ad id is __ADID_V2__, and only on upgraded Smart Plus campaigns.

Read CID as campaign and every creative level row in your report is mislabelled. The substitution still succeeds, so nothing anywhere flags it (TikTok dynamic UTM parameters). If you have inherited a TikTok account from someone else, this is the first thing to check.

One Meta token worth adding

A single Meta campaign delivers across Facebook, Instagram, Messenger and Audience Network under one source value. Appending {{site_source_name}} returns fb, ig, msg or an, which splits those out without restructuring anything (Meta dynamic UTM parameters).

Why renaming an ad does not fix your reporting

Name tokens resolve to whatever the object is called at the moment the link is built. The numeric id variants, {{campaign.id}} on Meta and __CAMPAIGN_ID__ on TikTok, survive renames, restructures and archiving. Tag utm_id with the id every time, and use a name token only where a human has to read the row.

Three placement details that cost people a week each:

  • On Meta the tokens belong in the URL Parameters field at ad level. Pasted into the destination URL they are treated as literal characters and reach the visitor's address bar unresolved.
  • There is no cascade from campaign or ad set down to ad. Use bulk edit to apply a template across many ads.
  • Do not add fbclid or ttclid by hand. Both platforms append their own click id automatically, and a hand added duplicate can break the match back to the click.

There is also a casing trap on the receiving end. GA4 treats source as case sensitive, so TikTok and tiktok become two separate rows, and a source of meta rather than facebook matches no default channel rule and lands in Unassigned (Meta dynamic UTM parameters).

What should go inside the name itself?

Six to eight fields, one delimiter, fixed order. Underscore between fields, hyphen inside a compound value. That way the name splits cleanly in a spreadsheet and the distinguishing field is still visible when a column truncates.

A field order that maps onto UTM slots

  • Campaign: market, objective, offer, start month. Example: US_PROS_SUMMER-SALE_2026-09
  • Ad set: audience type, audience detail, optimisation event. Example: LAL-3PCT_BROAD_PURCH
  • Ad: format, concept, hook, variant. Example: UGC_UNBOX_PRICE-HOOK_V03
  • Uppercase every token, no spaces. Never use a comma or a pipe: both break CSV exports and spreadsheet splits.
  • Put the version number last, so incrementing it never shifts the position of any other field.

The payoff is that ad set name lands in utm_content and ad name in utm_term, so a single report column already carries audience and creative without a lookup table. For teams running many concept variants at once, which is most DTC and ecommerce accounts, that is the difference between reading results and reconstructing them.

Keep the vocabulary short and written down

  • Format: UGC, STATIC, MOTION, CAROUSEL.
  • Concept: one word for the creative idea, reused across every variant of it.
  • Hook: one word for the opening angle, which is the field you will sort by most often.
  • Audience: PROS for prospecting, RET for retargeting, LAL for lookalike with the percentage attached.
  • Anything not on that list does not get used. A vocabulary that grows by improvisation is the same as having none.

Which naming spec numbers can you actually trust?

Almost none of the character limits quoted for Meta ad names carry a source. The figure repeated most often is around 400 characters for a campaign name, and the pages stating it describe it as widely reported rather than citing Meta. The Ads Manager column truncation point is quoted at 40 to 60 characters, also without a source, and it plainly varies with column width and zoom level anyway.

So do not build to a published limit. Build to what you can see: set a test name, look at the column in your own account at your own column width, and shorten until the field that distinguishes one ad from another is still visible. That number is specific to your setup and it is the only one you can verify yourself.

This is the same pattern as the platform spec sheets, where four pages reading the same official guide produce twelve different answers, catalogued in the Meta ad specs comparison.

Frequently asked questions

Does renaming a Meta ad break tracking?

It does not break the ad, but any name based token already written into its URL parameters keeps the old value. Reporting joined on that name will desync against historical rows. Use the numeric id tokens for anything a machine reads, and treat name tokens as human readable labels only.

What delimiter should ad names use?

Underscore between fields and hyphen inside a compound value, such as LAL-3PCT. Underscores survive column truncation legibly and split cleanly in a spreadsheet. Avoid commas and pipes entirely, because both break CSV exports and most reporting tools that parse names into columns.

How long can a Meta campaign name be?

No published figure for this carries a source back to Meta. Around 400 characters is widely repeated but unattributed. The practical limit is your own Ads Manager column width, so test a name in your account and shorten until the distinguishing field stays visible at a glance.

Is TikTok macro syntax the same as Meta's?

No. Meta uses double curly braces, TikTok uses double underscores at both ends, and Google Ads uses single curly braces without a dot. None of the three warn you when the syntax is wrong. They pass the literal text into the URL, so the mistake only surfaces in your analytics later.

Key takeaways

  • Meta, TikTok and Google Ads use three incompatible token syntaxes, and all three fail silently when the syntax is wrong.
  • TikTok's __AID__ is the ad group and __CID__ is the creative, which is the single most common mislabelling in TikTok reporting.
  • Name tokens resolve at publish time. Renaming later does not update them, so numeric ids belong in utm_id.
  • Meta tokens go in the URL Parameters field at ad level, and there is no cascade from campaign or ad set.
  • Six to eight uppercase fields, underscore delimited, version last, no commas or pipes.
  • Published character limits for ad names are unsourced. Test truncation in your own account instead.
  • Never hand add fbclid or ttclid. Both platforms append their click id automatically.

Naming is the cheap half of the problem

A convention takes an afternoon and pays for itself the first time somebody asks which hook won. Producing enough distinct concepts to fill those names is the expensive half, and it is worth knowing how many new concepts an account actually needs each month and what UGC and ad creative cost to produce before you scale the structure. If briefing and producing that volume is the bottleneck rather than the spreadsheet, EchoPulse runs a $299, 14 day Pilot: real deliverables, you keep everything produced, no retainer commitment.

Related Articles

Guide · 14-day Pilot

Stop reading about content.
Go and look at yours.

Most agencies ask you to sign a six-month retainer based on a slide deck. We would rather just do the work first and let you judge it. That is the entire idea behind the Pilot.

  • A 30-day content plan built around your business, yours to keep either way
  • 8 short-form videos and 5 long-form SEO blogs, written, edited, delivered
  • Revisions until you would post it under your own name
  • No contract, no retainer, no auto-renew. It ends on day 14 unless you say otherwise.
$299one time, not a subscription

No pitch. You keep the roadmap whether or not you hire us.

Or see what everything costs