Yes, you can track app conversions without device IDs. Session-based analytics links events within a single app session using ephemeral identifiers that rotate automatically. You can measure conversion rates, analyze funnels, and identify what drives conversions—all without IDFA, GAID, or persistent tracking. The trade-off: you can't track users across sessions or measure multi-week retention.
Since Apple introduced App Tracking Transparency in 2021, the mobile analytics landscape has fundamentally shifted. IDFA opt-in rates hover around 15-25%. Google is phasing out third-party cookies and tightening GAID restrictions. The era of tracking users across apps and sessions is ending.
But here's what many developers don't realize: you don't need device IDs for most conversion analytics. Session-based tracking can answer the questions that actually matter for product development.
⚠️ The Problem: Device IDs Are Disappearing
Traditional mobile analytics relied on persistent device identifiers:
| Identifier | Platform | Current Status |
|---|---|---|
| IDFA | iOS | Requires ATT permission (15-25% opt-in) |
| GAID | Android | User can reset; being restricted |
| IDFV | iOS | Available but resets on app reinstall |
| Fingerprinting | Both | Explicitly prohibited by Apple & Google |
This leaves developers with a choice: fight for shrinking access to device IDs, or adopt a new model that doesn't need them.
🔄 The Session-Based Model
Session-based analytics shifts from tracking users over time to tracking sessions in the moment.
User-Based (Traditional)
- • Track User_123 for months/years
- • Link sessions across days/weeks
- • Build persistent user profiles
- • Requires device IDs or login
Session-Based (Alternative)
- • Track Session_ABC for minutes/hours
- • Each session is independent
- • No cross-session profiling
- • No device IDs needed
How Ephemeral Session IDs Work:
- 1. Generated in RAM: When the app launches, a random session ID is created in device memory
- 2. Never persisted: The ID is not written to disk, UserDefaults, or Keychain
- 3. Automatic rotation: Rotates every 2 hours of continuous use
- 4. Reset on restart: New session ID on every app launch
- 5. Server-side hashing: Additional anonymization with daily-rotating salt before storage
✅ What You Can (and Can't) Track
Session-based analytics has clear capabilities and limitations. Understanding both helps you decide if it fits your needs.
✓ What You CAN Track
- ✓ Conversion rates per session
- ✓ Funnel completion rates
- ✓ Which events correlate with conversions (lift analysis)
- ✓ Time-to-conversion within session
- ✓ Drop-off points in user flows
- ✓ Event sequences that lead to conversions
- ✓ Geographic distribution (country)
- ✓ Platform breakdown (iOS/Android)
✗ What You CAN'T Track
- ✗ Cross-session user journeys
- ✗ Multi-day/week retention cohorts
- ✗ Lifetime value (LTV) per user
- ✗ User-level attribution
- ✗ Re-engagement campaign attribution
- ✗ Individual user behavior profiles
- ✗ "User_123 came back after 5 days"
The key insight: Most product optimization questions can be answered with session data. "Which features drive conversions?" "Where do users drop off?" "What's our conversion rate?" These don't require tracking users for months.
🎯 Conversion Tracking Without Device IDs
A "conversion" is any event you define as a success metric: a purchase, signup, subscription, or completing a key action. With session-based analytics, you track conversions at the session level.
Session-Based Conversion Metrics:
Session Conversion Rate
Percentage of sessions that included a conversion event. Example: 1,000 sessions, 50 conversions = 5% session conversion rate.
Time-to-Conversion
How long after session start does the conversion typically happen? Useful for understanding user intent—fast conversions suggest high-intent users.
Conversion by Segment
Break down conversion rates by platform (iOS vs Android), country, or other session attributes.
Important: Session vs User Conversion Rates
Session conversion rates will typically appear lower than user conversion rates from traditional analytics. If a user converts on their 3rd session, user-based analytics counts them as converted. Session-based analytics shows 1 converting session and 2 non-converting sessions. This is accurate for session-level measurement—just different from what you may be used to seeing.
🛤️ Funnel Analysis with Session Data
Funnels work naturally with session data because they measure a sequence of events within a defined timeframe—exactly what sessions capture.
Example: Onboarding Funnel
This funnel tells you: 45% of sessions start signup, but only 60% of those complete it (27%/45%). The signup form is your biggest drop-off point—focus optimization there.
📊 Conversion Lift Analysis
Lift analysis is one of the most powerful techniques for understanding what drives conversions—and it works perfectly with session data.
How Lift Analysis Works:
For each event type in your app, compare:
- A. Conversion rate of sessions that included the event
- B. Conversion rate of sessions that didn't include the event
Lift = (A - B) / B × 100%
Example Lift Analysis Results:
Interpretation: Sessions that viewed the tutorial were 3.45x more likely to convert. Sessions that hit rate limit errors were 78% less likely to convert. This tells you exactly where to focus: promote the tutorial, fix the rate limiting UX.
⚙️ Implementation: How It Works
Here's how session-based conversion tracking is implemented. The SDK generates ephemeral session IDs, and the server processes events without storing persistent identifiers.
SDK Side: Tracking Events
// Swift example - track a conversion event
import RespectlyticsSwift
// Configure once at app launch
Respectlytics.configure(apiKey: "your-api-key")
// Track events throughout the session
Respectlytics.track("app_launched")
Respectlytics.track("viewed_product")
Respectlytics.track("added_to_cart")
Respectlytics.track("purchase_completed") // Conversion!
What Gets Stored (5 Fields Only):
| Field | Example | Purpose |
|---|---|---|
| event_name | "purchase_completed" | The action |
| session_id | "a7f3c2..." | Link events in session |
| timestamp | "2026-01-10T14:32:00Z" | When it happened |
| platform | "ios" | Platform segmentation |
| country | "US" | Geographic segmentation |
What's NOT Stored:
- ✗ IP addresses — Processed for country lookup, then immediately discarded
- ✗ Device IDs — IDFA, GAID, IDFV are never collected
- ✗ User IDs — No persistent identification
- ✗ Custom properties — API rejects extra fields to prevent data leaks
❓ Frequently Asked Questions
Can you track conversions without IDFA or GAID?
Yes. Session-based analytics tracks conversions by linking events within a single app session using ephemeral session IDs. You can measure conversion rates, build funnels, and identify what drives conversions—all without persistent device identifiers.
What is session-based conversion tracking?
Session-based conversion tracking measures whether users complete desired actions (conversions) within a single app session. Instead of tracking User_123 across months, you track Session_ABC for minutes to hours. Each session is independent—no cross-session profiling.
How do ephemeral session IDs work?
Ephemeral session IDs are random identifiers generated in device memory (RAM) when the app starts. They rotate automatically every 2 hours and are regenerated on each app restart. They're never persisted to disk, making them fundamentally different from device IDs which persist for months or years.
What is conversion lift analysis?
Lift analysis measures how much more likely sessions are to convert when they include a specific event. For example, +150% lift means sessions with that event are 2.5x more likely to convert. This helps identify which features drive conversions without tracking individual users.
Why did Apple deprecate IDFA and require ATT?
Apple introduced App Tracking Transparency (ATT) in iOS 14.5 (2021) to give users control over cross-app tracking. IDFA now requires explicit user permission, and opt-in rates are typically 15-25%. This reflects broader industry movement toward privacy-preserving alternatives.
Can I still do A/B testing without device IDs?
Yes, but with a caveat. You can measure conversion rates for different user flows within sessions. However, you can't assign the same user to the same variant across multiple sessions. For session-scoped experiments (e.g., "does this onboarding flow convert better?"), session-based analytics works well.
🎯 Summary
- → Device IDs are disappearing: ATT, GAID restrictions, and fingerprinting bans are here to stay
- → Session-based analytics is the alternative: Track conversions, funnels, and lift without persistent identifiers
- → Most product questions can be answered: "What drives conversions?" and "Where do users drop off?" work with session data
- → Know the trade-offs: You can't track cross-session journeys or multi-week retention
- → Lift analysis is powerful: Discover what features correlate with conversions automatically
📚 Learn More
- SDK Documentation: Swift, Kotlin, Flutter, React Native →
- Feature: Automated Conversion Intelligence →
- Feature: Funnel Analysis →
- Related: Mobile Analytics Without Collecting Personal Data →
Note: This guide describes technical approaches to analytics without device identifiers. Privacy regulations vary by jurisdiction and change over time. Consult your legal team to determine the specific requirements that apply to your app and user base.