TikTok's own guidance is utm_source=tiktok and utm_medium=cpc. Add utm_campaign=__CAMPAIGN_NAME__ and TikTok fills in the campaign name for you. One thing surprises people: GA4 lists tiktok as a social source, not a video one, so these clicks land in Paid Social rather than Paid Video.
The interactive UTM builder loads with this page, pre-filled for TikTok ads, and runs entirely in your browser.
Google's source list files tiktok under social, and cpc matches GA4's paid medium pattern, so the click meets GA4's Paid Social rule.
Where to put it
In TikTok Ads Manager, enter your landing page in the ad's website URL field.
Add the UTMs with TikTok's built-in URL parameter builder, or paste the tagged URL from the builder above.
Wrap every macro in double underscores on both sides.
Leave ttclid out. TikTok adds it to every ad click by itself.
Macros filled in at click time
Macro
Resolves to
__CAMPAIGN_ID__
Campaign ID
__CAMPAIGN_NAME__
Campaign name
__AID__
Ad group ID (not the ad)
__AID_NAME__
Ad group name
__CID__
Creative (ad) ID (not the campaign)
__CID_NAME__
Creative (ad) name
The TikTok macro that looks like the ad ID belongs to the ad group. __AID__ resolves to the ad group, and __CID__, which reads like "campaign ID", resolves to the creative, meaning the individual ad. Put __AID__ in utm_content because you wanted per-ad reporting and every ad in that group will report as one row. For per-ad detail, the pairing you want is:
Double underscores, both sides.__CAMPAIGN_NAME__ resolves, but with single underscores TikTok passes _CAMPAIGN_NAME_ into the URL as literal text, and the macro's own name turns up in your reports where the campaign should be. When a TikTok row in GA4 reads like a placeholder, count the underscores first.
GA4 counts TikTok as social. TikTok is a video app, so it's natural to look for its ads under GA4's Paid Video channel. GA4 decides from its own source list, though, and Google's published list files tiktok under social. With a paid medium, TikTok ad clicks share the Paid Social channel with Meta, LinkedIn and Pinterest. To see TikTok alone, filter by source rather than by channel.
cpc or paid_social? TikTok recommends cpc. Most of the other paid social presets here use paid_social. GA4's channel rule accepts both, so the channel is the same either way. What differs is your medium report, which will show two rows for what you think of as one kind of traffic. If the rest of your paid social already says paid_social, use that on TikTok too; if TikTok is your only paid channel, keep TikTok's cpc.
ttclid is already there. Since April 2024, TikTok appends ttclid, the TikTok Click ID, to the landing page URL on every ad click with no setup, and TikTok says not to add it by hand. If a redirect sits between the ad and your site, run it through the redirect checker and make sure ttclid and your UTMs both reach the page.
Questions
What is a UTM for TikTok ads?
It's the set of utm_ tags on your ad's landing page URL that tells your analytics the visit came from a TikTok ad. TikTok's own guidance is utm_source=tiktok and utm_medium=cpc, plus a campaign value such as __CAMPAIGN_NAME__, which TikTok fills in at click time.
How do I add UTM parameters to TikTok ads?
Enter your landing page in the ad's website URL field in TikTok Ads Manager, then add the parameters with TikTok's built-in URL parameter builder or paste a tagged URL. Macros need double underscores on both sides, like __CAMPAIGN_NAME__.
Should I add ttclid to my TikTok ad URLs?
No. Since April 2024 TikTok appends ttclid to the landing page URL automatically on every ad click. It's TikTok's click ID and sits alongside your UTMs; you don't need to add it.
Why do my TikTok ads show as Paid Social in GA4, not Paid Video?
Because Google's source list files tiktok as a social site, not a video site. A paid medium on a social source matches GA4's Paid Social rule.