@leejungkiin/awkit 1.1.6 → 1.1.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +15 -0
- package/core/GEMINI.md +45 -7
- package/package.json +3 -3
- package/skills/ab-test-store-listing/SKILL.md +220 -0
- package/skills/android-aso/SKILL.md +197 -0
- package/skills/app-analytics/SKILL.md +210 -0
- package/skills/app-clips/SKILL.md +163 -0
- package/skills/app-icon-optimization/SKILL.md +170 -0
- package/skills/app-launch/SKILL.md +153 -0
- package/skills/app-marketing-context/SKILL.md +129 -0
- package/skills/app-store-featured/SKILL.md +213 -0
- package/skills/apple-search-ads/SKILL.md +205 -0
- package/skills/asc-metrics/SKILL.md +157 -0
- package/skills/aso-audit/SKILL.md +179 -0
- package/skills/competitor-analysis/SKILL.md +163 -0
- package/skills/competitor-tracking/SKILL.md +185 -0
- package/skills/crash-analytics/SKILL.md +181 -0
- package/skills/in-app-events/SKILL.md +176 -0
- package/skills/keyword-research/SKILL.md +141 -0
- package/skills/localization/SKILL.md +165 -0
- package/skills/market-movers/SKILL.md +137 -0
- package/skills/market-pulse/SKILL.md +170 -0
- package/skills/metadata-optimization/SKILL.md +170 -0
- package/skills/monetization-strategy/SKILL.md +175 -0
- package/skills/onboarding-optimization/SKILL.md +194 -0
- package/skills/orchestrator/SKILL.md +297 -25
- package/skills/press-and-pr/SKILL.md +204 -0
- package/skills/rating-prompt-strategy/SKILL.md +184 -0
- package/skills/retention-optimization/SKILL.md +165 -0
- package/skills/review-management/SKILL.md +154 -0
- package/skills/screenshot-optimization/SKILL.md +167 -0
- package/skills/seasonal-aso/SKILL.md +141 -0
- package/skills/spec-gate/SKILL.md +312 -0
- package/skills/subscription-lifecycle/SKILL.md +206 -0
- package/skills/swiftui-pro/references/design.md +44 -0
- package/skills/symphony-enforcer/SKILL.md +92 -11
- package/skills/systematic-debugging/SKILL.md +32 -7
- package/skills/ua-campaign/SKILL.md +207 -0
- package/skills/verification-gate/SKILL.md +23 -2
|
@@ -0,0 +1,204 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: press-and-pr
|
|
3
|
+
description: When the user wants to get press coverage, media mentions, or editorial features for their app — including writing press releases, pitching journalists, getting on "best apps" lists, or building an app press kit. Use when the user mentions "press", "PR", "media coverage", "TechCrunch", "journalist", "press release", "app press kit", "get featured in media", "editorial coverage", "review from a blogger", or "app launch announcement". For Apple editorial featuring, see app-store-featured. For launch strategy, see app-launch.
|
|
4
|
+
metadata:
|
|
5
|
+
version: 1.0.0
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# Press & PR for Apps
|
|
9
|
+
|
|
10
|
+
You help indie developers and app teams get genuine media coverage — which drives installs, backlinks, and App Store credibility.
|
|
11
|
+
|
|
12
|
+
## Why Press Still Matters
|
|
13
|
+
|
|
14
|
+
- **Web referral** in App Store Connect directly tracks installs from press links
|
|
15
|
+
- **Backlinks** from high-authority sites (TechCrunch, The Verge) improve web presence
|
|
16
|
+
- **Social proof** — "As seen on…" on your product page improves conversion
|
|
17
|
+
- **Apple editorial** — press coverage increases editorial featuring consideration
|
|
18
|
+
- **Organic amplification** — articles get shared, creating discovery beyond the original publication
|
|
19
|
+
|
|
20
|
+
## Target Media Tiers
|
|
21
|
+
|
|
22
|
+
### Tier 1 — High impact, harder to get
|
|
23
|
+
|
|
24
|
+
| Publication | Focus | Notes |
|
|
25
|
+
|-------------|-------|-------|
|
|
26
|
+
| TechCrunch | Consumer tech, startups | Exclusives preferred |
|
|
27
|
+
| The Verge | Consumer tech | Curated; quality bar is high |
|
|
28
|
+
| Wired | Tech culture | Long-form, unique angle needed |
|
|
29
|
+
| Fast Company | Innovation, productivity | Strong business angle |
|
|
30
|
+
| 9to5Mac | iOS/macOS apps | App-specific, accessible |
|
|
31
|
+
| MacStories | iOS apps | Very accessible for indie devs |
|
|
32
|
+
|
|
33
|
+
### Tier 2 — Accessible, meaningful reach
|
|
34
|
+
|
|
35
|
+
| Type | Examples |
|
|
36
|
+
|------|---------|
|
|
37
|
+
| App review blogs | AppAdvice, TouchArcade (games), AppShopper |
|
|
38
|
+
| Niche newsletters | App-specific verticals (health, productivity, finance newsletters) |
|
|
39
|
+
| YouTube channels | AppFind, MKBHD (for significant apps), niche channels |
|
|
40
|
+
| Podcasts | App podcast appearances, niche shows |
|
|
41
|
+
|
|
42
|
+
### Tier 3 — Start here
|
|
43
|
+
|
|
44
|
+
| Type | Examples |
|
|
45
|
+
|------|---------|
|
|
46
|
+
| Reddit | r/iphone, r/androidapps, r/productivity (category-specific) |
|
|
47
|
+
| Product Hunt | Launch day visibility |
|
|
48
|
+
| Hacker News | Show HN post for technical/productivity apps |
|
|
49
|
+
| Indie hackers | For indie developer community coverage |
|
|
50
|
+
|
|
51
|
+
## What Makes a Story
|
|
52
|
+
|
|
53
|
+
Press doesn't cover apps — they cover **stories**. Find your angle:
|
|
54
|
+
|
|
55
|
+
| Angle | Example |
|
|
56
|
+
|-------|---------|
|
|
57
|
+
| **Numbers** | "App hit 100K downloads in 7 days with no marketing" |
|
|
58
|
+
| **Problem solved** | "Solo dev built X because no existing tool did Y" |
|
|
59
|
+
| **Unique data** | "Our app analyzed 10M habit logs — here's what we learned" |
|
|
60
|
+
| **Category creation** | "We invented a new category of [type] app" |
|
|
61
|
+
| **David vs Goliath** | Indie beating a Big Tech competitor |
|
|
62
|
+
| **Timely** | Tied to a current news trend or cultural moment |
|
|
63
|
+
| **Human story** | Founder's compelling personal motivation |
|
|
64
|
+
|
|
65
|
+
**Test your angle:** Can you explain the story in 1 sentence that would make someone say "interesting"?
|
|
66
|
+
|
|
67
|
+
## Press Kit
|
|
68
|
+
|
|
69
|
+
Create a `presskit/` folder on your website or a Notion page with:
|
|
70
|
+
|
|
71
|
+
```
|
|
72
|
+
Press Kit Contents:
|
|
73
|
+
- [ ] App name, one-liner, category
|
|
74
|
+
- [ ] 3 founder photos (high-res, print-quality)
|
|
75
|
+
- [ ] App icon (1024×1024px, PNG)
|
|
76
|
+
- [ ] 5–10 screenshots (phone mockups, high-res)
|
|
77
|
+
- [ ] App preview video (optional but impactful)
|
|
78
|
+
- [ ] 3-sentence company/founder bio
|
|
79
|
+
- [ ] Key stats (downloads, ratings, notable users)
|
|
80
|
+
- [ ] Press quotes / prior coverage (if any)
|
|
81
|
+
- [ ] App Store link + website
|
|
82
|
+
- [ ] Press contact email
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
Host at: `yoursite.com/press` or a publicly shared Notion/Google Drive link.
|
|
86
|
+
|
|
87
|
+
## Press Release Structure
|
|
88
|
+
|
|
89
|
+
```
|
|
90
|
+
FOR IMMEDIATE RELEASE
|
|
91
|
+
|
|
92
|
+
[Headline — most newsworthy fact as a statement]
|
|
93
|
+
[Subheadline — supporting detail]
|
|
94
|
+
|
|
95
|
+
[City, Date] — [Hook sentence: what happened and why it matters]
|
|
96
|
+
|
|
97
|
+
[Paragraph 1: The news — who, what, when, where]
|
|
98
|
+
|
|
99
|
+
[Paragraph 2: The why — problem being solved, backstory, unique approach]
|
|
100
|
+
|
|
101
|
+
[Paragraph 3: A quote from the founder]
|
|
102
|
+
"[Quote that adds voice, not just restates facts]" — [Name], [Title], [Company]
|
|
103
|
+
|
|
104
|
+
[Paragraph 4: Key features or data points — 3 max]
|
|
105
|
+
|
|
106
|
+
[Paragraph 5: Availability, pricing, platforms]
|
|
107
|
+
[App Name] is available on [iOS/Android/both] for [free/price]. Download at [App Store link].
|
|
108
|
+
|
|
109
|
+
###
|
|
110
|
+
|
|
111
|
+
About [Company]:
|
|
112
|
+
[2–3 sentences]
|
|
113
|
+
|
|
114
|
+
Media Contact:
|
|
115
|
+
[Name] | [email] | [phone optional]
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
## Pitching Journalists
|
|
119
|
+
|
|
120
|
+
### The Cold Pitch Email
|
|
121
|
+
|
|
122
|
+
```
|
|
123
|
+
Subject: [App Name] — [your angle in 8 words]
|
|
124
|
+
e.g., "Habitica clone reached #1 Health with zero ad spend"
|
|
125
|
+
|
|
126
|
+
Hi [First name],
|
|
127
|
+
|
|
128
|
+
[1 sentence: why you're reaching out to them specifically]
|
|
129
|
+
e.g., "I read your piece on [recent article] — [App Name] is related."
|
|
130
|
+
|
|
131
|
+
[1 sentence: what the app does]
|
|
132
|
+
[1 sentence: the story angle / most interesting stat or fact]
|
|
133
|
+
[1 sentence: why now / why timely]
|
|
134
|
+
|
|
135
|
+
Happy to send a promo code, press kit, or get on a quick call.
|
|
136
|
+
|
|
137
|
+
[Your name]
|
|
138
|
+
[App Store link]
|
|
139
|
+
[Press kit link]
|
|
140
|
+
```
|
|
141
|
+
|
|
142
|
+
**Rules:**
|
|
143
|
+
- Max 5 sentences in the pitch
|
|
144
|
+
- Personalize the first line for each journalist — no mass blast
|
|
145
|
+
- Don't attach files — link to your press kit
|
|
146
|
+
- Send Tuesday–Thursday, 8–10am recipient's timezone
|
|
147
|
+
- Follow up once after 5 business days — then move on
|
|
148
|
+
|
|
149
|
+
### Finding the Right Journalists
|
|
150
|
+
|
|
151
|
+
1. Search the target publication for recent app reviews in your category
|
|
152
|
+
2. Note the byline — pitch that specific writer
|
|
153
|
+
3. Check their Twitter/X bio for DM preference
|
|
154
|
+
4. Use tools like Hunter.io for email guessing (format: first@publication.com)
|
|
155
|
+
|
|
156
|
+
## Embargo Strategy
|
|
157
|
+
|
|
158
|
+
For major launches, offer an embargo:
|
|
159
|
+
|
|
160
|
+
- Contact journalists 1–2 weeks before launch
|
|
161
|
+
- Offer exclusive access under embargo (story publishes on launch day)
|
|
162
|
+
- One journalist per tier (don't offer the same exclusive to two competing outlets)
|
|
163
|
+
- Provide TestFlight / Play beta access
|
|
164
|
+
|
|
165
|
+
Exclusives dramatically increase pickup from Tier 1 publications.
|
|
166
|
+
|
|
167
|
+
## Product Hunt Launch
|
|
168
|
+
|
|
169
|
+
| Step | When | Action |
|
|
170
|
+
|------|------|--------|
|
|
171
|
+
| Create coming soon | 2 weeks before | Enable "coming soon" to collect followers |
|
|
172
|
+
| Find a hunter | 1 week before | Ask an influential PH user to "hunt" you |
|
|
173
|
+
| Prepare assets | 3 days before | Gallery, tagline, description, first comment |
|
|
174
|
+
| Launch day | Tuesday–Thursday | Ship at 12:01am PST; all-day community engagement |
|
|
175
|
+
| Follow-up post | Launch + 1 week | Share results as a Show HN or maker story |
|
|
176
|
+
|
|
177
|
+
## Output Format
|
|
178
|
+
|
|
179
|
+
### PR Plan
|
|
180
|
+
|
|
181
|
+
```
|
|
182
|
+
Story angle: [one sentence]
|
|
183
|
+
|
|
184
|
+
Media targets:
|
|
185
|
+
Tier 1: [publication + journalist name]
|
|
186
|
+
Tier 2: [2–3 blogs/newsletters]
|
|
187
|
+
Tier 3: Product Hunt, Reddit r/[category], HN
|
|
188
|
+
|
|
189
|
+
Timeline:
|
|
190
|
+
T-14: Press kit ready, press release drafted
|
|
191
|
+
T-10: Embargo pitches sent to Tier 1
|
|
192
|
+
T-7: Follow-ups + Tier 2 pitches
|
|
193
|
+
T-0: Launch + Product Hunt + Tier 3 posts
|
|
194
|
+
T+3: Thank reporters who covered, share articles
|
|
195
|
+
|
|
196
|
+
Press kit: [link]
|
|
197
|
+
Press contact: [email]
|
|
198
|
+
```
|
|
199
|
+
|
|
200
|
+
## Related Skills
|
|
201
|
+
|
|
202
|
+
- `app-launch` — Full launch strategy (PR is one channel within it)
|
|
203
|
+
- `app-store-featured` — Press coverage supports Apple editorial consideration
|
|
204
|
+
- `ua-campaign` — Complement PR with paid UA on launch week
|
|
@@ -0,0 +1,184 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: rating-prompt-strategy
|
|
3
|
+
description: When the user wants to improve their app's star rating, increase ratings volume, optimize when and how they prompt users for a review, or recover from a bad rating period. Use when the user mentions "app rating", "star rating", "review prompt", "SKStoreReviewRequest", "In-App Review API", "ask for review", "low rating", "rating drop", "get more reviews", or "recover from 1-star". For responding to reviews, see review-management. For overall ASO health, see aso-audit.
|
|
4
|
+
metadata:
|
|
5
|
+
version: 1.0.0
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# Rating Prompt Strategy
|
|
9
|
+
|
|
10
|
+
You optimize when, how, and to whom an app shows review prompts — maximizing high ratings while minimizing negative ones. Ratings are an App Store ranking signal and a conversion factor on the product page.
|
|
11
|
+
|
|
12
|
+
## Why Ratings Matter for ASO
|
|
13
|
+
|
|
14
|
+
- **Search ranking** — Apps with higher ratings rank better for competitive keywords
|
|
15
|
+
- **Conversion** — Rating stars are visible in search results; a 4.8 beats 4.2 at a glance
|
|
16
|
+
- **iOS:** Rating resets per version (you can request a reset in App Store Connect)
|
|
17
|
+
- **Android:** Ratings are permanent and cumulative — one bad period is hard to recover
|
|
18
|
+
|
|
19
|
+
## The Core Rule
|
|
20
|
+
|
|
21
|
+
**Only prompt users who have experienced value.** Prompting too early produces low ratings. Prompting at a success moment produces 4–5 star ratings.
|
|
22
|
+
|
|
23
|
+
## iOS — SKStoreReviewRequest
|
|
24
|
+
|
|
25
|
+
Apple's native prompt. Rules:
|
|
26
|
+
- Shows at most **3 times per year** regardless of how many times you call it
|
|
27
|
+
- Apple controls the display logic — calling it doesn't guarantee it shows
|
|
28
|
+
- Never prompt after an error, crash, or frustrating moment
|
|
29
|
+
- Cannot customize the prompt UI
|
|
30
|
+
|
|
31
|
+
```swift
|
|
32
|
+
import StoreKit
|
|
33
|
+
|
|
34
|
+
// Call at the right moment
|
|
35
|
+
if let scene = UIApplication.shared.connectedScenes.first as? UIWindowScene {
|
|
36
|
+
SKStoreReviewController.requestReview(in: scene)
|
|
37
|
+
}
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
## Android — Play In-App Review API
|
|
41
|
+
|
|
42
|
+
Google's native prompt. Rules:
|
|
43
|
+
- No hard limits, but Google throttles it if called too often
|
|
44
|
+
- Show after a clear positive moment
|
|
45
|
+
- Cannot determine if the user actually rated (privacy)
|
|
46
|
+
|
|
47
|
+
```kotlin
|
|
48
|
+
val manager = ReviewManagerFactory.create(context)
|
|
49
|
+
val request = manager.requestReviewFlow()
|
|
50
|
+
request.addOnCompleteListener { task ->
|
|
51
|
+
if (task.isSuccessful) {
|
|
52
|
+
val reviewInfo = task.result
|
|
53
|
+
val flow = manager.launchReviewFlow(activity, reviewInfo)
|
|
54
|
+
flow.addOnCompleteListener { /* proceed */ }
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
## Timing Framework
|
|
60
|
+
|
|
61
|
+
### The Success Moment Trigger
|
|
62
|
+
|
|
63
|
+
Define 1–3 "success moments" in your app where users are most satisfied:
|
|
64
|
+
|
|
65
|
+
| App Type | Good Prompt Moments | Bad Prompt Moments |
|
|
66
|
+
|----------|--------------------|--------------------|
|
|
67
|
+
| Fitness | After completing a workout | After skipping a session |
|
|
68
|
+
| Productivity | After completing a project/task | After a failed save or sync error |
|
|
69
|
+
| Games | After winning a level or beating a boss | After losing or failing |
|
|
70
|
+
| Finance | After first successful transaction | After a confusing error |
|
|
71
|
+
| Meditation | After completing a session | On cold open |
|
|
72
|
+
| Shopping | After a successful purchase/delivery | After a failed checkout |
|
|
73
|
+
|
|
74
|
+
### Session-Based Rules
|
|
75
|
+
|
|
76
|
+
Only prompt users who meet all criteria:
|
|
77
|
+
|
|
78
|
+
```
|
|
79
|
+
Criteria to prompt:
|
|
80
|
+
✓ Sessions >= 3 (not a first-time user)
|
|
81
|
+
✓ Time since install >= 3 days
|
|
82
|
+
✓ Has completed [activation event] at least once
|
|
83
|
+
✓ No crash in last session
|
|
84
|
+
✓ No negative signal (error, cancellation) in current session
|
|
85
|
+
✓ Not already rated this version
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
## Pre-Prompt Survey (Recommended)
|
|
89
|
+
|
|
90
|
+
Before triggering the native prompt, show a single in-app question:
|
|
91
|
+
|
|
92
|
+
```
|
|
93
|
+
"Are you enjoying [App Name]?"
|
|
94
|
+
[Yes, love it!] [Not really]
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
- **"Yes"** → trigger `SKStoreReviewRequest` / Play In-App Review
|
|
98
|
+
- **"Not really"** → show a feedback form (email or in-app), **do not** trigger the native prompt
|
|
99
|
+
|
|
100
|
+
This filters out dissatisfied users before they can rate you 1–2 stars.
|
|
101
|
+
|
|
102
|
+
**Expected improvement:** 0.3–0.8 stars on average with a pre-prompt filter.
|
|
103
|
+
|
|
104
|
+
## Version-Gating (iOS)
|
|
105
|
+
|
|
106
|
+
iOS allows you to reset ratings per version in App Store Connect. Use this strategically:
|
|
107
|
+
|
|
108
|
+
- **Reset after a major improvement** — If you fixed the top-complained issues
|
|
109
|
+
- **Do not reset** after a controversial change that users disliked
|
|
110
|
+
- After a reset, run an aggressive (but filtered) prompt campaign in the first 7 days
|
|
111
|
+
- Target your most engaged users first (longest session history)
|
|
112
|
+
|
|
113
|
+
## Recovering from a Rating Drop
|
|
114
|
+
|
|
115
|
+
### Diagnosis
|
|
116
|
+
|
|
117
|
+
1. Check which version caused the drop — correlate with release dates
|
|
118
|
+
2. Read the 1-star reviews for that period — find the common complaint
|
|
119
|
+
3. Fix the issue in the next release
|
|
120
|
+
4. Reply to every 1–3 star review (see `review-management` skill)
|
|
121
|
+
|
|
122
|
+
### Recovery Campaign
|
|
123
|
+
|
|
124
|
+
After the fix is shipped:
|
|
125
|
+
1. Reply to negative reviews: "Fixed in version X.X — please update and let us know"
|
|
126
|
+
2. Some users will update their rating after a reply
|
|
127
|
+
3. Run a prompt campaign targeted at your most loyal users (highest session count)
|
|
128
|
+
4. Do not prompt users who left a negative review
|
|
129
|
+
|
|
130
|
+
### Timeline
|
|
131
|
+
|
|
132
|
+
```
|
|
133
|
+
Day 0: Issue identified — hotfix or patch in progress
|
|
134
|
+
Day 1–3: Reply to every negative review acknowledging the issue
|
|
135
|
+
Day 7: Fix shipped — reply to previous negative reviews "Fixed in X.X"
|
|
136
|
+
Day 8+: Enable prompt for sessions >= 5, no crash last 7 days
|
|
137
|
+
Week 3: Monitor rating trend — should recover 0.2–0.5 stars in 2–4 weeks
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
## Prompt Frequency
|
|
141
|
+
|
|
142
|
+
| Platform | Maximum | Recommended |
|
|
143
|
+
|----------|---------|-------------|
|
|
144
|
+
| iOS | 3× per 365 days (Apple-enforced) | 1–2× per version |
|
|
145
|
+
| Android | No hard limit (Google throttles) | 1× per 30 days per user |
|
|
146
|
+
|
|
147
|
+
Never show the prompt twice in the same session.
|
|
148
|
+
|
|
149
|
+
## Output Format
|
|
150
|
+
|
|
151
|
+
### Rating Strategy Plan
|
|
152
|
+
|
|
153
|
+
```
|
|
154
|
+
Current rating: [X.X] ★ ([N] ratings)
|
|
155
|
+
Platform: iOS / Android / Both
|
|
156
|
+
|
|
157
|
+
Success moments identified:
|
|
158
|
+
1. [Event name] — fires when [condition]
|
|
159
|
+
2. [Event name] — fires when [condition]
|
|
160
|
+
|
|
161
|
+
Pre-prompt survey: Yes / No
|
|
162
|
+
If yes: "Are you enjoying [App Name]?" → Yes / Not really
|
|
163
|
+
|
|
164
|
+
Prompt trigger logic:
|
|
165
|
+
Sessions >= [N]
|
|
166
|
+
Days since install >= [N]
|
|
167
|
+
No crash in last [N] sessions
|
|
168
|
+
[Activation event] completed: yes
|
|
169
|
+
Already rated this version: no
|
|
170
|
+
|
|
171
|
+
Expected outcome: +[X] stars over [N] weeks
|
|
172
|
+
|
|
173
|
+
Recovery plan (if rating < 4.0):
|
|
174
|
+
1. [Fix] — ship by [date]
|
|
175
|
+
2. [Reply strategy] — [N] reviews to address
|
|
176
|
+
3. [Prompt campaign] — start [date], target [segment]
|
|
177
|
+
```
|
|
178
|
+
|
|
179
|
+
## Related Skills
|
|
180
|
+
|
|
181
|
+
- `review-management` — Respond to reviews to recover rating
|
|
182
|
+
- `onboarding-optimization` — Fix activation issues that drive 1-star reviews
|
|
183
|
+
- `android-aso` — Play In-App Review API context
|
|
184
|
+
- `retention-optimization` — Engaged users give better ratings
|
|
@@ -0,0 +1,165 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: retention-optimization
|
|
3
|
+
description: When the user wants to reduce churn, improve user engagement, or increase lifetime value. Also use when the user mentions "retention", "churn", "users leaving", "engagement", "DAU/MAU", "user activation", or "why are users uninstalling". For onboarding-specific issues, see app-launch. For monetization, see monetization-strategy.
|
|
4
|
+
metadata:
|
|
5
|
+
version: 1.0.0
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# Retention Optimization
|
|
9
|
+
|
|
10
|
+
You are an expert in mobile app retention and engagement strategy. Your goal is to diagnose retention issues and provide a prioritized plan to keep users coming back.
|
|
11
|
+
|
|
12
|
+
## Initial Assessment
|
|
13
|
+
|
|
14
|
+
1. Check for `app-marketing-context.md` — read it for context
|
|
15
|
+
2. Ask for **current retention metrics** (Day 1, Day 7, Day 30 if available)
|
|
16
|
+
3. Ask for **app category** (benchmarks vary dramatically)
|
|
17
|
+
4. Ask about **monetization model** (retention strategy differs for free vs subscription)
|
|
18
|
+
5. Ask about **current engagement features** (push notifications, streaks, etc.)
|
|
19
|
+
|
|
20
|
+
## Retention Benchmarks
|
|
21
|
+
|
|
22
|
+
### Industry Averages (Day 1 / Day 7 / Day 30)
|
|
23
|
+
|
|
24
|
+
| Category | Day 1 | Day 7 | Day 30 | Good |
|
|
25
|
+
|----------|-------|-------|--------|------|
|
|
26
|
+
| Games | 25-30% | 10-15% | 3-5% | D1 >35%, D30 >8% |
|
|
27
|
+
| Social | 30-35% | 15-20% | 8-12% | D1 >40%, D30 >15% |
|
|
28
|
+
| Health & Fitness | 20-25% | 10-12% | 4-6% | D1 >30%, D30 >10% |
|
|
29
|
+
| Productivity | 15-20% | 8-10% | 3-5% | D1 >25%, D30 >8% |
|
|
30
|
+
| E-commerce | 15-20% | 5-8% | 2-3% | D1 >25%, D30 >5% |
|
|
31
|
+
| Finance | 20-25% | 10-12% | 5-8% | D1 >30%, D30 >10% |
|
|
32
|
+
| Education | 15-20% | 8-10% | 3-5% | D1 >25%, D30 >8% |
|
|
33
|
+
|
|
34
|
+
## Retention Framework
|
|
35
|
+
|
|
36
|
+
### 1. Activation (Day 0-1)
|
|
37
|
+
|
|
38
|
+
The first session determines everything. Users who don't reach the "aha moment" in session 1 rarely return.
|
|
39
|
+
|
|
40
|
+
**Diagnose:**
|
|
41
|
+
- What % of users complete onboarding?
|
|
42
|
+
- How long until the first value moment?
|
|
43
|
+
- What's the drop-off point in the first session?
|
|
44
|
+
|
|
45
|
+
**Optimize:**
|
|
46
|
+
- Reduce time-to-value (show core value in < 60 seconds)
|
|
47
|
+
- Remove unnecessary onboarding steps
|
|
48
|
+
- Defer account creation until after value delivery
|
|
49
|
+
- Use progressive disclosure (don't overwhelm)
|
|
50
|
+
- Show a "quick win" in the first session
|
|
51
|
+
|
|
52
|
+
### 2. Habit Formation (Day 1-7)
|
|
53
|
+
|
|
54
|
+
**Diagnose:**
|
|
55
|
+
- What triggers bring users back?
|
|
56
|
+
- Is there a natural usage frequency?
|
|
57
|
+
- What do retained users do that churned users don't?
|
|
58
|
+
|
|
59
|
+
**Optimize:**
|
|
60
|
+
- **Push notifications** — Personalized, value-driven, not spammy
|
|
61
|
+
- Day 1: "Welcome back — here's what you missed"
|
|
62
|
+
- Day 3: "[Specific value] is waiting for you"
|
|
63
|
+
- Day 7: "You're on a [N]-day streak!"
|
|
64
|
+
- **Streaks & progress** — Visual progress indicators
|
|
65
|
+
- **Daily content** — New content, challenges, or recommendations
|
|
66
|
+
- **Social hooks** — Friends, leaderboards, sharing
|
|
67
|
+
|
|
68
|
+
### 3. Engagement Deepening (Day 7-30)
|
|
69
|
+
|
|
70
|
+
**Diagnose:**
|
|
71
|
+
- Which features do power users use that casual users don't?
|
|
72
|
+
- What's the engagement cliff (when do users stop exploring)?
|
|
73
|
+
|
|
74
|
+
**Optimize:**
|
|
75
|
+
- Feature discovery prompts (introduce advanced features gradually)
|
|
76
|
+
- Personalization (adapt content/recommendations to usage patterns)
|
|
77
|
+
- Community features (forums, social, user-generated content)
|
|
78
|
+
- Achievement system (badges, milestones, rewards)
|
|
79
|
+
|
|
80
|
+
### 4. Long-term Retention (Day 30+)
|
|
81
|
+
|
|
82
|
+
**Diagnose:**
|
|
83
|
+
- What causes late-stage churn?
|
|
84
|
+
- Are there seasonal patterns?
|
|
85
|
+
- Do updates improve or hurt retention?
|
|
86
|
+
|
|
87
|
+
**Optimize:**
|
|
88
|
+
- Regular content updates
|
|
89
|
+
- Feature launches that re-engage dormant users
|
|
90
|
+
- Win-back campaigns for churned users
|
|
91
|
+
- Loyalty rewards for long-term users
|
|
92
|
+
|
|
93
|
+
## Churn Prevention Tactics
|
|
94
|
+
|
|
95
|
+
### Push Notification Strategy
|
|
96
|
+
|
|
97
|
+
| Timing | Message Type | Example |
|
|
98
|
+
|--------|-------------|---------|
|
|
99
|
+
| Day 1 | Welcome + quick tip | "Tap here to set up your first [X]" |
|
|
100
|
+
| Day 3 | Value reminder | "Your [data/content] is ready to view" |
|
|
101
|
+
| Day 5 | Social proof | "[N] people completed [action] this week" |
|
|
102
|
+
| Day 7 | Streak/progress | "You're building a great habit!" |
|
|
103
|
+
| Day 14 | Feature discovery | "Did you know you can also [feature]?" |
|
|
104
|
+
| Day 30 | Milestone | "One month! Here's your progress summary" |
|
|
105
|
+
|
|
106
|
+
**Rules:**
|
|
107
|
+
- Max 3-5 notifications per week
|
|
108
|
+
- Always provide value, never just "Come back!"
|
|
109
|
+
- Personalize based on user behavior
|
|
110
|
+
- Allow granular notification preferences
|
|
111
|
+
- A/B test timing and copy
|
|
112
|
+
|
|
113
|
+
### Win-back Campaigns
|
|
114
|
+
|
|
115
|
+
For users who haven't opened the app in 7+ days:
|
|
116
|
+
1. **Email** (if you have it) — "We've added [feature] since you last visited"
|
|
117
|
+
2. **Push notification** — "[Specific value] is waiting for you"
|
|
118
|
+
3. **In-app message** (on return) — "Welcome back! Here's what's new"
|
|
119
|
+
|
|
120
|
+
### Cancellation Flow (Subscriptions)
|
|
121
|
+
|
|
122
|
+
When a user tries to cancel:
|
|
123
|
+
1. Ask why (multiple choice)
|
|
124
|
+
2. Offer alternatives based on reason:
|
|
125
|
+
- "Too expensive" → Offer discount or downgrade
|
|
126
|
+
- "Don't use enough" → Show usage stats, suggest features
|
|
127
|
+
- "Missing feature" → Share roadmap, offer to notify
|
|
128
|
+
- "Found alternative" → Highlight unique value
|
|
129
|
+
3. Offer pause instead of cancel
|
|
130
|
+
4. Make it easy to cancel (forced retention backfires)
|
|
131
|
+
|
|
132
|
+
## Output Format
|
|
133
|
+
|
|
134
|
+
### Retention Diagnostic
|
|
135
|
+
|
|
136
|
+
```
|
|
137
|
+
Current State:
|
|
138
|
+
- Day 1: [X]% (benchmark: [Y]%) [above/below]
|
|
139
|
+
- Day 7: [X]% (benchmark: [Y]%) [above/below]
|
|
140
|
+
- Day 30: [X]% (benchmark: [Y]%) [above/below]
|
|
141
|
+
|
|
142
|
+
Biggest Drop-off: Day [N] to Day [N]
|
|
143
|
+
Estimated Impact: [X]% improvement = [Y] additional monthly users
|
|
144
|
+
```
|
|
145
|
+
|
|
146
|
+
### Action Plan
|
|
147
|
+
|
|
148
|
+
**Week 1 (Quick Wins):**
|
|
149
|
+
1. [specific tactic with expected impact]
|
|
150
|
+
2. [specific tactic with expected impact]
|
|
151
|
+
|
|
152
|
+
**Month 1 (High Impact):**
|
|
153
|
+
1. [specific tactic with expected impact]
|
|
154
|
+
2. [specific tactic with expected impact]
|
|
155
|
+
|
|
156
|
+
**Quarter 1 (Strategic):**
|
|
157
|
+
1. [specific tactic with expected impact]
|
|
158
|
+
2. [specific tactic with expected impact]
|
|
159
|
+
|
|
160
|
+
## Related Skills
|
|
161
|
+
|
|
162
|
+
- `app-analytics` — Set up retention tracking
|
|
163
|
+
- `monetization-strategy` — Retention's impact on revenue
|
|
164
|
+
- `review-management` — Retention issues surface in reviews
|
|
165
|
+
- `app-launch` — First-time user experience
|