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:

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:

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.