Skip to content

How to track TikTok ads in GA4, step by step

Switch on Auto-attach in TikTok Ads Manager, or build UTM parameters with TikTok's macros, so each click reaches GA4 with one source and medium. Check it lands in Paid Social, then connect TikTok under Admin > Data import so cost sits next to revenue.

By , Founder & CEOUpdated 8 min read

Run the numbers for your store: the free break-even ROAS calculator.

To track TikTok ads in GA4, you usually tag every TikTok ad URL with one source and one medium, most easily with Auto-attach. Then check that test clicks land in Paid Social. Connect TikTok under Admin > Data import, so GA4 can set TikTok's cost next to the revenue it credits.

Keep the plain answer open for the why. This page is the clicks, in the order you make them.

Step by step

  1. Pick one source and one medium for paid TikTok traffic. GA4's TikTok import takes one value of each, as in utm_source=tiktok with utm_medium=paid. If you use Auto-attach, note the exact values it writes, capitals included. Where: GA4 Help, Connect TikTok to Google Analytics, Prerequisites.
  2. Switch on Auto-attach. In TikTok Ads Manager, go to the Ad details section and add a Destination URL. Click Edit under the Preview button and toggle Auto-attach, which fills in source, medium, campaign ID and campaign name. Path: Ad details > Destination URL > Edit > Auto-attach.
  3. Or build the parameters by hand. Click Edit under the Preview button, then Build URL parameters under URL, and fill in the UTM parameters fields. Use TikTok's macros, such as __CAMPAIGN_NAME__ and __CID_NAME__, so each ad sends its own names, then click Apply. Path: Ad details > Edit > Build URL parameters > Apply.
  4. Keep the URL clean. TikTok's help says everything after a # sign is dropped from the URL. It also warns that with a duplicate utm_source, an analytics tool may keep only the last value. Where: TikTok Help, Best practices when adding UTM parameters.
  5. Leave TikTok's click ID alone. Real ad clicks also carry a ttclid parameter, which TikTok uses for its own attribution. TikTok's help says it does not affect your other tracking parameters. Where: TikTok Help, About TikTok Click ID.
  6. Preview the link and watch the address bar. Click Preview next to the new URL to open it in a browser. The utm_ values should still be there once the page loads, because a redirect that strips them sends the visit to Direct. Path: Ad details > URL > Preview.
  7. Find the click in the right GA4 report. Reports > Realtime shows the visit landing, but its source cards skip new or unprocessed users. GA4's help points to the Acquisition reports for attribution instead. Path: Reports > Acquisition > Traffic acquisition, then search tiktok / paid.
  8. Check the channel, not just the row. Switch the table to Session default channel group and look for the visit under Paid Social. GA4's source list files tiktok and tiktok.com as social sites, and paid passes its paid-medium rule. Path: Reports > Acquisition > Traffic acquisition.
  9. Give TikTok its own row, if you want one. In Admin, under Data display, click Channel groups, then Create new channel group. Add a channel called TikTok Ads for source tiktok and medium paid, click Reorder, drag it above Paid Social and click Save group. Traffic goes to the first channel it matches, so the order matters.
  10. Import TikTok's cost. You need Editor access in GA4 and at least Analyst in TikTok Ads. In Admin, under Data collection and modification, click Data import, then Create import source; select Campaign data and TikTok, then Connect and sign in. Pick the Business and Ad account, enter your source and medium from step 1, and click Finish.
  11. Read cost next to revenue. Imported cost shows under Reports > Acquisition > Non Google campaign, and in Planning > All channels. Imports can take up to 24 hours to reach reports.
  12. See where TikTok sits in purchase paths. Click Advertising, then Attribution paths under Attribution, and switch the table to Source. Custom channel groups do not work in this report, so look for tiktok by source. Path: Advertising > Attribution > Attribution paths.

A worked example

Take one store's export. On its Channels sheet, Paid Social and Organic Video hold 0.0% of revenue in all three views, and Direct holds 57.7%. Whatever TikTok did for that store, GA4 never filed a revenue journey under Paid Social or Organic Video.

For illustration, say a store with an export like that launches its first TikTok campaign, called Spring Drop. Built by hand in step 3, its destination URL ends like this:

?utm_source=tiktok&utm_medium=paid&utm_campaign=__CAMPAIGN_NAME__&utm_id=__CAMPAIGN_ID__&utm_term=__AID_NAME__&utm_content=__CID_NAME__

When someone clicks, TikTok swaps each macro for the real name or ID of the campaign, ad group or creative. GA4 then logs a tiktok / paid session in Paid Social, with Spring Drop as the Session campaign. The utm_id carries the campaign ID, which the cost import uses to join spend to that campaign.

Now the first comparison. For illustration, say TikTok Ads Manager reports 40 purchases in week one, while GA4 credits 25 to tiktok / paid. Before you blame the tags, split TikTok's count into click-through, engaged view-through and view-through columns. If the view columns hold 15 of the 40, the tags are fine: GA4 could never see those.

Then wait for the next export. Pass: the Paid Social row on its Channels sheet rises above 0.0% once tagged TikTok clicks sit on journeys that end in a sale. Fail: the Channels sheet still shows 0.0% while Traffic acquisition shows tiktok / paid sessions. Then the clicks arrive but do not sit on buying journeys, which is a job for a holdout test, not for tags.

What to check when the report looks wrong

  • TikTok shows under Organic Social or Organic Video. The medium failed GA4's paid test. TikTok's own help lists video as an example medium, and video fails that test, while paid, cpc and cpm pass.
  • TikTok shows under Paid Shopping. Your campaign name contains the word shop or shopping. GA4's Paid Shopping rule catches paid campaigns named that way, and it sits above Paid Social in GA4's list.
  • TikTok shows under Paid Other or Unassigned. GA4 does not know the source as social, or the medium matches no rule. Go back to step 1.
  • Clicks show, cost does not. The import's source and medium must match your tags exactly. GA4's help gives Facebook and facebook as values that do not match.
  • Cost looks doubled. You uploaded TikTok cost by hand before connecting. GA4 does not de-duplicate the two methods, so delete the old upload.
  • You need to change the connector. Its ad account, source and medium cannot be edited once it exists. Delete it and create a new one.
  • TikTok claims far more sales than GA4. That is normal up to a point, because TikTok's Conversions column includes engaged view-through conversions. Compare click-through numbers only, over the same days.

What to do this week

  1. Audit three live ads. In TikTok Ads Manager, open each ad's Ad details and click Edit under the Preview button to see its URL parameters. Pass: all three carry the same source and medium. Fail: mixed spellings or none at all, so fix them before you connect the import, which takes one pair.
  2. Test one click per new campaign. Click Preview on the ad's URL, then check Reports > Acquisition > Traffic acquisition once the data is processed. Pass: a tiktok / paid row under Paid Social. Fail: the visit shows as Direct or Organic Social, so look for a redirect or a medium that misses GA4's paid rule.
  3. Read TikTok's place in your paths. In GA4, click Advertising, then Attribution paths, and set the table to Source. Pass: tiktok shows up on paths that end in a purchase. Fail: it never appears, so the tags are not reaching buying sessions yet.

Check the homework. Your GA4 Attribution paths export already holds the evidence. Causality Engine reads that one file and shows what each channel caused next to what last-click gave it, in 1 to 2 minutes, for €99 once (excluding VAT), refundable within 30 days. Check the homework

Sources, 1 October 2026: Connect TikTok to Google Analytics (Google); Import campaign data (Google); Default channel group (Google); GA4 default-channel-group sources and categories (Google); Custom channel groups (Google); Realtime report (Google); Traffic acquisition report (Google); Understand (direct) / (none) traffic (Google); Get started with attribution (Google); Key events attribution paths report (Google); How to add URL parameters to your website URL in TikTok Ads Manager (TikTok); About UTM parameters (TikTok); Best practices when adding UTM parameters (TikTok); About TikTok Click ID (TikTok); About Engaged View-Through Attribution (TikTok)

Frequently asked questions

  • How long does TikTok cost data take to appear in GA4?
    Up to a day. GA4's help says a TikTok import can take up to 30 minutes to finish and up to 24 hours to reach reports. The first run tries to pull at least 24 months of history, so clear older manual TikTok cost uploads first.
  • What does utm_id do on a TikTok ad?
    It carries the campaign ID, so GA4 can join imported cost to the right campaign. Fill it with TikTok's campaign ID macro and each ad sends its own campaign's ID. GA4's help calls utm_id optional for the TikTok import, but highly recommended.
  • Can I see TikTok as its own channel in GA4?
    Yes, with a custom channel group. A standard property allows two custom groups on top of the default one. Add a TikTok channel above Paid Social and save. It works in the Acquisition reports, but not in the key events attribution paths report.

Go deeper: Causal attribution, explained.

Sixty-second versions of these ideas: Causality Engine on YouTube Shorts.

Keep reading

Terms in this article

Browse the full glossary

Your platforms guess.
We run the math.

Upload a GA4 export and see what each channel caused, next to last-click, in 1–2 minutes. The read is yours to keep.

Free, in your browser: your file is not uploaded. The full read is €99, refundable within 30 days. Prices exclude VAT.
Or book a 30-min call.