Early access preview
Survey configuration
Caliper asks one question — “how did you hear about us” — and the way it is configured decides whether the answer is usable. This page covers timing, the answer taxonomy, the auto-suggest layer, skip behavior, and localization.
Timing: the .after trigger
The survey fires once per install. The .after trigger sets when. Three trigger types are designed:
- First open (
firstOpen) — the default. Caliper waits for the first launch on a clean install, then presents the survey at the next natural pause rather than blocking the first frame. - Session N (
sessionN) — fires on the Nth session, for apps that want the person past onboarding before asking. The survey still fires only once. - Custom event (
customEvent) — fires after your app reports a named event, for example once an account is created. Useful when first open is too early to ask.
Whichever trigger you pick, the survey is shown a single time. Once it is answered or skipped, it does not return for that install. The trigger is set in the same chain you saw in the quickstarts: Caliper.configure then .survey then .after then .sync.
Option taxonomy per category
Answers are closed options, never a blank text box first. A closed set is what keeps answers classifiable — “TikTok,” “a friend,” and “a podcast” land in the same buckets every time instead of fragmenting into a hundred spellings. Caliper ships a taxonomy organized by category, with options tuned to the channels mobile apps actually grow on:
- Paid social — TikTok, Instagram, Facebook, YouTube, Snapchat, Reddit ads
- Paid search and app store — Google Search ads, Apple Search Ads (the paid placements inside the iOS App Store — the Search tab, the Today tab, and search-results product pages; “ASA” for short), and the Android equivalent, Google App Campaigns running against the Play Store
- Earned and organic — App Store or Play Store browsing, web search, a news article or review
- Word of mouth — friend or family, coworker, online community
- Creator-driven — influencer, podcast, streamer, content creator
A note on store channels: “the App Store” is not a single channel. Someone who tapped a paid Apple Search Ads placement and someone who organically browsed to your listing are different acquisition stories — but last-click attribution frequently books both as the same opaque line. Keeping paid Apple Search Ads separate from organic store discovery in the survey is how you tell the two apart, and it’s the iOS-side detail teams most often find missing from their channel list.
You choose which categories and options appear, and the order is randomized per impression (see Methodology for why that matters).
Auto-suggest layering
For the creator-driven category, the bucket alone is not enough — knowing it was “a podcast” is less useful than knowing which one. When someone picks influencer, podcast, creator, or streamer, Caliper layers in an auto-suggest field that completes against known shows and handles as they type. This is layering on top of the closed structure, not an open-field-first survey: the person commits to a category, then refines within it. The free text is constrained by suggestions, so the refined answer stays classifiable.
Skip behavior
The skip control is prominent on purpose. A skipped survey is better than a guessed answer — someone who taps a random option to dismiss the prompt poisons the data, while a clean skip is honest signal that Caliper accounts for downstream. Skips are recorded and feed the non-responder modeling described in Methodology. Do not hide or shrink the skip control; the response-rate math depends on skips being a real choice.
Localization
The question and the taxonomy are presented in the device language where a translation exists. Additional languages are planned and will expand the set of localized taxonomies over time. When no translation is available, Caliper falls back to the default language you configure rather than showing an untranslated mix.
Related
- Wire the answers to your stack: MMP sync
- Every configurable value: API reference