---
name: onboarding-optimization
description: When the user wants to improve their app's onboarding experience, increase activation rate, reduce Day 1 drop-off, or optimize the first-run flow. Use when the user mentions "onboarding", "first-run", "activation", "tutorial", "day 1 retention", "new user flow", "permission prompts", "sign-up conversion", "onboarding funnel", or "users dropping off early". For overall retention strategy, see retention-optimization. For paywall placement, see monetization-strategy.
metadata:
version: 1.0.0
---
# Onboarding Optimization
You optimize the first-run experience to maximize activation — the moment a new user completes the core action that predicts long-term retention.
## The Activation Principle
**Activation ≠ sign-up.** Activation is the first time the user gets real value from your app. Identify it before anything else.
| App Type | Activation Event |
|----------|-----------------|
| Fitness | First workout completed |
| Productivity | First task or project created |
| Social | First connection made or content posted |
| Finance | First account linked or budget set |
| Games | First level or match completed |
| Meditation | First session completed |
| Photo/Video | First photo edited or exported |
**Rule:** Everything in onboarding should funnel toward that one activation event as fast as possible.
## Initial Assessment
1. Check for `app-marketing-context.md`
2. Ask: **What is your activation event?**
3. Ask: **What % of new users reach it within 24 hours?** (baseline)
4. Ask: **Where do users drop off?** (which step, if known)
5. Ask: **How long does your current onboarding take?** (steps, screens)
6. Ask: **Do you have Firebase/Mixpanel funnels set up?**
## Onboarding Audit Framework
### Step 1 — Map the Current Flow
List every screen from app open to activation:
```
App open → [Screen 1] → [Screen 2] → ... → Activation event
```
Flag each screen: **Required** | **Value-adding** | **Friction only**
Remove or defer everything that is friction-only.
### Step 2 — Score Each Screen
| Factor | Question | Score |
|--------|---------|-------|
| **Necessity** | Can the user reach activation without this? | 0 = skip it |
| **Timing** | Is this the right moment for this ask? | |
| **Value exchange** | Does the user understand why this benefits them? | |
| **Cognitive load** | How many decisions does this require? | |
### Step 3 — Permission Prompt Timing
Permissions are the #1 drop-off point. Rules:
| Permission | When to ask | Never ask |
|-----------|------------|-----------|
| Push notifications | After activation, not before | On cold open |
| Location | When the feature needs it | During sign-up |
| Camera/microphone | Contextually, when used | Before any value |
| Contacts | When the social feature is used | In onboarding |
| Tracking (ATT) | After user is invested | On first open |
**The pre-permission screen:** Always show a native-looking explanation screen before the system prompt. Users who understand the "why" grant at 2–3× the rate.
### Step 4 — Sign-Up Friction
| Pattern | Impact | Recommendation |
|---------|--------|---------------|
| Required sign-up before value | High drop-off | Defer to post-activation |
| Only email+password | Medium drop-off | Add Sign in with Apple + Google |
| Long profile setup | High drop-off | Ask 1 question max, defer rest |
| Email verification required | Kills momentum | Defer or make optional |
**Guest mode / try before sign-up:** Allow users to experience the core value before requiring an account. Conversion from guest → registered is typically 40–60% vs. a hard gate at 15–30%.
## Onboarding Patterns by App Type
### Value-First (recommended for most apps)
```
Open → Core feature demo / interactive preview
→ Activation moment
→ "Save your progress" → Sign-up
→ Permission asks
→ Personalization
```
### Personalization-First (works for health, fitness, AI apps)
```
Open → 3–5 personalization questions (show progress bar)
→ "Your plan is ready" reveal moment
→ Sign-up gate (invested now)
→ Activation
```
### Social-First (social apps)
```
Open → Sign in with Apple/Google (single tap)
→ Find friends / follow suggestions
→ First feed with content
→ Activation (post, comment, react)
```
## Funnel Benchmarks
| Step | Benchmark | Poor |
|------|-----------|------|
| App open → first interaction | > 85% | < 70% |
| Sign-up conversion | > 60% | < 40% |
| Push permission grant | > 50% | < 30% |
| Activation (D0) | > 40% | < 20% |
| Day 1 retention | > 30% | < 15% |
## Personalization Questions
If you include personalization, follow these rules:
- Maximum **3–5 questions** in onboarding
- Each question must visibly affect the experience
- Show a progress indicator (step 1 of 3)
- Use visual selections, not text inputs
- Never ask for data you won't use immediately
## Paywall Placement in Onboarding
**Rule:** Show value before the paywall.
| Placement | Works When |
|-----------|-----------|
| Before activation | Almost never — user has no reference for value |
| At activation | Strong — user just felt the value |
| Post-activation, D1 | Strongest for subscription apps |
| Contextual (feature gate) | Good for feature-based paywall |
See `monetization-strategy` for paywall design details.
## Output Format
### Onboarding Audit
```
Current flow:
[Screen 1] — Required / friction
[Screen 2] — Value-adding
[Screen 3] — Required / friction
...
[Activation event] — Step N
Drop-off analysis:
Biggest drop: [screen] ([X]% exit rate if known)
Estimated cause: [hypothesis]
Recommended changes:
1. [Remove / defer X] — Expected impact: [lift in activation]
2. [Reorder Y before Z] — Expected impact: [rationale]
3. [Add pre-permission screen for Z] — Expected impact: [grant rate improvement]
Revised flow:
Open → [Screen] → [Screen] → Activation → Sign-up → Permissions
Estimated steps removed: [N]
Estimated time to activation: [Xs → Xs]
```
### Permission Screen Copy Template
```
[Icon representing the permission]
[Benefit headline — what the user gets]
e.g., "Get notified when your goal is complete"
[One-line explanation]
e.g., "We'll only send you reminders you set — no spam."
[Allow button] [Not now]
```
## Related Skills
- `retention-optimization` — Day 7/30 retention strategy
- `monetization-strategy` — Paywall placement and trial design
- `ab-test-store-listing` — Test onboarding variants
- `app-analytics` — Set up activation funnel tracking
- `rating-prompt-strategy` — When to ask for a rating post-activation
Creator's repository · eronred/aso-skills