Why Launch Traffic Shows Up as Direct
You launch on five platforms, open your analytics the next morning, and most of the visits are labelled "Direct" or "None". It's tempting to think nobody came from the launch. Usually the visits did come from it; your analytics just couldn't tell.
Analytics tools work out where a visit came from mainly by reading the referrer: the address of the page the visitor was on when they clicked. That signal is less reliable than it looks:
- Browsers send less of it. The default policy in modern browsers sends only the site's domain on cross-site clicks, not the full page address, so you often see "producthunt.com" but not which page.
- Links can drop it entirely. A link marked
rel="noreferrer", or a site with a strict referrer policy, sends nothing at all. - Apps don't send one. Clicks from the X, Slack, Discord or email apps usually open your site with no referrer, so they land in Direct.
- Privacy tools strip it. Some browsers and extensions remove or trim referrers on purpose.
The fix isn't to trust the referrer more. It's to label your links yourself, so the source travels inside the link where nothing can strip it.
UTM Tags in Two Minutes
UTM tags are extra parameters at the end of a link that tell analytics tools where a click came from. Almost every analytics product reads them. The three that matter:
| Parameter | What it means | Example |
|---|---|---|
utm_source | The site that sent the click | hauntboard, reddit, newsletter |
utm_medium | The kind of channel | referral, social, email |
utm_campaign | Which effort it belongs to | launch-week, v2 |
A tagged link looks like this:
https://yourapp.com/?utm_source=reddit&utm_medium=social&utm_campaign=launch-week
Keep the values lowercase and consistent. "Reddit", "reddit" and "reddit.com" show up as three different sources in most tools, which splits your numbers into pieces too small to read.
The ref Tag
Many indie-friendly analytics tools also read a shorter tag: ?ref=name. Plausible, for example, treats ref, source and utm_source as ways of naming the source. It's easier to type by hand and reads cleanly when people see it.
Some launch boards add tags for you. On Hauntboard, every "Visit" button on a launch page adds ref=hauntboard, utm_source=hauntboard and utm_medium=referral to your link automatically, and keeps any parameters your link already had. So Hauntboard visits show up under their own name in Plausible, Umami, Fathom, Google Analytics 4 and PostHog, even when the referrer is stripped. If your link already contains your own tags, those win.
Tags don't change your link for search engines in any way that matters: the address people land on is the same page.
One Link per Platform
Before launch week, make a short table of every place you'll post, and give each one its own tagged link:
| Where | Link to use |
|---|---|
| Your X post | ?utm_source=x |
| Reddit post | ?utm_source=reddit |
| Newsletter or email | ?utm_source=newsletter |
| Launch boards that don't tag for you | ?ref=boardname |
Two cautions. First, some communities dislike long tracking links in posts; where it would look spammy, use a plain link and accept that those visits may land in Direct. Second, never tag internal links on your own site, because doing so overwrites the real source of a visitor who's already there.
Where to Look in Your Analytics
- Plausible: the Sources panel lists each source by name; switch to the UTM tabs to see medium and campaign.
- Google Analytics 4: open the traffic acquisition report and change the dimension to "Session source / medium". Visits tagged
utm_medium=referralare grouped under the Referral channel. - Umami: the referrers and UTM views both show tagged sources.
- PostHog: UTM values are stored on events and people, so you can filter signups by
utm_source, which is the number that really matters.
Look at sources over the whole launch week, not just day one. Launch boards keep sending visits for days, and a permanent launch page can keep sending them for months through search.
Why the Numbers Never Match
If a launch board says it sent you 120 visits and your analytics shows 85, nobody is necessarily lying. The two are counting different things:
- Different rules. Hauntboard counts a click on the Visit button, once per browser per launch per day, with known bots filtered out. Your analytics usually counts sessions or page views when your page finishes loading.
- People leave before your page loads. A click that's counted on the board, then abandoned while your site is still loading, never reaches your analytics. A slow site loses more of these.
- Blockers. Ad and tracker blockers often block analytics scripts, so some real visitors never appear in your dashboard at all. Privacy-focused, cookieless tools tend to be blocked less often, but not never.
- Time zones. A board counting in UTC and a dashboard set to your local time split days differently.
Expect the board's number and yours to be in the same range, not identical. If they're wildly apart, check that your analytics script loads on the exact page you linked, and that a redirect isn't dropping your tags.
What to Actually Measure
Visits tell you whether a platform put you in front of people. They don't tell you whether the platform was worth it. For each source, write down three numbers at the end of launch week:
- Visits from that source.
- Signups or trials from that source.
- Conversations: replies, emails or feedback from people who came from it.
A platform that sent 40 visits and five signups beat one that sent 400 visits and none. Next launch, spend your time where the right people were, not where the most people were.
Every launch on Hauntboard shows its visits in public, on its launch page and on the open stats page, so you can compare what we sent with what your analytics saw. For the bigger picture of getting found, read how to get traffic to a brand-new website.