Home/ Guides/ UTM parameters for TikTok ads

Guide · Campaigns

Tag your TikTok ads so the clicks add up.

TikTok has no GA4 auto-tagging shortcut — its ttclid only feeds TikTok's own pixel. So every click you want in analytics gets tagged by hand. Here are the exact source and medium values for TikTok, the dynamic macros that auto-fill campaign and ad names, and a copy-paste template.

Updated July 4, 2026 · by slsh.me

The short answer

Source is tiktok, medium is paid-social — tagged by hand.

source tiktok medium paid-social campaign __CAMPAIGN_NAME__

Set utm_source=tiktok and utm_medium=paid-social in the ad's URL parameters field, and let TikTok's dynamic macros fill in the campaign and ad names. Keep every value lowercase and hyphenated so GA4 reports one clean row per ad instead of a dozen near-duplicates. TikTok's ttclid stays for its own pixel — it doesn't replace UTMs.

Want it right before it goes live? Build the parameter string with the free slsh.me UTM builder — it lowercases and encodes as you type — then drop a slsh.me short link into the ad so the destination stays clean and every TikTok click lands in your dashboard. Already shipped an ad? Paste its URL into the UTM parser to check the tags.

The right values per parameter.

Five UTM parameters, mapped to what a TikTok ad should put in each one. Source and medium are the two that decide whether GA4 files the click as Paid Social.

Parameter Use for TikTok ads Why
utm_sourcetiktokThe platform. TikTok is on GA4's default social-source list, so it counts toward Paid Social.
utm_mediumpaid-socialThe channel type. GA4 buckets this into Paid Social — not Paid Search, not Unassigned.
utm_campaign__CAMPAIGN_NAME__TikTok fills in the real campaign name per click. Name it cleanly in Ads Manager.
utm_content__CID_NAME__Which ad drove the click — the dynamic ad name, auto-substituted.
utm_term__AID_NAME__ (optional)Optional. Handy for ad-group breakdowns when you don't use term for keywords.

The pair to get right is source and medium: tiktok + paid-social. That's the combination GA4's default channel grouping maps to Paid Social. Whatever you choose, apply it identically everywhere — a mix of tiktok, tik-tok and tt fragments the channel exactly the way GA4 splits casing. (More on that in the UTM naming convention guide.)

Let TikTok fill in the names automatically.

You don't hand-type a UTM for every ad. TikTok supports dynamic macros — wrapped in double underscores — that get substituted with the real names at delivery, so one template covers your whole account.

Macro Resolves to
__CAMPAIGN_NAME__The campaign's name from Ads Manager
__CAMPAIGN_ID__The numeric campaign ID
__AID_NAME__The ad group's name
__AID__The numeric ad group ID
__CID_NAME__The individual ad's name
__CID__The numeric ad ID
__PLACEMENT__Where it ran — e.g. the TikTok feed

The catch: these resolve to whatever you typed in Ads Manager, then get URL-encoded as-is. If a campaign is named Summer Sale 2026, your UTM becomes Summer%20Sale%202026 — a different value from summer-sale-2026 and a capitalised one at that. So the naming discipline moves up a level: name your campaigns, ad groups and ads cleanly in Ads Manager — lowercase, hyphens, no spaces — and the dynamic UTMs come out clean for free. Prefer the _NAME__ macros over the numeric IDs in your reports; the IDs are stable but unreadable.

ttclid is not a UTM.

The single biggest TikTok tracking mistake is assuming its click ID does what Google's gclid does. It doesn't.

When you run the TikTok Pixel or Events API, TikTok appends a ttclid — the TikTok Click ID — to your landing URL. It's the counterpart to Meta's fbclid and Google's gclid, and it lets TikTok's own pixel attribute conversions back to the ad that drove them.

Here's the difference that trips people up: Google Ads' gclid, once you link Google Ads to GA4, feeds GA4 richer paid-search data than UTMs could — so for Google you often skip manual tags. TikTok has no equivalent link. GA4 doesn't read ttclid, and neither do most third-party analytics tools. So TikTok behaves like Meta: there's no auto-tagging shortcut, and you tag every ad by hand with UTM parameters if you want the click in GA4.

The good news is they don't conflict. Keep ttclid for TikTok's pixel and add your utm_ parameters alongside it — both ride on the same landing URL, each read by a different tool.

The copy-paste template.

Paste this into the ad's URL parameters field in TikTok Ads Manager (at the ad level, under the destination URL). No leading ? — TikTok joins it to your landing URL.

# TikTok ad — URL parameters field (not the impression/click tracking URLs)
utm_source=tiktok&utm_medium=paid-social&utm_campaign=__CAMPAIGN_NAME__&utm_content=__CID_NAME__

Add &utm_term=__AID_NAME__ if you want the ad-group name too. Because the names come from Ads Manager, you set this once per ad (or reuse it across the account) and never touch the UTMs again. This lives alongside ttclid — TikTok still appends its own click ID for the pixel, and your UTMs stay untouched for GA4.

The mistakes that break attribution.

Four things that quietly send your TikTok clicks to the wrong place in GA4.

1

Relying on ttclid for GA4

Assuming the click ID tracks like Google's gclid. GA4 doesn't read ttclid, so those clicks land in Direct or Unassigned.

Fix: tag every TikTok ad by hand with utm_source/utm_medium; keep ttclid for the pixel.

2

Using cpc loosely or the wrong medium

A non-standard medium like ppc-tt or social can fall into Unassigned or miss the Paid Social bucket entirely.

Fix: use utm_medium=paid-social with utm_source=tiktok, applied consistently.

3

Spaces and capitals in names

Dynamic macros inherit your Ads Manager names verbatim. Q3 Retargeting becomes Q3%20Retargeting — capitalised and encoded.

Fix: name campaigns, ad groups and ads lowercase-with-hyphens from the start.

4

Mixing tiktok, tt and tik-tok

Three spellings of the same source means three rows in GA4 that never add up to your real TikTok total.

Fix: pick one source spelling and apply it to every single ad.

Build the string without typos.

The dynamic macros are easy; the static part (utm_source, utm_medium) is where a stray capital or space sneaks in. Build that part once from a form that lowercases and encodes for you, then slot the __…__ macros in by hand.

The free slsh.me UTM builder lays out every parameter, normalises casing and spacing as you type, and shows the finished string — so your TikTok ads ship with identical, GA4-friendly source and medium values every time.

Build your TikTok UTMs, free

Then shorten the destination on slsh.me — a clean short link in the ad keeps the long tagged URL out of sight and logs every click by country and device, free.

Questions

What utm_source and utm_medium should I use for TikTok ads? +
Use utm_source=tiktok and utm_medium=paid-social. TikTok is on GA4's default social-source list, so a social source with a paid medium files the click under Paid Social. Keep both lowercase and use the same spelling on every ad so GA4 doesn't split the channel. See the reading UTM data in GA4 guide.
What are TikTok's dynamic tracking macros? +
Placeholders wrapped in double underscores that TikTok substitutes at delivery — __CAMPAIGN_NAME__, __AID_NAME__ (ad group), __CID_NAME__ (ad) and __PLACEMENT__, plus their _ID__ variants. A typical pattern is utm_campaign=__CAMPAIGN_NAME__&utm_content=__CID_NAME__. They inherit your Ads Manager names verbatim, so name those cleanly — lowercase, hyphens, no spaces.
Isn't ttclid enough to track TikTok ads? +
No. ttclid is TikTok's own click ID, read by the TikTok Pixel and Events API for on-TikTok conversions — not by GA4 the way Google's gclid is. Unlike Google Ads, TikTok gives you no auto-tagging shortcut for GA4, so you still tag every ad by hand with UTMs. Keep ttclid for the pixel and add UTMs for analytics; they don't conflict.
Is this the same as tagging Facebook or Instagram ads? +
Very close. Like Meta, TikTok has no GA4-linked click ID, so you always tag by hand with dynamic placeholders — the difference is only the macro syntax (__CAMPAIGN_NAME__ vs Meta's {{campaign.name}}). See the UTM parameters for Facebook & Instagram ads guide for that side.

Every TikTok click, accounted for.

Shorten the link behind your TikTok ads with slsh.me. The long tagged URL hides behind a tidy short link, and you get live click analytics per ad — by country, device and referrer, free.

Create a link with slsh.me

Free forever · see pricing