Early access — onboarding our first cohort

Your survey says influencer.
Adjust says organic.

You already ask “how did you hear about us.” Caliper sends every answer to Adjust or AppsFlyer as an install-level event — so influencer, podcast, and word of mouth stop hiding in organic.

One SDK · First survey live in under an hour

What users see

rendered natively — your brand, not a widget

Where it lands

Your MMP · events

installorganic*
first_open
how_did_you_hearinfluencer · creator_a
#growth Caliper: new response · influencer · creator_a

synced as it happens

What you write

import Caliper

Caliper.configure(apiKey: "cal_live_4r9…")

Caliper.survey(.howDidYouHear)
    .after(.firstOpen)
    .sync(to: [.adjust, .slack])
iOS · Android · React Native · Flutter

The morning ritual

Every morning, three reports disagree.

Your survey says influencer. Adjust says Google. The platform says it deserves everything. So you triangulate: survey percentage times revenue in one column, platform-reported in the next, MMP last-click in the third — and you pick a number you can defend.

The survey is the data point you trust most. It’s also the only one that isn’t connected to anything.

And it’s homemade. Most teams that have one built it themselves — a hardcoded question a developer shipped once, a channel list someone maintains by hand, randomization nobody got around to. The most trusted number in the stack is also the most manual.

With ATT opt-in rates at 25–35%, most iOS installs are attribution-dark to deterministic measurement. The only party who always knows where they heard about you is the user.

attribution_recon_jun05.xlsx — illustrative, but you know this spreadsheet
Channel Survey × rev MMP last-click Platform
Influencer $41,800 $7,300
Paid social $26,400 $31,900 $58,200
Google $9,100 $24,700 $19,400
Podcast $12,600 $1,100

Mechanism

One question, asked correctly,
written where you work.

  1. 01

    Install the SDK.

    iOS, Android, React Native, Flutter. No IDFA, no fingerprinting, no ATT prompt required — Caliper is first-party by construction.

  2. 02

    The survey fires once, after first open.

    Fully white-labeled — it renders as a native screen in your onboarding, your fonts and colors, not a third-party widget. Closed options, randomized order, auto-suggest for influencer and podcast names, and a deliberately prominent skip. Clean signal over response volume — a skipped survey is better than a guessed answer.

  3. 03

    Answers land where you already look.

    Install-level custom events in Adjust or AppsFlyer, rows in your warehouse, and a digest in Slack every morning. No new dashboard to open.

Integrations — writes to the tools you already check

  • Adjust
  • AppsFlyer
  • Branch
  • PostHog
  • Amplitude
  • Slack

Why the number holds up

Built like an instrument, not a form.

Randomized response order.
Un-randomized HDYHAUs over-index whatever sorts first. Caliper rotates options per impression.
Closed taxonomy, tuned per category.
Channels map to a maintained taxonomy with auto-suggest layering for creators and shows — answers stay classifiable.
The skip button is big on purpose.
Forced answers are noise. When a respondent answers, you can weight it.
Non-responders are modeled, not ignored.
Response-rate-aware estimates per channel, so the percentage you multiply by revenue is defensible.

Plans

Pricing

Free

$0

  • 1,000 responses /mo
  • 1 app
  • All SDKs
  • Slack digest
Get early access

Scale

$499 /mo

  • Unlimited responses
  • Unlimited apps
  • All SDKs
  • Slack digest
  • Adjust / AppsFlyer sync
  • Warehouse export
  • Custom taxonomy
Get early access

Early-access cohort gets Growth free for 6 months.

FAQ

Questions

Does this replace Adjust or AppsFlyer?

No. Caliper writes into your MMP, it doesn’t compete with it. Last-click and SKAN postbacks tell you what the network claims; Caliper tells you what the user says. You triangulate — now in one place.

Does it work with SKAN / AdAttributionKit?

Yes, by design: self-reported attribution is deterministic at the install level and doesn’t depend on Apple’s crowd-anonymity tiers. Use SKAN for network-level truth, Caliper for channel-level truth.

We already built our own HDYHAU — why switch?

Because the survey is the easy part. The maintenance is the product: taxonomy upkeep as channels shift, randomization, auto-suggest lists for creators and shows, classification, response-rate modeling. Caliper ships all of it as a turnkey SDK — white-labeled, so your users never see a third party.

Will it annoy users?

It’s one question, once, after first open, with a prominent skip. Closed options, no typing required for most answers.

How does the Adjust/AppsFlyer connection actually work?

Survey responses fire as custom in-app events through the MMP’s SDK-to-SDK event API, attached to the install. They show up in your MMP dashboards and postbacks like any other event.

Which platforms?

Native iOS (Swift), Android (Kotlin), React Native, Flutter. Server-side API for everyone else.

Where does the data live?

US data residency. Your survey data is yours — exportable, deletable on request, never sold or pooled.