Free tier — no credit card required

Attribution & deep links
without the bloat

Lightweight, API-first install attribution and deferred deep links for mobile apps. Privacy-preserving, fraud-resistant, no dashboard required.

AppNavigation.kt
// Application.kt — initialize before Compose
TraceAndroid.initialize(this, TraceConfig(
    apiKey = "tr_live_xxx"
))

// AppNavigation.kt — Compose Navigation 3
val mapper = rememberDeepLinkMapper {
    route("/product/{id}") { ProductRoute(id = it.require("id")) }
    route("/invite/{code}") { InviteRoute(code = it.require("code")) }
    action("/claim/promo/{amount}") { ClaimPromo(amount = it.require("amount")) }
}

TraceProvider {
    NavDisplay(
        backStack = backStack,
        entryDecorators = listOf(
            rememberTraceEntryDecorator(
                backStack = backStack,
                routeMapper = mapper,
                authGate = { isLoggedIn }
            ),
        ),
        entryProvider = entryProvider {
            entry<ProductRoute> { route -> ProductScreen(route.id) }
            entry<InviteRoute>  { route -> InviteScreen(route.code) }
        }
    )
}

Everything you need, nothing you don't

Built for developers who want attribution that works without the enterprise complexity.

Multi-Method Attribution

Install referrer, click ID, probabilistic fingerprinting, and SKAdNetwork — tried in order, best match wins.

Deferred Deep Links

Capture user intent at ad click, deliver the right screen on first app open — even through the app store.

Fraud Detection

Real-time click velocity, install velocity, and click-to-install time checks block fraudulent traffic before it counts.

Privacy-First

Per-app IP hashing with BYOK support, automatic data retention, audit logging, and GDPR-ready erasure.

Webhooks & Integrations

Real-time notifications to Slack, Discord, and Teams with built-in templates — or raw JSON with HMAC signing to your own endpoint.

Bring Your Own Links

Already have landing pages? Drop a JS snippet on your site to record clicks — same attribution pipeline, no URL changes.

Cross-Platform SDKs

Native Android (Jetpack Compose + Navigation 3) and iOS (SwiftUI) SDKs with a shared Kotlin Multiplatform core. First-party Nav3 integration — not a wrapper.

How it works

Three steps from ad click to in-app screen.

01

Create a link

Generate a short link with your deep link path and campaign tags. Store URLs are pulled from your app settings automatically.

terminal
$ trace links create \
  --deep-link-path /product/123 \
  --campaign-id summer_sale \
  --fallback-url https://myapp.com/product/123

✓ Link created
  Short Code   x8kQ2m
  Short URL    https://myapp.traceclick.io/l/x8kQ2m
  QR Code URL  https://myapp.traceclick.io/qr/x8kQ2m
02

User clicks, we capture

When a user taps the link, Trace records a device fingerprint, redirects to the app store, and stores the deep link payload.

Link tap
Fingerprint
IP hashUAdevicescreentz
App Store302 redirect
03

SDK attributes on first open

The SDK calls home on first launch. Trace matches the install to the click and delivers the deferred deep link — even if the user has to sign up or log in first.

Without Trace
Home screenNo context
With Trace
/product/123
isDeferred: truecampaign: summer_sale

Start attributing in minutes

Free tier includes 1,000 installs/month. No credit card required.