TikTok UTM Generator
Build UTM tracking links for TikTok Ads with dynamic macros and static parameters. Pre-filled source and medium for accurate GA4 tracking.
Why You Need UTM Parameters for TikTok Ads
TikTok Ads Manager shows you clicks, impressions, and video views. But it can't tell you what happens after someone lands on your website. Did they buy? Browse and bounce? Sign up for a trial?
That's where UTM parameters come in. They carry tracking information from TikTok into Google Analytics, so you can see which campaigns, ad groups, and creatives are actually driving revenue — not just clicks.
This matters more on TikTok than almost any other platform. Privacy restrictions (especially on iOS) can cause 60-80% of conversion data to disappear between TikTok and your website. UTM parameters work independently of cookies and pixel tracking, so they give you a reliable baseline even when other tracking methods fail.
If you're new to UTM tracking, our beginner guide to UTM codes explains how it all works in plain English.
TikTok Dynamic UTM Parameters (Macros)
TikTok supports dynamic macros — placeholder values that automatically get replaced with real campaign data when someone clicks your ad. This means you don't have to manually type campaign names into every single ad URL.
For example, instead of typing utm_campaign=spring_sale by hand, you use utm_campaign=__CAMPAIGN_NAME__ and TikTok fills in the actual campaign name automatically.
Here are all the TikTok macros you can use:
| Macro | What it returns | Use with |
|---|---|---|
| __CAMPAIGN_NAME__ | Your campaign name | utm_campaign |
| __CAMPAIGN_ID__ | Campaign ID number | utm_id |
| __AID_NAME__ | Ad group name | utm_term |
| __AID__ | Ad group ID number | custom param |
| __CID_NAME__ | Ad creative name | utm_content |
| __CID__ | Ad creative ID number | custom param |
| __PLACEMENT__ | Where ad was shown (TikTok, Pangle, etc.) | custom param |
All TikTok macros use double underscores at the start and end: __MACRO_NAME__. Single underscores separate words within the macro name.
Copy-Paste TikTok UTM Templates
Here are ready-to-use UTM strings for the most common TikTok ad setups. Copy the one that fits your scenario and paste it into TikTok Ads Manager's URL parameters field.
🎯 Dynamic — full tracking (recommended)
Best for most advertisers. Uses macros so TikTok fills in campaign, ad group, and creative names automatically.
utm_source=tiktok&utm_medium=cpc&utm_campaign=__CAMPAIGN_NAME__&utm_term=__AID_NAME__&utm_content=__CID_NAME__
📊 Dynamic with IDs — for advanced attribution
Includes campaign and creative IDs for matching with TikTok Ads Manager exports and third-party tools like Triple Whale.
utm_source=tiktok&utm_medium=cpc&utm_campaign=__CAMPAIGN_NAME__&utm_id=__CAMPAIGN_ID__&utm_term=__AID_NAME__&utm_content=__CID_NAME__&ad_id=__CID__&ad_group_id=__AID__
✍️ Static — manual naming
For organic TikTok posts, bio links, or when you want full control over the names. Replace the placeholder values with your own.
utm_source=tiktok&utm_medium=social&utm_campaign=your_campaign_name&utm_content=bio_link
🛒 E-commerce / Shopify — with placement tracking
Includes placement macro so you can see if conversions came from TikTok feed, Pangle, or other placements.
utm_source=tiktok&utm_medium=cpc&utm_campaign=__CAMPAIGN_NAME__&utm_content=__CID_NAME__&placement=__PLACEMENT__&campaign_id=__CAMPAIGN_ID__&ad_id=__CID__
How to Add UTM Parameters in TikTok Ads Manager
TikTok gives you two ways to add UTM parameters: automatically or manually. Here's how both work:
Option 1: URL Auto-attach (easiest)
When creating an ad, go to the Ad details section. Add your destination URL. TikTok will show an "Auto-attach" toggle under the Preview button. Enable it and TikTok will automatically add utm_source=tiktok and utm_medium=paid to all your URLs. You can edit the values if you prefer different naming.
Option 2: Build URL Parameters (more control)
Below the destination URL field, click "Build URL parameters". This opens a form where you can set each UTM parameter individually and choose dynamic macros from a dropdown. This is the best option when you want to include campaign names, ad group names, and creative IDs for granular tracking.
Option 3: Paste a full UTM string manually
You can also build your UTM link using our generator above and paste the full URL (with parameters) directly into the destination URL field. TikTok will detect the parameters automatically and show them in the preview.
Important: Editing a running ad's URL will restart TikTok's learning phase. If you need to add UTMs to live ads, make the change during a low-traffic period or wait for a natural campaign refresh.
TikTok UTM Best Practices
Use dynamic macros instead of manual names
Typing campaign names by hand into every ad URL leads to typos and inconsistencies. Use macros like __CAMPAIGN_NAME__ and TikTok fills in the correct value automatically. One template works across all your campaigns.
Use "cpc" as medium for paid ads, "social" for organic
GA4's default channel groupings map "cpc" to Paid Search and "paid" or "paid_social" to Paid Social. Keep your mediums consistent so TikTok ad traffic doesn't end up in the wrong channel in your reports. Use "social" for organic TikTok posts and bio links.
Always use lowercase for static values
GA4 is case-sensitive. "TikTok" and "tiktok" become two separate rows. Always use "tiktok" as your source. Dynamic macros return whatever you named things in Ads Manager, so keep your campaign names lowercase there too.
Don't duplicate UTM parameters in your URL
If your destination URL already has utm_source=tiktok and you also enable Auto-attach, you'll end up with two utm_source values. GA4 typically uses the last one, which can cause misattribution. Pick one method and stick with it.
Test before you launch
Preview your ad in TikTok Ads Manager and click through to your landing page. Check the URL in your browser — you should see the UTM parameters. Then check GA4's Realtime report to confirm the data is coming through correctly.
Combine UTMs with TikTok Events API (CAPI)
UTM parameters track click-through traffic only. They can't track view-through conversions. For full attribution, pair UTMs with TikTok's Events API, which sends server-side conversion data back to TikTok. UTMs give you the GA4 side of the story; CAPI gives TikTok the data it needs to optimize.
For more naming conventions and general rules, see our UTM best practices guide.
How to See TikTok Ad Data in GA4
Find your TikTok traffic
Go to Reports → Acquisition → Traffic acquisition. Switch the dimension to Session source/medium. Look for "tiktok / cpc" (paid) or "tiktok / social" (organic).
See which campaigns convert
Add Session campaign as a secondary dimension. If you used dynamic macros, you'll see your actual TikTok campaign names here. Compare sessions, conversions, and revenue across campaigns.
See which creatives drive revenue
Build a custom Exploration: go to Explore → Blank. Add Session source, Session campaign, and Session manual ad content (this maps to utm_content, which shows your creative names). Add Revenue and Conversions as metrics. Now you know exactly which TikTok video is making money.
Fix "Unassigned" channel grouping
If your TikTok traffic shows up as "Unassigned" in GA4, you need to create a custom channel group. Go to Admin → Data display → Channel groups. Create a "Paid Social - TikTok" channel where source contains "tiktok" and medium matches "cpc" or "paid". This ensures TikTok traffic is categorized correctly.
For a full walkthrough of GA4 UTM reports, check our UTM parameters guide.
TikTok UTM FAQ
What are TikTok dynamic UTM parameters?
Dynamic UTM parameters (also called macros) are placeholder values like __CAMPAIGN_NAME__ that TikTok automatically replaces with real data when someone clicks your ad. Instead of manually typing campaign names into every URL, you set up the macro once and TikTok fills in the correct values for each campaign, ad group, and creative.
Does TikTok add UTM parameters automatically?
TikTok offers a "URL Auto-attach" feature that automatically adds utm_source=tiktok and utm_medium=paid to your ad URLs. You can enable it in the Ad details section when creating an ad. For more granular tracking with campaign names and creative IDs, use the "Build URL parameters" tool or paste your own UTM string.
What utm_medium should I use for TikTok ads?
Use "cpc" for pay-per-click campaigns or "paid" if you want a broader label. For organic TikTok posts and bio links, use "social". Avoid using "paid_social" unless your GA4 channel groupings are configured to recognize it — otherwise your traffic may show up as "Unassigned".
Do TikTok UTM macros work with Smart+ campaigns?
Smart+ campaigns have some changes to which macros are available. TikTok may limit certain dynamic parameters in the upgraded Smart+ experience. Check TikTok's documentation for the latest list of supported macros for Smart+ campaigns before setting up your tracking.
Can I use UTM parameters on organic TikTok posts?
Yes. If you share a link in your TikTok bio, in a comment, or in a video description, add UTM parameters to that link. Use utm_source=tiktok and utm_medium=social to separate organic TikTok traffic from paid ads in your analytics.
Why is my TikTok traffic showing as "Unassigned" in GA4?
GA4's default channel groupings don't always recognize TikTok traffic correctly. Create a custom channel group in GA4 Admin → Data display → Channel groups. Add a rule where source contains "tiktok" and medium matches your chosen value (cpc, paid, etc.). This puts TikTok into the right bucket.
Do UTM parameters track TikTok view-through conversions?
No. UTM parameters only track click-through traffic — someone who actually clicked your ad and landed on your website. View-through conversions (someone who saw your ad but didn't click) can only be tracked using TikTok Pixel and Events API (CAPI). Use both for complete attribution.
Will editing UTM parameters restart TikTok's learning phase?
Yes. Changing the destination URL on a running ad triggers TikTok to re-review and re-learn. If you need to add UTMs to existing ads, either do it during low-traffic periods or wait for a natural campaign refresh.