TikTok shares in DMs show up as Direct because the messaging app does not pass a referrer. You cannot see who shared the video. TikTok does not reveal that. The fix credits the video anyway: put a unique UTM link on the post before anyone copies it, and store those parameters on the form.

When someone pastes the link into iMessage, WhatsApp, Slack, or email, the parameters travel with the URL. The lead can still say which video it came from. A screenshot, or a person who types your domain from memory, has no link to carry. That visit stays Direct. Tagging does not recover it.

Untagged share → Direct, no video on the lead. Tagged link copied into a DM → same privacy, and the video is on the form submission.

Why do TikTok shares show up as Direct?

TikTok shares show up as Direct because the messaging app that opens a shared link passes no referrer. You cannot see who shared a video. You can credit the video by putting a unique UTM link on the post before it is copied, then storing those tags on your form. Tools like Trakt build tagged links.

Quick start: Start free with Trakt to create a unique tagged link for each TikTok video and record each form submission with its source. Or follow the manual steps below.

A click inside TikTok can arrive with a referrer, or with the UTMs you put on the destination. A share moves the URL into another app. That app opens the phone's browser, or an in-app browser, without telling your site that TikTok was the previous stop. Analytics files the visit as direct.

This is the gap that makes a video look busy in TikTok and empty in the CRM on the same day. The share count goes up. The leads, if they used an untagged link or no link, have no campaign on them. The TikTok attribution playbook is the wider setup. This page is the share-and-DM piece.

Three paths, and only one of them is fixable after the fact:

How they arrivedWhat your site receivesWhat you can still do
Tap a link that already has UTMs, including a link pasted into a DMThe parameters on the URLStore them on the form. The video can be on the lead.
Tap TikTok's profile QR, or an untagged bio linkA visit with no campaignYou see traffic. You cannot assign it to a video later.
Screenshot, or they type the domain, or they search your nameNo TikTok URL at allStays direct or organic search. Ask on the form if you need a hint.

Can you see who shared your TikTok video?

No. TikTok shows a share count on the post. It does not list the accounts that shared it or the apps they used. That is a privacy limit, and a tracking setup does not remove it.

What you can name is the video, if the link they forwarded was already tagged. You learn that leads came from video-spring-01. You do not learn that a specific person sent it to a group chat. For creator posts you are paying to boost, the same limit applies, and the paid-versus-bio split is in TikTok Spark Ads tracking.

Stop waiting for a "who shared" export. Put the video's identity on the link you control.

How do you fix dark social on TikTok?

Do this before the video is posted. A share of an untagged link cannot be relabeled later.

  1. One link per video. utm_source=tiktok, utm_medium=social, utm_campaign for the series, utm_content for that video. Lowercase, hyphens, no spaces. The full parameter set is in TikTok UTM parameters. Build it in the UTM builder so it matches the ads.
  2. Put that link where people copy from. The bio, the first comment, and the caption if you want the share to carry it. TikTok's profile QR opens the account and has no UTM slot. A QR code you generate is a different asset, for print and for camera scans, with utm_medium=qr.
  3. Keep the query string on the way in. If you shorten the link, open the short URL on a phone, then copy it into a notes app and open it again. The final address bar should still show utm_content. A shortener that strips parameters recreates the Direct problem.
  4. Store the parameters on the submission. The lead record needs source, medium, campaign, and content. Trakt forms include those fields plus term and id, filled by the tracking snippet. The form scanner adopts forms already on the site.
  5. Check with a paste, not only a click inside TikTok. Copy the link, paste it into a chat you control, tap it, submit the form. The lead should show the video in utm_content. A test that only clicks inside TikTok never exercises the DM path.

Illustrative link for one video. The slug is an example:

https://example.com/demo?utm_source=tiktok&utm_medium=social&utm_campaign=spring-series&utm_content=video-spring-01

Someone can forward that exact string. The campaign survives the forward. The identity of the person who forwarded it does not, and it does not need to. You are deciding whether that video earns more budget.

If you want one tagged link per video built in one place instead of a spreadsheet, pre-register for Trakt.

What should you do when Direct already spiked?

Match the leads you can, and label the rest honestly.

Leads that arrived through the tagged link will show that video in utm_content, including people who pasted it into a chat. Count those against the video. That is the share traffic that stayed measurable.

The rest of a Direct spike is visits with no parameters: typed domains, brand search, screenshots, and old bookmarks. You cannot assign those to a TikTok video from the URL. Two practical reads:

  • Compare the hour of the spike with the hour the video took off. That is a clue, and it is not a source you should write onto the lead as if it were measured.
  • Add a "how did you hear about us?" field for the untagged remainder. Self-reported attribution is how to word it so the answers can be reconciled with the UTMs, rather than replacing them.

Why leads show as direct covers the other ways a real campaign gets wiped: the form drops the fields, or a later visit overwrites the first one. TikTok analytics is why the in-app share count will not close this by itself.

If you want the link's parameters on the lead when the referrer is gone, pre-register for Trakt. The form keeps the source that was on the URL, which is the part a DM still carries.

Questions

How do you fix dark social on TikTok?

Tag each video's link before you publish it: utm_source=tiktok, utm_medium=social, a campaign, and utm_content set to that video. Put the link where people copy it. Store those parameters on the form. A DM that forwards the link still carries the video. A screenshot or a typed domain does not.

Can you see who shared your TikTok video?

TikTok shows how many shares a post got. It does not show who shared it or which app they used. A tagged link tells you which video the lead came from. It does not name the person who forwarded the link.

Why do TikTok DMs show up as direct traffic?

The messaging app opens your site without a referrer, so analytics has no TikTok source to record. UTM parameters on the copied link are still in the URL. If the form stores them, the visit is direct in the referrer sense and still attributed in the CRM.

What UTMs should a TikTok share link use?

utm_source=tiktok, utm_medium=social, utm_campaign for the series, and utm_content for the video or creator. Use spark only on the paid Spark Ad destination, and qr only on a code you print. Mixing those mediums makes shares, boosts, and scans look like one action.

Can I fix a TikTok video that was shared with no UTMs?

You can tag the next link. You cannot rewrite shares that already went out with a bare URL. Leads from those shares stay unassigned unless the person tells you on the form. Put the tagged link in the bio and the comment before the next post.