Dark Social Attribution: How to Track Revenue From Sources That Never Show Up in GA4
62% of "direct" traffic is dark social — Slack shares, WhatsApp links, private DMs. Here's how to attribute the revenue it's actually driving.
Muzahid Maruf, Founder

Dark Social Attribution: How to Track Revenue From Sources That Never Show Up in GA4
62% of "direct" traffic is dark social — Slack shares, WhatsApp links, private DMs. Here's how to attribute the revenue it's actually driving.
62% of what GA4 labels as "Direct" traffic in SaaS is actually dark social — content shared in Slack channels, WhatsApp groups, private DMs, and email forwarded outside your ESP, according to research compiled by Ahrefs. It is the biggest attribution lie in SaaS, and for the average team it means an estimated 30–40% of their highest-LTV revenue is being credited to a channel that does not actually exist. Dark social attribution is the practice of recovering that revenue by tracking shares that strip referrer data — using first-party links, channel-level UTMs, and cookies that survive the share. This guide shows you how to spot dark social in your own data, three techniques to attribute it, and what good looks like after 30 days.
Key takeaway
Up to 62% of "Direct" traffic in GA4 is mislabelled dark social. For a SaaS team, that hides 30–40% of high-LTV revenue behind a channel name that means "we don't know." Defunding content because GA4 shows no traffic usually means defunding the channel quietly driving your best customers.
Why This Matters for Your Revenue
Dark social misattribution does not just blur a report — it redirects budget toward the wrong channels and hides your best-performing content behind a label that means "we don't know."
How misattribution redirects budget
When a Substack essay or a Twitter/X thread drives a wave of buyers who arrive as "Direct," the content that earned them looks like it generates nothing. So it gets cut. The paid campaign that merely caught those same buyers at the finish line looks like the hero, so its budget doubles. You end up defunding the channel that seeds your highest-LTV customers and overfunding the one that only ever closes them.
Closing the gap between share and charge
The fix is not a new ad platform — it is closing the gap between an untracked share and the eventual Stripe charge. Once a forwarded link still carries a first-party identifier, dark social stops being a black hole and becomes a measurable, comparable channel. Teams that wire this in routinely discover that "Direct" was never a channel at all — it was their best content, mislabelled.
What dark social is
Dark social is traffic from shares that carry no referrer data — private messages, group chats, and forwarded links — so analytics tools cannot see where the visitor came from and default to labelling them "Direct." The term was coined to describe the social sharing that happens off the public feed: not the retweet you can count, but the link someone pastes into a DM, a Slack channel, or a WhatsApp group.
Why analytics tools mislabel it
The mislabelling happens for a simple technical reason. When a link is opened from a native app or an HTTPS page that points to an HTTP destination, the browser sends no Referer header. With no referrer and no UTM parameters on the URL, GA4 has nothing to classify, so the session falls into Direct — the same bucket as someone typing your URL by hand. The result is a channel that is really an absence of data wearing a channel's name.
The six sources that create dark social
Dark social is not one channel — it is six behaviours that all produce the same unlabelled session. Knowing which ones dominate your traffic tells you where to place tracking links first.
Social DMs and community channels
- Private Twitter/X and LinkedIn shares — a link sent in a DM rather than posted publicly. The public post is countable; the DM is not.
- Slack and Discord communities — a member pastes your article into a channel. Every click that follows arrives with no referrer.
Mobile messaging apps
- WhatsApp and Telegram groups — mobile messaging strips referrers almost entirely, and link previews can pre-fetch the page without a UTM.
- Mobile app in-app browsers — links opened inside an app (not the system browser) frequently drop both referrer and cookies.
Email forwards and document links
- Email forwarded outside your ESP — your newsletter is tracked, but the moment a subscriber forwards it to a colleague, the tracking is gone.
- PDF and document links — a link in a deck, an ebook, or a shared Google Doc has no referrer to send.
How to identify dark social in your attribution data
You cannot see dark social directly — but it leaves fingerprints. Three signals, read together, tell you how much of your "Direct" is really dark social.
The Direct-traffic tell — engagement that's too good
Genuine direct traffic (people typing your URL or using a bookmark) is dominated by existing customers and brand searchers — it converts well and bounces little. If your "Direct" segment instead shows long sessions, deep scroll, and first-time visitors landing on a blog post or feature page rather than your homepage, that is not someone typing a deep URL from memory. It is dark social. Nobody types yourdomain.com/blog/long-article-slug by hand.
UTM stripping on mobile vs desktop
Compare the share of Direct traffic by device. Mobile messaging apps strip referrers and UTMs far more aggressively than desktop browsers, so a Direct share that is heavily mobile-skewed is a strong dark social signal. If 70% of your "Direct" sessions are mobile but your product is bought on desktop, those mobile sessions are forwarded links, not loyal returners.
The dark social fingerprint
Put the signals together: a Direct session that is mobile, first-time, lands deep in the site, and shows high engagement is almost certainly a shared link. Tag a sample of these and watch whether they convert at content-channel rates rather than brand-channel rates. They usually do — which is the proof that your content channel is bigger than GA4 admits.
Three techniques to attribute dark social revenue
You cannot recover the referrer after the fact, but you can make future shares self-identifying. These three techniques move dark social out of Direct and onto the channel that earned it.
Technique 1 — Unique tracking links per community and channel
Give every place you post its own first-party short link. The link you drop in your own Slack community is different from the one in your newsletter, which is different from the one in a partner's Discord. When that link is forwarded, it still resolves through your domain and still carries its channel identity — so a share three hops deep is still attributed to the community where it started. This is the single highest-leverage move for dark social.
Technique 2 — Campaign-level UTMs on every piece of content
Bake UTM parameters into the canonical share URL of every article and asset, not just paid placements. When a reader hits the social-share button, the URL they copy already carries utm_source and utm_campaign. The first forward keeps them; even when a later hop strips them, your first-party cookie (set on the first visit) has already captured the source.
Technique 3 — First-party cookies that survive the share
The decisive layer. When a visitor first arrives — even from a stripped link — a first-party pixel sets a vid cookie on your own domain and records whatever context exists (landing page, partial UTM, timestamp). From that moment the visitor is identified across every later session, so when they pay through Stripe weeks later, the charge ties back to the original dark-social click instead of to "Direct." Because the cookie is first-party, it survives Safari ITP where third-party tracking does not. See first-party link tracking after iOS 17 for the cross-domain mechanics.
Dark social by source and attribution difficulty
Not every dark social source is equally recoverable. This table ranks them by how much of your hidden traffic they create and how hard each is to attribute with first-party links.
| Source | Share of dark social | Referrer stripped? | Attribution difficulty |
|---|---|---|---|
| Slack / Discord communities | 26% | Yes | Low — unique link per community |
| WhatsApp / Telegram | 23% | Almost always | Medium — mobile, multi-hop forwards |
| Email forwarded outside ESP | 19% | Yes | Low — UTM survives first forward |
| Private Twitter/X & LinkedIn DMs | 16% | Yes | Medium — no public signal to corroborate |
| In-app browsers (mobile) | 11% | Often | High — cookies often dropped too |
| PDF / document links | 5% | Yes | Low — you control the link at authoring time |
Source share figures derived from Ahrefs and GroupM dark social research, 2024–2025; attribution difficulty per TrackRev implementation data.
Revenue per attributed click by channel
Once dark social is attributed, it stops being a rounding error. Based on TrackRev platform data across SaaS workspaces, community and forwarded-email shares produce some of the highest revenue per click of any channel — because the person doing the sharing is vouching for you.
| Channel | Revenue per click (median) | Click-to-paid rate | Notes |
|---|---|---|---|
| Dark social — community share | $4.10 | 5.8% | Trusted peer recommendation; highest intent |
| Dark social — forwarded email | $3.65 | 5.1% | Forwarded by a colleague; strong context |
| Newsletter (owned) | $2.90 | 4.2% | Warm but broad audience |
| Organic search | $1.20 | 2.1% | High volume, mixed intent |
| Paid social | $0.85 | 1.4% | Cold traffic; needs nurture |
Based on TrackRev platform data, 2026. Median revenue per attributed click; figures vary by price point and ICP.
What good dark social attribution looks like after 30 days
Within a month of putting first-party links and a cookie in place, the "Direct" line in your reports should shrink noticeably as its revenue migrates to named channels. Expect three concrete changes.
Direct shrinks, named channels grow
Direct falls by 25–40% of its former size, your content and community channels grow by roughly the same amount, and at least one channel you were about to cut turns out to be a top-three revenue driver.
The number to watch
The number to watch is the share of total revenue still sitting in Direct — drive it under 15% and your budget decisions are finally based on real channels.
Quick win
Before you build anything, create one unique first-party link for your single largest community (your Slack, your subreddit, your Discord) and use it for two weeks. The revenue that link captures is revenue that was previously invisible — and it usually makes the case for instrumenting the rest.
Track dark social revenue with TrackRev
TrackRev was built for exactly this gap. You create a first-party tracking link per community, channel, or campaign; a single pixel sets a first-party cookie that survives forwarding and Safari ITP; and a restricted Stripe key ties each charge back to the original click — even when the visit arrived with no referrer. The result is a dashboard where dark social is a named, comparable channel with its own revenue per click, not a mystery hiding inside Direct. See how channel-level revenue rolls up in analytics, or read how to track channel revenue without GA4.
When NOT to use TrackRev for this
If your dark social is overwhelmingly anonymous top-of-funnel traffic that never signs up or pays — a viral post that drives readers but no buyers — attribution will not manufacture revenue that is not there, and a simpler analytics tool may be enough. Likewise, if you have no way to place a link in the share (for example, pure word-of-mouth brand mentions with no URL), first-party links cannot capture what was never clicked. TrackRev recovers revenue from shared links; it cannot recover revenue from conversations that never produced one.
Frequently asked questions
- What is dark social in marketing?
- Dark social is web traffic from shares that carry no referrer data — private messages, Slack and Discord channels, WhatsApp groups, and forwarded email. Because analytics tools can't see the source, these visits are labelled "Direct," even though they were driven by content someone shared.
- Why does dark social show up as direct traffic in GA4?
- When a link is opened from a native app or points from an HTTPS page to an HTTP page, the browser sends no referrer header. With no referrer and no UTM parameters, GA4 has nothing to classify the session by, so it defaults to Direct — the same bucket as someone typing your URL by hand.
- How do you track dark social revenue?
- Use a unique first-party tracking link for each community or channel, bake UTM parameters into your canonical share URLs, and set a first-party cookie on the first visit so the visitor stays identified. When they later pay through Stripe, the charge ties back to the original shared click instead of to Direct.
- How much of direct traffic is actually dark social?
- Research compiled by Ahrefs and others consistently puts it around 62% of Direct traffic. For most SaaS teams that translates to 30–40% of their highest-LTV revenue being misattributed to a channel that doesn't really exist.