Most of your link shares are invisible to your analytics. When someone pastes your URL into WhatsApp, an email or a Slack DM and the recipient clicks it, no referrer travels with the link, so GA4 files the visit under "Direct" or "Unassigned". That's dark social. You can't see inside the private message, and no tool honestly can. What you can do is tag the link before it's shared, so the click still lands in a bucket you named.
This guide covers why analytics go blind, what a tagged short link recovers, and where it still falls short. It sits next to the cookieless attribution explainer, which covers the browser-privacy side of the same measurement problem.
What dark social is
Dark social is the main blind spot of marketing attribution. Alexis Madrigal coined the term in a 2012 piece for The Atlantic, and the problem hasn't gone away. It's sharing that happens off the open web:
- WhatsApp, Telegram and Signal messages.
- Email, from a newsletter forward to a one-to-one note.
- LinkedIn DMs, Slack and Microsoft Teams.
- Private forums and group chats.
All of these pass your link along with no referrer. Real share, no trail.
Why GA4 files it as Direct
Attribution leans on the referrer header. When a browser loads your page it usually reports the site the click came from, and GA4 uses that to pick a channel. Private apps don't send one. Google's own channel documentation (accessed 2026-10-25) describes Direct as the channel for users who arrive "via a saved link or by entering your URL", and says Unassigned is the value used when no other channel rule matches the event data. A forwarded link fits neither description, yet it lands in one of them anyway because nothing else matches.
That makes the Direct channel misleading. Typed URLs and bookmarks are a small part. The rest is dark social and stripped referrers wearing the same label. If your Direct line climbs with no obvious cause, I'd suspect private sharing before I'd suspect a surge of people memorising your URL. AI assistants add a second contributor to the same bucket; tracking traffic from ChatGPT shows how much of one assistant's traffic arrives with no referrer.
How big is the bucket? Vendor analyses put it well above half of real sharing, for example this SearchSignal write-up (accessed 2026-10-25), but those numbers come from the vendors' own panels and I wouldn't quote any single percentage as fact. Measure your own gap instead.
What you can and can't recover
Be honest about the ceiling, because a lot of vendor copy isn't. You can't de-anonymise a private message. The person who dropped your link in a group chat stays unknown, and you should distrust any tool that says otherwise.
What you can recover is the campaign, by tagging the link before it enters the dark. A short link with UTM parameters in its destination records the click at the redirect, whether or not a referrer travels. The tagging also decides which touch each model in first touch vs last touch attribution can see at all. A link you tagged newsletter-june still reports as newsletter-june after it's forwarded three times, instead of collapsing into Direct. You trade "who shared it" for "which campaign it came from". The first is unknowable. The second is what informs budget.
What the short link's own report shows
Here's the part most posts skip. The shortener's report has the same blind spot. Elido's edge stores whatever Referer header the request carries, and a click from a private app has none, so it appears as "direct" in the top-referrers list. In the demo workspace below, "direct" is the biggest referrer row at 8.1k of 27.1k clicks.
Demo workspace with synthetic example data, not customer results.
So the referrer column won't rescue you. The value is in the link itself: each short link has its own click count, so a link made only for one newsletter, one WhatsApp broadcast or one partner email answers "which share drove this" even when the referrer is blank. The destination's UTM tags carry the same label into GA4, so a forwarded click can show up there under your campaign name instead of Direct. Only as long as the forwarder passes the whole short link along, of course; if someone strips the query string off the destination page and re-shares the bare URL, the trail ends.
How to set it up
The playbook is small and worth doing before your next campaign:
- Give every shareable link a tagged short link. The link-creation dialog in the dashboard includes a UTM builder, and workspaces can also group links in a campaign with shared source, medium and campaign fields. The UTM parameters explainer covers the tags, and how to track social media links covers the wrapping.
- Make one short link per channel and per send. One link posted to six places can't say which one worked.
- Keep tag names consistent.
Newsletter,newsletterandnews-letterbecome three rows in GA4; UTM naming conventions has a scheme that holds up. - Read the short link's click totals next to GA4's channel report. The shortener counts the click even when GA4 files the session as Direct, so the difference sizes your gap.
- Treat a growing Direct bucket as a dark-social signal and check it against the send calendar. A spike the morning after a send is a forward, not a bookmark.
A caveat on step 4: clicks and GA4 sessions will never match exactly, because of bots, blockers and consent. Clicks vs GA4 sessions explains the usual gap, so compare trends, not single days.
Where this still falls short
Tagging doesn't help with links nobody tagged. Someone copying your plain homepage URL out of the address bar and pasting it into a chat is invisible to any shortener. Mobile apps that open links in an in-app browser can also drop or rewrite parameters on some platforms, which is part of why browsers strip UTM parameters is worth reading before you trust one number. And a click is only a click. It says nothing about whether anyone read the page or bought.
For the pieces that do work, privacy-first analytics at the redirect don't depend on a referrer or a cookie. Start tagging your shared links and the Direct bucket stops swallowing your best channel.
Dark social isn't a problem you solve; it's one you instrument around. You'll never see every share, but you can stop pretending the ones you can't see came from nowhere.
Related on the blog
Frequently asked questions
What is dark social?
Dark social is sharing that happens in private channels - WhatsApp, Telegram, email, LinkedIn DMs, Slack, Teams - where no referrer travels with the link. When someone clicks a link shared that way, your analytics cannot see where it came from, so the visit looks like it appeared out of nowhere. The term was coined by Alexis Madrigal in The Atlantic in 2012.
Why does GA4 miss dark social?
Because attribution depends on a referrer header, and private apps do not send one. When a link is copied into a WhatsApp message or an email and clicked, the browser reports no referring site, so GA4 files the visit under Direct or Unassigned. It is not a GA4 bug - the information genuinely is not there to capture.
How much traffic is dark social?
Estimates vary by source and audience, but they are large: analyses commonly put the share of invisible or misattributed sharing well above half, and a big chunk of what GA4 labels Direct is really dark social. Treat the exact percentage as directional; the point is that it is too big to ignore, not that it is precisely one number.
How do I track dark social?
You cannot see inside the private message, but you can tag the link before it is shared. A UTM-tagged short link records the click, the campaign, and the destination regardless of whether a referrer travels, so a dark-social click still lands in a bucket you named rather than in undifferentiated Direct. It shifts what you can measure from the source to the campaign.
Is direct traffic really dark social?
A large share of it is. Genuine direct traffic - someone typing your URL or using a bookmark - is a small fraction of most sites' Direct bucket. The rest is usually dark social plus stripped referrers, which is why a growing Direct channel with no obvious cause is often a sign your shares are being shared onward privately.
Can a short link recover who shared my link?
No. A short link records the click (time, country, device, referrer if one exists) and which link it was, not the person who forwarded it. What you recover is the campaign: a link you made for the June newsletter keeps that name however many times it's forwarded. Any tool claiming to name the individual sharer in a private chat is guessing.
Try Elido
Paste a URL, get a working short link
No signup. Link lives for 30 days. Sign up to keep it forever.
No signup needed. Sign up free for 50 links a month.