“How did you hear about us” options: the list that works for mobile apps

Most “how did you hear about us” templates you’ll find were written for ecommerce checkouts and B2B demo forms. They list “trade show” and “email newsletter” and “blog post,” and a mobile growth team copies one, swaps a few lines, and ships it. Then the answers come back and half of installs picked “Google” because nothing on the list described how people actually find apps.

The option list is the survey. The question is one line and nobody gets it wrong; the list underneath decides whether the answer can be trusted. So here is a list built for mobile, and — more useful — the reasoning behind every line, because your channel mix isn’t ours and you should be able to edit it without breaking it.

The template

Twelve options, one screen, no scrolling:

Present them in randomized order per impression — never alphabetical, never fixed — with the two exceptions that “I don’t remember” stays pinned last and the follow-ups only appear after their parent is picked. The methodology page covers why fixed order quietly corrupts the data; the short version is that whatever you list first collects taps it didn’t earn.

Why these lines and not others

The social platforms get separate lines. TikTok, Instagram/Facebook, YouTube, and Reddit are different acquisition stories with different costs, different creative, and different teams spending against them. Collapse them into “social media” and the answer is unactionable — you can’t reallocate budget toward “social media.” Split them, and note one deliberate merge: Instagram and Facebook share a line because users frequently can’t tell which app served the ad (the placements interleave), and a merged answer that’s honest beats a split answer that’s a coin flip.

The store is two lines, not one. Someone who tapped a paid placement while searching the App Store and someone who found you browsing a top-charts list are different stories — one is your Apple Search Ads budget working, the other is organic store discovery. Last-click attribution frequently books both as the same opaque line, which is exactly why the survey should keep them apart. Phrase it from the user’s point of view: “an ad while searching the store” and “browsing or searching the store.” Nobody outside your growth team knows what “Apple Search Ads” means, and an option the user doesn’t recognize is an option that miscounts.

Podcast and creator get the follow-up treatment. A checkbox that says “podcast” tells you the medium moved an install but not which show — and the show is the budget decision. You can’t list every show as an option, so the line opens a constrained type-ahead that completes against known shows and handles. The person commits to the category, then refines. This is the one place typed input belongs in this survey; the survey configuration page describes how the layering works. What you should not do is leave a bare “influencer” bucket and call it measured.

“Friend, family, or coworker” is one line. Word of mouth subdivides poorly — people don’t reliably distinguish “friend” from “coworker,” and you’d make no different decision either way. One clean line captures the channel that’s genuinely dark to every other measurement tool you run.

“I don’t remember” is load-bearing. It looks like a throwaway and it is the most protective line on the list. Without it, the person who genuinely can’t recall taps something plausible, and that guess is indistinguishable from a real answer in your data. With it — and with a prominent skip — uncertain people have an honest exit, and the answers that remain are answers you can weight. A response rate that drops a few points in exchange for clean data is a trade you take every time.

What to leave out

Anything the user wouldn’t say themselves. “Paid social,” “performance marketing,” “UAC,” “ASA” — channel-team vocabulary doesn’t belong in a user-facing list. If an option needs your org chart to parse, the taps it collects are noise.

More than about twelve options. Past one screen, completion drops and position effects get worse even under randomization. If you’re tempted to add a thirteenth line, cut one first. Your top eight channels plus word of mouth, store, search, and the escape hatch cover the distribution for almost any consumer app.

Overlapping options. “Online ad” next to “TikTok” gives the same install two homes, and you’ll never know which line absorbed it. Every option should name a place, not a format.

After the list

A good option list produces clean categorical answers, which raises the question of where they go. If the answers land in a survey tool’s dashboard, you’ve built a report someone reads once a quarter. The reason to run this survey on mobile is to write each answer to the place where spend decisions already happen — as an install-level event in Adjust or AppsFlyer, next to the last-click and SKAN numbers it’s there to check.

And before you ship any list, read the failure modes piece — ordering, open text fields, hidden skips, and non-response are mechanical mistakes with mechanical fixes, and the template above only works if the mechanics around it hold.

Caliper is in early access — we're onboarding our first cohort.

Get access