Most of your link shares are invisible to your analytics. When someone copies 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 is dark social, and depending on whose analysis you read it accounts for the majority of real sharing - a chunk far too large to leave in an undifferentiated bucket.
You cannot see inside a private message, and no tool honestly can. What you can do is tag the link before it is shared, so the click still lands somewhere you named. This piece explains why analytics go blind and what actually recovers signal. It sits alongside the cookieless attribution explainer, which covers the browser-privacy side of the same measurement problem.
What Dark Social Is
The term is not new - Alexis Madrigal coined "dark social" in a 2012 piece for The Atlantic - but privacy changes have made it bigger every year since. It is simply sharing that happens off the open, referrer-passing 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 move your link from one person to another without carrying a referrer. The share is real; the trail is not.
Why GA4 Files It as "Direct"
Attribution runs on the referrer header. When a browser loads your page, it usually reports the site the click came from, and GA4 uses that to assign a channel. Private apps do not send a referrer, so the browser arrives announcing nothing about where it has been. GA4 does the only thing it can with a blank field: it calls the visit Direct, or drops it into Unassigned.
That is why the Direct channel is misleading. Genuine direct traffic - a typed URL, a bookmark - is a small slice of most sites' Direct bucket. The rest is dark social and stripped referrers wearing the same label. A Direct number that climbs without an obvious cause is usually your content being shared privately, not a surge of people memorising your URL.
What You Can and Cannot Recover
Be honest about the ceiling here, because a lot of vendor copy is not. You cannot de-anonymise a private message, and you should be suspicious of any tool that claims to. The individual who shared your link in a group chat is not something you get to see.
What you can recover is the campaign, by tagging the link before it enters the dark. A short link with UTM parameters baked in records the click server-side the moment it resolves - the campaign, the medium, the destination - whether or not a referrer travels. So a link you tagged as newsletter-june still reports as newsletter-june when it is forwarded by email three times, instead of collapsing into Direct. You trade "who shared it" (unknowable) for "which campaign it came from" (recoverable), and the second is what actually informs budget.
How to Set It Up
The practical playbook is small and worth doing before your next campaign:
- Give every shareable link a tagged short link - UTM parameters for the campaign, wrapped in one short URL. The UTM parameters explainer covers the tags; the how to track social media links guide covers the wrapping.
- Use a distinct short link per channel and campaign, so a forward keeps its label.
- Read the short link's own click analytics, not just GA4's channel report - the shortener counts the click even when GA4 files it as Direct.
- Treat a large or growing Direct bucket as a dark-social signal, and compare it against your short-link click totals to size the gap.
That is where a shortener earns its place in the measurement stack: it records the click at the redirect, in privacy-first analytics that do not depend on a referrer or a cookie. Start tagging your shared links and the Direct bucket stops swallowing your best channel.
Dark social is not a problem you solve; it is one you instrument around. You will never see every share, but you can stop pretending the ones you cannot see came from nowhere.
Read the Cornerstone Series
This sits in the features cluster. The related measurement reads are the cookieless attribution explainer and, for the tags themselves, UTM parameters explained.
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.
Try Elido
Paste a URL, get a working short link
No signup. Link lives for 30 days. Sign up to keep it forever.
Free, no signup required · 2 per day