Screen-journey analytics for iOS

See where your app loses users — automatically.

AnalyticsDrop is screen-journey analytics for mobile apps. Add one line of code and watch every screen, path, and drop-off appear — no manual event tracking, and no user text ever stored.

One line to install · UIKit + SwiftUI · No credit card

Hosted in the EU
app.analyticsdrop.com/journey
Last 30 daysFirst session onlyv1.4.2
Left the appHome8.2k viewsWorkout6.7k viewsPaywall5.2k views62% exitCheckout1.9k views

Onboarding funnel · first session

Biggest drop: Sign up → Paywall (−25%)
100%
Launch
82%
Onboarding
64%
Sign up
39%
Paywall
31%
Purchase
1 line
to install the SDK
≥95%
of screens captured, automatically
<10 min
from install to first insight
0
screen text ever stored

The problem

Event tracking became a second job.

You wanted to know where users drop off. Instead you got a tracking plan, an event on every screen, and dashboards that are stale the moment you ship.

Tagging never ends

Every new screen means another event, another naming debate, another PR — or a gap in your funnel.

You miss what you didn't tag

The screens you forgot to instrument are exactly the ones quietly losing you users.

PII creeps in

Free-text properties and screen captures pull sensitive data into your analytics before anyone notices.

How it's different

Analytics that install themselves.

AnalyticsDrop captures the screens your users actually see — so the map is complete on day one, not after months of tagging.

Auto-capture

Add one line. Capture everything.

Drop the SDK in, call start() once, and every screen view is captured automatically — UIKit and SwiftUI, side by side, in the app you already have.

  • No per-screen code and no tracking plan to maintain
  • Works with the navigation you already built
  • Sub-millisecond hook, entirely off the main thread
PrimusApp.swift
import SwiftUI
import AnalyticsDrop

@main
struct PrimusApp: App {
  init() {
    // one line — every screen is now tracked
    AnalyticsDrop.start(apiKey: "ad_live_9f2c…")
  }

  var body: some Scene {
    WindowGroup { ContentView().analyticsDropTracked() }
  }
}

User timelines

Follow any user, screen by screen.

Search a user and replay their exact path — every screen, in order, with how long they spent on each. Identify once and anonymous history stitches to the real account.

  • Exact ordering by sequence, not flaky timestamps
  • Per-screen dwell time, computed for you
  • Anonymous-to-known identity stitching built in
app.analyticsdrop.com/users
S
user_8842 · Sarah
iPhone 15 Pro · iOS 19.1 · v1.4.2
Session · Today 9:41
  1. Home6s
  2. Workout Detail24s
  3. Start Workout18m 04s
  4. Summary11s
  5. Paywall3s

Living reports

Rename once. Every report updates.

Screen names live in one place. Rename a screen and it fixes your journey graph, funnels, and every user's history — retroactively, by design. Unnamed screens double as your setup checklist.

  • Renames are retroactive across all history
  • “Name this screen” is the whole onboarding flow
  • Fingerprints keep one screen as one node
app.analyticsdrop.com/screens
ScreenViewsExit
Home
8,20412%
Workout Detail
6,69018%
Name this screen…
5,23162%
Checkout
1,9129%

Stable fingerprints

The same screen maps to one node across relaunches and rebuilds — even as its data changes.

Drop-off, highlighted

Every screen shows its exit rate. Screens bleeding users get a red badge you can't miss.

Auto-detected funnels

Your onboarding path is found for you, with per-step conversion and the biggest drop called out.

Filters that matter

Slice by date range, first session only, and app version to compare releases.

Conversions

Fire a one-line track() for purchases and key actions, tied back to the journey.

Featherweight

Sub-millisecond hook, work off the main thread, batched uploads. Your users never feel it.

How it works

Three steps to your first drop-off.

1

Install the SDK

Add the package and call start(apiKey:) at launch. That's the whole integration.

2

Ship and collect

Your users' screens flow in automatically — captured, fingerprinted, and ordered.

3

Find the drop-off

Open the journey graph, spot the red exit badges, and fix the step that's leaking users.

Private by designHosted in the EU

Your users' screens never leave their phone.

AnalyticsDrop measures the shape of a journey, not its contents. On-screen text is never logged, never transmitted, never stored. Screen previews are redacted boxes rendered on the device — the layout, none of the words.

  • No text, ever
    Content is dropped at the source. There's nothing sensitive to leak.
  • Redacted thumbnails
    Previews are gray shapes — enforced by a test that checks for readable text.
  • Compliance-friendly
    Less personal data collected means a smaller surface to review and defend.
redacted

vs. rolling your own

What you'd build by hand — already done.

Manual event tracking can get you here eventually. This is here on day one.

AnalyticsDropManual event tracking
Time to first insightMinutesDays to weeks
Code you write per screenNoneAn event on every screen
Catches screens you forgot to tag
Drop-off & funnels out of the box
SwiftUI auto-capture
Stores on-screen text / PIINeverUsually
Renaming applies to past data

Pricing

Simple, usage-based pricing.

Start free. Upgrade when your app grows. Cancel anytime.

Free

For your first app.

$0forever
Start free
  • 1 app
  • 10k events / month
  • 7-day history
  • Journey graph & user timelines
Most popular

Pro

For teams shipping fast.

$29/ month
Start free trial
  • 3 apps
  • 500k events / month
  • 12-month history
  • Funnels, filters & versions
  • Unlimited seats

Scale

For bigger footprints.

Custom
Talk to us
  • Unlimited apps & events
  • SSO & audit log
  • Data export & self-host
  • Priority support

Prices are illustrative for this preview.

FAQ

Questions, answered.

How long does setup actually take?

One line. You add the SDK via Swift Package Manager and call start(apiKey:) at launch. Most teams see their first journey in the dashboard within ten minutes — no per-screen tagging, no tracking plan.

Does it work with both SwiftUI and UIKit?

Yes — automatically, in the same app. Screen views are captured for UIKit view controllers and SwiftUI navigation without you naming a single screen. An optional modifier lets you set an exact name where you want one.

Do you store what's on my users' screens?

Never. On-screen text is never logged or transmitted. Thumbnails are redacted boxes rendered on-device — gray shapes standing in for layout, never the content. It's a hard invariant, enforced by a test that checks generated thumbnails contain no readable text.

Will it slow my app down?

No. The capture hook returns in under a millisecond, all real work happens off the main thread, and events are batched and uploaded in the background. There's zero third-party dependency in the SDK.

How does it know two views are the same screen?

Each screen gets a stable fingerprint that stays the same across relaunches and rebuilds, even as the data on screen changes — so the same screen always shows up as one node, and renaming it applies to all of its history.

Android, React Native, Flutter?

iOS is available today. Other platforms are on the roadmap. If you're shipping an iOS app, you can start now.

Can I export my data or self-host?

Yes. Your events live in Postgres, and data export plus a self-hosted option are available on the Scale plan.

See your first drop-off in the next ten minutes.

Add one line, ship, and watch the journey build itself. No tracking plan, no credit card.