Starter setup
Use utm_source=tiktok, utm_medium=paid_social, and a readable campaign name.
TikTok tracking guide
Use a clean TikTok landing page URL, verify the click path in GA4 Realtime, and only add TikTok placeholders after the static UTM version works.
Use utm_source=tiktok, utm_medium=paid_social, and a readable campaign name.
Clicks work, but redirects, app browsers, or tag setup make GA4 show missing or inconsistent campaign fields.
The live click path opens the right page and GA4 Realtime shows TikTok as the source.
Treat this as a starter pattern until the exact behavior is verified in the live TikTok Ads account.
| Problem | Likely reason | Check next |
|---|---|---|
| GA4 does not show TikTok | UTMs stripped or tag not firing. | Redirects, public URL, GA4 tag, consent settings. |
| Campaign values are unreadable | Too much dynamic detail in one field. | Keep campaign static and move creative detail to content. |
| Placeholders do not expand | Wrong token format or unsupported context. | Verify the placeholder in the TikTok Ads account before spend. |
| First page works, revenue does not | Checkout or ecommerce event setup is separate. | Check event path after page view, not only the URL. |
TikTok FAQ
TikTok traffic may be missing or messy because UTMs were not added, redirects stripped the query string, the in-app browser behaved differently from a normal browser, the GA4 tag did not fire, or dynamic placeholders did not expand as expected.
A safe first test is utm_source=tiktok, utm_medium=paid_social, a readable utm_campaign value, and a simple utm_content value for the creative or video angle. Keep it static until the click appears in GA4 Realtime.
Do not start with dynamic placeholders if the basic UTM click has not been verified. First prove a static URL in GA4 Realtime, then test campaign, ad group, or ad placeholders one at a time.
That one habit makes TikTok tracking much easier for a small ecommerce team to debug.