Identity resolution for the rest of us

Know your customer across every screen

Drop-in SDKs that stitch anonymous users across your app, website, and WebViews into a single unified profile. Resolved data lands in your warehouse.

Try the Live Demo See How It Works
To your analytics, one person looks like four
When a user switches from your website to your app to an in-app WebView, every tool sees a different person. You're retargeting customers you already converted, inflating user counts, and flying blind on cross-platform funnels.

Without CrossTrack

Website
visitor: anon_8f2k
Mobile App
device: dev_x9m2
In-App WebView
visitor: anon_p3wv
After Login
user: john@co.com

= 4 separate people in your analytics

With CrossTrack

profile_a1b2c3
John Smith
john@co.com
3 devices · 47 events · first seen 14 days ago
web: anon_8f2k
app: dev_x9m2
webview: anon_p3wv

= 1 real person, full journey

Wasted ad spend

Retargeting users you already converted because you don't know they're the same person.

Broken funnels

Cross-platform journeys look like drop-offs because sessions aren't connected.

Inflated user counts

One person on 3 devices = 3 "unique users" in your dashboard.

Blind support teams

No context on what the user just did in the app when they call support.

Three lines of code. One unified identity.
Drop in our SDK on each platform. We handle the identity resolution, profile merging, and warehouse delivery automatically.
1

Integrate the SDKs

Add our lightweight Web SDK (3 KB), Android SDK, or iOS SDK. Each generates a persistent visitor ID and sends events to our API. Takes minutes, not months.

2

We resolve identity

Our identity graph links sessions across platforms using deterministic matching, login events, and our WebView bridge — which stitches app and web sessions without requiring a login.

3

Query in your warehouse

Resolved events with a unified profile_id land in your data warehouse. Query with SQL, visualize in Looker or Metabase. Your data, your infrastructure.

Web SDK
Android SDK
iOS SDK
Query Results
// Add to your website — that's it <script src="https://app.crosstrackdata.com/crosstrack.js"></script> <script> CrossTrack.init({ apiKey: 'your-api-key' }); CrossTrack.consent('opted_in'); // Automatic page views, session tracking, visitor ID // When user logs in: CrossTrack.identify('user_123', { email_hash: 'sha256...' }); </script>
// Initialize in your Application class CrossTrack.init( context = applicationContext, config = CrossTrackConfig( apiKey = "your-api-key" ) ) CrossTrack.consent().setConsent(ConsentState.OPTED_IN) // WebView bridge — automatic, no code needed // Just use CrossTrackWebViewClient: webView.webViewClient = CrossTrackWebViewClient(webView) // When user logs in: CrossTrack.api().identify("user_123")
// Initialize in AppDelegate or app entry point CrossTrack.shared.initialize( config: CrossTrackConfig( apiKey: "your-api-key" ) ) CrossTrack.shared.consent().optIn() // WebView bridge — one line: CrossTrack.shared.installBridge(on: myWebView) // Track events CrossTrack.shared.track("screen_view", properties: ["screen": "home"]) // When user logs in: CrossTrack.shared.identify("user_123", traits: ["email_hash": "sha256..."])
-- One person, full journey across all platforms SELECT event_type, properties, context.platform, timestamp FROM crosstrack.events WHERE profile_id = 'prof_a1b2c3' ORDER BY timestamp; -- Results: -- page_view {url: "/pricing"} web 10:31 AM -- screen_view {screen: "home"} android 10:45 AM -- page_view {url: "/checkout"} webview 10:52 AM -- identify {user: "john"} web 11:03 AM -- purchase {amount: 299} android 11:15 AM -- All under ONE profile. No stitching needed.
The WebView bridge that nobody else does
When a user taps a link in your app that opens a WebView, our SDK automatically bridges the app and web sessions. No login required. This is what Celebrus charges enterprise money for.
🔗

WebView Bridge

App SDK injects device ID into WebView. Web SDK picks it up. Sessions merge instantly. Zero user friction.

👤

Login Merge

When the same user logs in on multiple platforms, all anonymous sessions retroactively unify into one profile.

🌐

Cross-Domain

URL decoration carries identity across different web domains. One person, no matter how many sites.

🔒

Privacy-First

Three-state consent baked into every SDK. Nothing tracks until your user says yes. GDPR-ready from day one.

🏭

Warehouse-Native

Resolved data lands directly in your BigQuery or Snowflake. Your data, your infrastructure. We don't store it.

Lightweight SDKs

Web SDK is 3 KB. Native Android (Kotlin) and iOS (Swift) SDKs. No bloat, no performance impact, no tag manager needed.

Built for the gap in the market
Enterprise tools solve identity but cost $100k+/yr. Developer tools are affordable but treat identity as an afterthought. We fill the gap.
vs Celebrus

Same identity stitching. 1/100th the cost.

Celebrus requires on-prem deployment, months of setup, and six-figure contracts. We're SaaS, self-serve, and integrate in a day.

vs Segment

We solve the one thing Segment can't.

Segment routes events to 300+ tools but its identity resolution is basic — no WebView bridge, no real cross-platform stitching. We complement Segment, not compete with it.

vs Building In-House

Months of engineering, or a 10-minute SDK install.

Identity resolution looks simple until you hit edge cases: cascade merges, shared emails, WebView sessions, returning visitors. We've solved them all.

Pay per resolved profile, not per event
A resolved profile is a unique person in your identity graph that had at least one event this month. Predictable pricing that scales with your actual user base.

Free

$0
Up to 10,000 profiles
Get Started

Scale

$2,000/mo
Up to 1,000,000 profiles
Contact Us

Enterprise

Custom
Unlimited profiles
Talk to Us

Start for free

Sign up, get your API key, and integrate in 5 minutes. No credit card required.

Sign Up Free

Free up to 10,000 profiles. No credit card required.