Ask them how they found you

One optional question on a signup form knows things your analytics is structurally incapable of recording.

Four answers, typed into a small box under a signup form. A friend sent me a screenshot. Some podcast, I cannot remember which one. Google. You replied to somebody on a forum in March and I saved it. Now go and look at what your analytics recorded for those same four people: two direct visits, one search, and one visit that arrived with no useful label at all. Both records are accurate. Only one of them contains a reason.

The gap is not a flaw in your measurement, and no amount of tidier tagging closes it. A link tag records the click it was attached to, which means it credits the last thing someone tapped and knows nothing about what happened before. We have written before about link tags being labels for traffic rather than a full account of why anyone came — this is the other half of that sentence. The screenshot a friend sent lives in a chat app you will never see. The podcast mention was audio. The forum reply was eighteen months ago. None of those events happen inside a browser you own, so none of them can possibly show up in a report you own.

The fix costs one input box. On the signup form, or on the screen immediately after it, a single optional question: how did you hear about us? Optional matters — this is the moment somebody is finally handing you an account, and a required question is a wall placed directly in front of a person who had already decided to say yes. Put it after the commitment, never before it. And leave it as free text rather than a dropdown, at least at first: a dropdown gives you tidy rows and quietly teaches people your list of answers, which means it can only ever confirm the channels you already thought of. Free text is messy and it is the only version that can surprise you.

The arithmetic is worth doing with plausible invented numbers, because it shows what size of product this works for. Suppose two hundred people sign up in a month and, optional question being optional, half of them type something. That is a hundred answers, which is twenty minutes of reading and grouping by hand — no tooling required, and honestly better done by hand at this scale. Suppose twenty of those hundred name the same podcast. You have just found a channel that appears nowhere in any dashboard you own, sending you a fifth of your signups, and the only reason you know is that you asked. Meanwhile the same hundred people show up in your analytics as a spread of direct and search rows that say nothing about any of it.

analytics can tell you where the click came from. only a person can tell you why they came at all.

Read the answers with their biases in plain view, though, because they have several and they all point the same way. People name the last thing they remember, not the first thing that moved them — the friend told them in June, they searched the product name in August, and they will honestly write Google. Which is exactly why brand searches deserve to be separated from everything else: a search for your own name mostly measures who already knew about you, and it will keep collecting credit for work that some other channel did. Nobody recalls the first touch. Self-reported answers are excellent at discovering channels you were not counting and unreliable about proportions, so use them for the first job and not the second.

What you do with them is a pairing rather than a sum, and this is where people go wrong by trying to be rigorous. Do not add self-reported numbers to analytics numbers; they are counting different things with different coverage and the total means nothing. Use the answers to find the channels you cannot measure at all — word of mouth, a podcast, a newsletter that mentioned you, an old forum reply still working away — and use your own analytics for the ones you can. The decision it changes is small and concrete: where the next thirty minutes go. A channel that twenty people named out loud has earned a place in the rotation ahead of one that produced a chart you have been squinting at.

Two cautions, both cheap to respect. Keep it to one question, because a signup form that grows a second and third profiling field stops being a signup form and starts being a survey, and the completion rate goes with it. And keep the answer out of your links: it is a note about a person, it belongs wherever you keep account records, and a link is the last place anybody's details should live, since links get stored, exported, screenshotted and passed onward long after you forgot about them. One box, one sentence, kept somewhere sensible.

It is worth being precise about where a system like ours helps and where it structurally cannot. The metrics your connected tools report — sessions, positions, spend, revenue, the events you push to us yourself — land on one screen, and when something is not connected the panel says so plainly rather than drawing a zero you might read as a result. But no provider anywhere reports the sentence a friend sent in a private message. That is the one input nothing can pull for you, which is precisely why it is worth collecting by hand, and why the twenty minutes a month spent reading those answers buys information nothing on the automated side of the room can replace.

The takeaway is one line, and it is unglamorous enough that most people skip it for years: the cheapest research available to a small product is a text box and a question, read once a month by the person who has to decide where the time goes. Your dashboards will keep getting better at telling you what happened. They will never once tell you why somebody bothered.

These notes come from building SiteOps

Get started