
App Store
- 451 installs
- 591 repo stars
- Updated July 24, 2026
- rshankras/claude-code-apple-skills
app-store is a Claude Code skill that orchestrates App Store Optimization workflows—metadata, screenshots, keywords, review responses, Search Ads, and rejection handling—for developers shipping iOS apps who need App Stor
About
app-store is a Claude Code skill from rshankras/claude-code-apple-skills that bundles nine App Store sub-skills behind one router SKILL.md for iOS launch work. It delegates to modules for promotional text (170 characters), full descriptions (4000 characters), keyword fields (100 characters), 5–10 screenshot storyboards, review-response templates, Apple Search Ads campaign structure, and rejection-handler checklists covering the top 20 common rejections. The skill also references nine related generator skills for StoreKit offers, custom product pages, in-app events, and asset specs. Developers reach for app-store when an Xcode build is ready for App Store Connect and they need ASO copy, submission prep, or Resolution Center responses without manually hunting Apple guideline docs.
- Structures App Store metadata and keywords
- Covers review guidelines and rejection avoidance
- Guides screenshot and preview asset planning
- Supports version and localization submission steps
- Aligns listing copy with conversion best practices
App Store by the numbers
- 451 all-time installs (skills.sh)
- +22 installs in the week ending Jul 26, 2026 (Skillselion tracking)
- Ranked #315 of 1,039 Mobile Development skills by installs in the Skillselion catalog
- Data as of Aug 5, 2026 (Skillselion catalog sync)
npx skills add https://github.com/rshankras/claude-code-apple-skills --skill app-storeAdd your badge
Show developers this skill is listed on Skillselion. Paste this into your README.
| Installs | 451 |
|---|---|
| repo stars | ★ 591 |
| Last updated | July 24, 2026 |
| Repository | rshankras/claude-code-apple-skills ↗ |
How do you optimize iOS App Store listings for ASO?
Prepare App Store listings, metadata, screenshots guidance, review notes, and submission checklists so iOS apps pass review and rank for target keywords at go-live.
Who is it for?
iOS developers preparing an App Store Connect submission who need ASO copy, screenshot planning, and review-guideline checklists in one Claude Code workflow.
Skip if: Android Play Store publishing, backend API development, or teams that only need in-app SwiftUI implementation without storefront metadata work.
When should I use this skill?
A developer asks for App Store description copy, ASO keywords, screenshot captions, Apple Search Ads setup, App Review rejection help, or a pre-submission metadata checklist before uploading to App Store Connect.
What you get
App Store promotional text, 4000-character descriptions, keyword field sets, screenshot storyboards with captions, review-response drafts, Search Ads campaign plans, and rejection Resolution Center templates.
- App Store metadata copy within Apple character limits
- ASO keyword and screenshot caption plans
- App Review rejection response templates
By the numbers
- Bundles 9 sub-skill modules under skills/app-store/
- Enforces Apple metadata limits: 170-char promo, 4000-char description, 100-char keywords
- rejection-handler documents top 20 common App Review rejections with fixes
Files
App Description Writer
Generate compelling App Store descriptions that convert browsers into users.
When This Skill Activates
- User needs to write initial App Store description
- User wants to improve existing description
- User is preparing for a major update
- User asks about promotional text or What's New
Information Gathering
Before writing, ask about:
1. App Basics
- What does the app do? (one sentence)
- Who is it for? (target audience)
- What problem does it solve?
2. Key Features
- Top 3-5 features
- What makes it unique vs competitors?
- Any awards or recognition?
3. Social Proof
- Number of users/downloads (if impressive)
- Notable reviews or press mentions
- Any partnerships or integrations?
4. Tone
- Professional / Casual / Fun / Technical?
- Brand voice keywords?
Output Format
Generate all three text types:
1. Promotional Text (170 characters)
- First thing users see
- Should create curiosity or urgency
- Can be updated without app review
- Good for seasonal/sale messaging
2. Full Description (4000 characters max)
Structure:
[Opening Hook - 1-2 sentences, problem/benefit focused]
[Key Features with emoji bullets]
• Feature 1 - benefit
• Feature 2 - benefit
• Feature 3 - benefit
[Social Proof paragraph - optional]
[How it works - brief explanation]
[Call to action]
[Support/contact info]3. What's New (4000 characters)
For updates:
[Version X.X highlights]
NEW
• Feature addition
IMPROVED
• Enhancement
FIXED
• Bug fix
Thank you for your feedback!Best Practices
Do's
- Lead with the biggest benefit
- Use short paragraphs (2-3 lines max)
- Include relevant keywords naturally
- Use emojis sparingly for scannability
- End with clear call-to-action
- Mention if there's a free trial/tier
Don'ts
- Don't start with "Welcome to..."
- Don't use ALL CAPS excessively
- Don't mention prices (they change)
- Don't claim "#1" or "best" without proof
- Don't mention competitors by name
- Don't include URLs (they're not clickable)
Examples
Promotional Text Examples
Productivity App:
Transform chaos into clarity. The task manager that adapts to how YOU work.Weather App:
Know before you go. Hyperlocal forecasts down to your street corner. ⛅️Finance App:
Your money, finally making sense. Budgeting that doesn't feel like homework.Description Opening Examples
Problem-First:
Tired of losing track of important tasks? [App] turns your scattered thoughts
into organized action plans in seconds.Benefit-First:
Capture ideas the moment they strike. [App] is the fastest way to go from
thought to organized note, anywhere.Curiosity-First:
What if your to-do list actually helped you get things done? Introducing
a smarter way to manage your day.Localization Tips
When localizing descriptions:
- Don't just translate—adapt to cultural context
- Research local competitors' descriptions
- Adjust feature emphasis by market
- Use native speakers for review
- Consider character limits in other languages (German expands ~30%)
Character Limits Reference
| Field | Limit |
|---|---|
| App Name | 30 characters |
| Subtitle | 30 characters |
| Promotional Text | 170 characters |
| Description | 4000 characters |
| What's New | 4000 characters |
| Keywords | 100 characters |
Templates
Template: Utility App
[One-line value proposition]
Stop [pain point]. Start [desired outcome].
✨ KEY FEATURES
• [Feature 1] — [Benefit in user terms]
• [Feature 2] — [Benefit in user terms]
• [Feature 3] — [Benefit in user terms]
• [Feature 4] — [Benefit in user terms]
💡 HOW IT WORKS
[2-3 sentences explaining the core flow]
🎯 PERFECT FOR
• [User type 1]
• [User type 2]
• [User type 3]
[Social proof if available]
Download now and [call to action with benefit].
Questions? We're here to help: [support email]Template: Creative App
[Evocative opening that sparks imagination]
[App Name] puts [creative power] in your pocket.
🎨 CREATE
• [Creative feature 1]
• [Creative feature 2]
• [Creative feature 3]
📤 SHARE
• [Sharing/export feature]
• [Community feature if applicable]
🔓 UNLOCK YOUR CREATIVITY
[Inspirational paragraph about what users can achieve]
Join [X] creators already using [App Name].
[Call to action]Template: What's New
Thanks for using [App Name]! Here's what's new in version X.X:
🆕 NEW
• [Major new feature with brief explanation]
⚡️ IMPROVED
• [Performance improvement]
• [UX enhancement]
🔧 FIXED
• [Bug fix users complained about]
Love [App Name]? Leave us a review — it helps more than you know! 💙
Feedback? [support email]Advanced ASO Tactics
Hidden strategies that most developers don't know. These can significantly boost discoverability.
1. Cross-Localization (10x Your Keywords)
Apple indexes keywords from multiple locales per storefront. Each additional locale gives you up to 160 extra indexable characters (30 title + 30 subtitle + 100 keywords). For the US alone, that's up to 1,440 bonus characters.
US App Store — 10 Indexed Locales
| # | Locale | Code | Notes |
|---|---|---|---|
| 1 | English (US) | en-US | Primary |
| 2 | Spanish (Mexico) | es-MX | Most commonly used secondary |
| 3 | Arabic | ar | |
| 4 | Chinese (Simplified) | zh-Hans | |
| 5 | Chinese (Traditional) | zh-Hant | |
| 6 | French | fr | |
| 7 | Korean | ko | |
| 8 | Portuguese (Brazil) | pt-BR | |
| 9 | Russian | ru | |
| 10 | Vietnamese | vi |
How to Use
In App Store Connect, add secondary localizations with English keywords (you don't need to translate — English words index for the US market regardless of which locale they're in):
English (US) Keywords:
roommate,group,cost,trip,tab,owe,money,tracker,pay,debt
Spanish (MX) Keywords (English!):
apartment,utilities,travel,vacation,dinner,friends,shared,divide,fair,easy
Portuguese (BR) Keywords (English!):
budget,household,groceries,restaurant,rent,settle,balance,fair,receipt,reimburse
Arabic Keywords (English!):
colleague,lunch,cab,uber,airbnb,weekend,event,party,wedding,gift
... repeat for remaining locales with NEW unique keywords each timeRules
- No duplicate words across ANY locale — each word is counted only once even across locales, so repetition provides zero ranking boost
- Words from different locales DON'T combine into phrases (only words within the same locale combine)
- You CAN use English in any locale if targeting an English-speaking market
- Apply the same Title → Subtitle → Keywords dedup cascade within each locale
- Prioritize your highest-value keywords in en-US (highest weight), use secondary locales for long-tail and supplementary terms
Cross-Localization for All Major Markets
| Market | Primary Locale | Secondary Locales Indexed |
|---|---|---|
| United States | English (US) | Spanish (MX), Arabic, Chinese (Simplified), Chinese (Traditional), French, Korean, Portuguese (BR), Russian, Vietnamese |
| Canada | English (Canada) | French (Canada) |
| United Kingdom | English (UK) | — (single locale) |
| Australia | English (Australia) | — (single locale) |
| Mexico | Spanish (Mexico) | English (US) |
| Brazil | Portuguese (Brazil) | English (US) |
| Japan | Japanese | English (US) |
| South Korea | Korean | English (US) |
| China (Mainland) | Chinese (Simplified) | English (US) |
| Taiwan | Chinese (Traditional) | English (US) |
| Germany | German | English (UK) |
| France | French | English (UK) |
| Spain | Spanish (Spain) | English (UK), Catalan |
| Italy | Italian | English (UK) |
| Netherlands | Dutch | English (UK) |
| Portugal | Portuguese (Portugal) | English (UK) |
| Russia | Russian | English (UK) |
| India | English (India) | Hindi |
| Switzerland | German (Switzerland) | French, Italian, English (UK) |
| Belgium | Dutch (Belgium) | French (Belgium) |
| Sweden | Swedish | English (UK) |
| Norway | Norwegian | English (UK) |
| Denmark | Danish | English (UK) |
| Finland | Finnish | English (UK) |
Key pattern: English (UK) is the fallback for most European markets. English (US) is the fallback for most Asian and Latin American markets.
Implementation Priority
For an English-language app targeting the US market:
Phase 1 (Day 1): Set up en-US with your best keywords
Phase 2 (Day 1): Add es-MX with next-best English keywords
Phase 3 (Week 1): Add pt-BR, fr, ko with more English keywords
Phase 4 (Week 2): Add zh-Hans, zh-Hant, ar, ru, vi to fill remaining slots
Phase 5 (Week 3): If targeting EU/Asia, add en-UK keywords for European reachCharacter Budget Calculator
US Market Total Indexable Characters:
10 locales × (30 title + 30 subtitle + 100 keywords) = 1,600 characters
Minus primary en-US: = 1,440 bonus characters
Minus realistic dedup overhead (~15%): ≈ 1,220 usable bonus characters
That's 12x your single-locale keyword capacity.2. Screenshot Text Indexing (June 2025)
Apple now uses OCR to read screenshot captions and indexes them for search.
What Changed
Before: Screenshots = conversion only
Now: Screenshots = conversion + keyword rankingWhere Apple Scans
Apple OCR focuses on top and bottom of screenshots:
┌─────────────────────┐
│ "SPLIT BILLS FAST" │ ← TOP: Keywords here
│ │
│ [App UI] │
│ │
│ "With roommates" │ ← BOTTOM: Keywords here
└─────────────────────┘Caption Strategy
| Old Caption (Bad) | New Caption (Keyword-Rich) |
|---|---|
| "Easy to use!" | "Split Bills Instantly" |
| "Track everything" | "Track Shared Expenses" |
| "Simple & fast" | "Settle Up with Friends" |
Important Notes
- Keywords in screenshots DON'T compete with metadata keywords
- Apple EXPECTS keyword repetition in screenshots (unlike metadata)
- Use your most important keywords in first 2 screenshots
- Reported 22% boost in search visibility within 30 days
3. In-App Events (Free Featuring)
Apple allows 5 live events that appear in search results. Most developers ignore this.
Benefits
- Events get separate search indexing
- Can appear in "Events" tab = extra visibility
- Apple sometimes features interesting events
- Re-engages existing users
Event Ideas by Category
| Category | Event Idea |
|---|---|
| Finance | "New Year Budget Challenge" |
| Health | "30-Day Fitness Challenge" |
| Productivity | "Productivity Week" |
| Education | "Back to School Special" |
| Games | "Weekend Tournament" |
Event Metadata = More Keywords
Event title and description are indexed separately from your app's main keywords.
4. First 48 Hours Velocity Boost
Apple gives new apps/updates a temporary ranking boost. Maximize it:
Launch Strategy
1. Have friends/family download on Day 1 2. Share on social media immediately 3. Email your list on launch day 4. Coordinate with any press/coverage
Update Strategy
- Don't waste updates on bug fixes alone
- Bundle bug fixes with keyword changes
- Time updates for when you can promote them
5. Manipulate "Most Helpful" Reviews
Hidden feature: Long-press any review → Mark as "Helpful"
Strategy
1. Find your best 5-star reviews 2. Long-press each one 3. Mark as "Helpful" 4. They'll rise to "Most Helpful" section
Your top 3 "most helpful" reviews show first to potential users.
6. UK English for Extra Keywords
Add English (UK) localization with different keywords. These index for:
- United Kingdom
- Partially for other EU countries
US vs UK Variations
| US Term | UK Term |
|---|---|
| roommate | flatmate |
| apartment | flat |
| vacation | holiday |
| check | cheque |
| color | colour |
| organization | organisation |
7. Left-to-Right Keyword Weight
Apple's algorithm reads title/subtitle left to right and gives more weight to words that appear first.
Examples
Weaker: Bills Split - Expense App
Stronger: Expense Split - Settle Up
↑ Most important word firstApplication
- Put your primary keyword FIRST in title
- Put secondary keyword FIRST in subtitle
- Front-load your keyword field too
8. Singular vs Plural (Don't Waste Space)
Apple treats these as equivalent:
bill = bills
expense = expenses
tracker = trackersNever include both forms — it wastes precious characters.
9. Stop Words Are Auto-Indexed
Don't waste keyword space on:
a, an, the, and, for, with, of, to, by, app, applicationApple indexes these automatically.
10. Review Keywords = Ranking Boost
When users mention keywords in reviews, it can boost ranking.
Prompt Strategy
"If you love splitting bills with roommates,
please leave a review!"Natural keyword inclusion in reviews = organic boost.
11. Conversion Rate Affects Ranking
Apple tracks impressions → downloads ratio. Higher conversion = higher ranking.
Improve Conversion
- Better icon (A/B test with Product Page Optimization)
- First screenshot is most important (70% decide from it alone)
- First 3 words of subtitle are visible in search results
Quick Reference Checklist
Zero-Risk Additions
- [ ] Add all 9 secondary US locales (es-MX, ar, zh-Hans, zh-Hant, fr, ko, pt-BR, ru, vi) with unique English keywords
- [ ] Add en-UK locale with extra keywords (for European market reach)
- [ ] Update screenshot captions with keywords
- [ ] Create In-App Events
- [ ] Mark best reviews as "Helpful"
Optimization Rules
- [ ] No duplicate words across fields (Title → Subtitle → Keywords cascade)
- [ ] No duplicate words across locales (each word counted once globally)
- [ ] No spaces after commas in keywords
- [ ] No stop words wasting space
- [ ] No singular AND plural forms
- [ ] Primary keywords at START of title/subtitle
- [ ] Most important keywords in first 2 screenshots
Tracking
- [ ] Note baseline metrics before changes
- [ ] Check rankings weekly
- [ ] Update keywords every 4-6 weeks
- [ ] Swap underperforming keywords (rank >100)
Sources
Existing App Optimization Strategy
How to improve ASO for apps that already have downloads without risking existing traffic.
The Risk
When optimizing an existing app:
- You can see rankings but not which keywords drive actual downloads
- Changing keywords that are working can kill traffic
- Recovery can take weeks if you make mistakes
Identify Traffic Sources
Method 1: Math-Based Estimation
Traffic from a keyword ≈ Popularity × Position Factor
| Position | Approx. Click Share |
|---|---|
| #1-3 | 40-60% of searches |
| #4-10 | 10-25% of searches |
| #11-30 | 2-8% of searches |
| #30+ | <1% of searches |
Method 2: Opportunity Score
Score = (Popularity × 2) - Difficulty
High Score + Good Rank = Likely driving traffic
Low Score + Any Rank = Probably not driving trafficAnalysis Template
| Keyword | Pop | Rank | Est. Traffic | Protect? |
|---|---|---|---|---|
| [keyword] | [X] | #[Y] | High/Med/Low | Yes/No |
Example:
| Keyword | Pop | Rank | Est. Traffic | Protect? |
|---|---|---|---|---|
| settle up | 29 | #4 | HIGH | YES |
| expense split | 5 | #6 | Low | No |
| settle | 21 | #18 | Medium | YES |
| split bill | 21 | #211 | None | No |
The Golden Rule
Never touch what's working.
KEEP (don't change):
- Keywords where you rank Top 10 + Popularity >15
- Your app title if ranking well for branded terms
SAFE TO CHANGE:
- Subtitle (if current keywords not ranking well)
- Keyword field (low-ranking keywords only)
- Add new locales (purely additive)
- Screenshot captions (purely additive)Phased Rollout Plan
Phase 1: Additive Only (Week 1-2)
Zero Risk Actions:
- [ ] Add Spanish (Mexico) locale with new keywords
- [ ] Add English (UK) locale with new keywords
- [ ] Update screenshot captions with keywords
- [ ] Create 1-2 In-App Events
These don't affect existing rankings — they only ADD opportunities.
Phase 2: Monitor & Measure (Week 3-4)
Track in your ASO tool:
- [ ] Did new keywords start ranking?
- [ ] Did downloads increase?
- [ ] Did existing rankings stay stable?
Baseline Tracking Template:
Date: ___________
Daily downloads: ___
Keyword 1: ___ rank #___
Keyword 2: ___ rank #___
Keyword 3: ___ rank #___Phase 3: Careful Optimization (Week 5-6)
Only if Phase 2 shows stable/improved metrics:
- [ ] Update subtitle only (keep title same)
- [ ] Replace lowest-performing keywords in keyword field
- [ ] Keep all top-ranking keywords untouched
Phase 4: Evaluate Full Changes (Week 7+)
Only if downloads stable/increased:
- Consider title adjustments (if needed)
- Continue keyword field optimization
- Always protect your best-ranking keywords
Safe Change Examples
Subtitle Change
Before: "Simple expense sharing"
After: "Split bills & rent easily"
Why Safe:
- Keeps core meaning
- Adds target keywords (bills, rent)
- Doesn't remove existing ranking keywordsKeyword Field Change
Before: task,todo,list,note,reminder,productivity,organize,manage,plan
After: todo,reminder,productivity,organize,roommate,trip,dinner,vacation
Why Safe:
- Removed low-value keywords (task, list, note - rank >100)
- Kept high-value keywords (todo, reminder, productivity)
- Added new opportunity keywordsWhat NOT to Change
Protect These Keywords
1. Top 10 Rankings — Don't touch if Pop >15 2. Branded Terms — Your app name/company 3. Core Category Terms — If you're a "timer app", keep "timer"
Red Flags
Don't change if:
- Keyword ranks Top 5 with Pop >20
- Keyword drives measurable traffic (from Apple Search Ads data)
- It's your app's core identity term
Apple Search Ads for Data
If possible, run a small Apple Search Ads campaign ($20-50):
What You Learn
- Exact keywords driving installs
- Conversion rates per keyword
- Cost per install (indicates competition)
Campaign Strategy
1. Create "Exact Match" ad groups 2. Add your suspected traffic-driving keywords 3. Run for 1-2 weeks 4. Analyze which keywords convert
This data is gold for deciding what to protect vs. change.
Recovery Plan
If rankings drop after changes:
Immediate (Day 1-3)
- Document what changed
- Check if rankings are actually down or just fluctuating
- Don't panic — rankings fluctuate naturally
Short-Term (Week 1)
- If significant drop, consider reverting changes
- Reversion takes ~1 week to re-index
Long-Term (Week 2+)
- If still down, revert to previous metadata
- Wait for full re-indexing (2-4 weeks)
- Try smaller changes next time
Checklist: Before Making Changes
- [ ] Documented current rankings for all tracked keywords
- [ ] Identified which keywords are likely driving traffic
- [ ] Listed keywords that are PROTECTED (won't change)
- [ ] Planned additive changes first (new locales, screenshots)
- [ ] Have a rollback plan if things go wrong
- [ ] Set calendar reminder to check metrics in 1 week
Example: Safe Optimization Flow
App: Expense Split (7 downloads/day)
Current Rankings:
- "settle up" — #4, Pop 29 → PROTECT
- "settle" — #18, Pop 21 → PROTECT
- "split bill" — #211, Pop 21 → SAFE TO TARGET
Phase 1 Plan: 1. Add Spanish (MX) with: roommate,apartment,utilities,dinner,trip,vacation 2. Add screenshot caption: "Split Bills with Roommates" 3. DON'T change title (has "Settle Up")
Phase 2 Monitor:
- Check if new keywords start ranking
- Verify "settle up" stays at #4
- Track daily downloads
Phase 3 (if stable):
- Update subtitle to include "split bills"
- Replace low-value keywords in keyword field
Keyword Selection Criteria
How to evaluate and select keywords for maximum impact with achievable rankings.
The Indie Developer Strategy
From successful indie devs building $200-2,000/month apps:
Find keywords with:
- Popularity > 20 (enough traffic)
- Difficulty < 60 (beatable competition)Build simple, single-feature apps around those keywords.
Understanding Scores
Popularity Score (0-100)
From Apple Search Ads. Represents search volume.
| Score | Traffic Level | Notes |
|---|---|---|
| 5-15 | Very Low | Only target if very niche |
| 16-25 | Low | Good for long-tail, low competition |
| 26-40 | Medium | Sweet spot for indie apps |
| 41-60 | Good | Worthwhile if difficulty allows |
| 61-80 | High | Usually high competition |
| 81-100 | Very High | Dominated by brands |
Important: Popularity is exponential, not linear.
- Score 50 is NOT 2x traffic of Score 25
- Score 80 could be 10x traffic of Score 40
Difficulty Score (0-100)
Estimated from competitor strength and count.
| Score | Competition | Your Chances |
|---|---|---|
| 0-25 | Very Low | Easy ranking |
| 26-40 | Low | Good opportunity |
| 41-55 | Medium | Achievable with good ASO |
| 56-70 | High | Hard, need excellent app + ASO |
| 71-100 | Very High | Dominated by established apps |
The Sweet Spot Matrix
│ Difficulty
│ Low (<40) │ Med (40-55) │ High (>55)
────────┼────────────┼─────────────┼──────────────
Pop │ │ │
High │ GOLD │ WORTH IT │ LONG-TERM
(40+) │ Target Now │ Target Now │ GOAL
────────┼────────────┼─────────────┼──────────────
Pop │ │ │
Med │ GREAT │ GOOD │ SKIP
(25-40) │ Target Now │ Consider │ Too Hard
────────┼────────────┼─────────────┼──────────────
Pop │ │ │
Low │ MAYBE │ SKIP │ SKIP
(15-25) │ Easy Win │ Not Worth │ Not Worth
────────┼────────────┼─────────────┼──────────────
Pop │ │ │
V.Low │ SKIP │ SKIP │ SKIP
(<15) │ No Traffic │ No Traffic │ No TrafficOpportunity Score Formula
Calculate opportunity score for comparison:
Opportunity Score = (Popularity × 2) - Difficulty
Bonus: +20 if Pop 20-50 AND Diff <40 (sweet spot)
Bonus: +10 if Pop 20-50 AND Diff <50 (good range)
Penalty: -30 if Diff >70 (very competitive)Grading Scale
| Score | Grade | Action |
|---|---|---|
| 80+ | A+ | HIGH PRIORITY - Target immediately |
| 60-79 | A | Good opportunity |
| 40-59 | B | Worth pursuing |
| 20-39 | C | Consider if relevant |
| 0-19 | D | Low priority |
| <0 | F | Skip |
Example Calculations
"brown noise" - Pop 25, Diff 30
Score = (25 × 2) - 30 + 20 (bonus) = 40 → Grade B
"meditation timer" - Pop 35, Diff 45
Score = (35 × 2) - 45 + 10 (bonus) = 35 → Grade C
"podcast app" - Pop 70, Diff 85
Score = (70 × 2) - 85 - 30 (penalty) = 25 → Grade C (despite high pop!)Keyword Categories by Opportunity
Tier 1: Target Immediately
- Pop 25-50, Diff <40
- Pop 40-60, Diff <50
- Score 60+
Tier 2: Good Opportunities
- Pop 20-40, Diff 40-55
- Pop 50-70, Diff 50-60
- Score 40-59
Tier 3: Long-term Goals
- Pop 60+, Diff 60-75
- Build app strength first, then target
Tier 4: Skip
- Pop <15 (not enough traffic)
- Diff >75 (too competitive)
- Score <20
Finding Keywords to Analyze
Tool: Astro (Recommended for Indies)
1. Search a seed keyword 2. Note Popularity and Difficulty 3. Check "Related Keywords" suggestions 4. Look for sweet spot matches
Seed Keyword Strategy
Start with generic terms, find specific variants:
Seed: "timer"
├── pomodoro timer (Pop 35, Diff 42) ✅
├── study timer (Pop 28, Diff 38) ✅
├── focus timer (Pop 40, Diff 55) ⚠️
├── interval timer (Pop 32, Diff 35) ✅
└── countdown timer (Pop 45, Diff 62) ⚠️
Best: "interval timer", "pomodoro timer", "study timer"Category-Specific Opportunities
Based on Nov 2025 App Store data:
| Category | High-Opportunity Keywords |
|---|---|
| Health | "ai coach", "brown noise", "pink noise" |
| Business | "invoice", "fax", "side hustle" |
| Utilities | "storage cleaner", "free up space" |
| Lifestyle | "mood tracker", "gratitude journal" |
| Music | "metronome", "tuner" |
| Productivity | "pomodoro timer", "habit tracker" |
Competitor Keyword Analysis
Finding Keyword Gaps
1. In Astro, tap on competitor apps 2. See what keywords they rank for 3. Find keywords where:
- They rank #20-50 (not optimized)
- You don't rank at all
- Pop >20, Diff <50
Steal Strategy
Target keywords competitors rank for weakly:
- Their rank: #30-100
- Your potential: Top 10 with good ASO
Trademark Considerations
Check Before Targeting
Some keywords are trademarked:
- "Divvy" — Bill.com trademark
- "Splitwise" — Brand name
- "Venmo" — Brand name
Safe vs Risky Keywords
| Safe (Generic) | Risky (Trademarked) |
|---|---|
| split bill | splitwise |
| expense tracker | divvy |
| payment | venmo |
| settle up | paypal |
Rule
If a keyword shows high popularity but is a brand name:
- Traffic is people looking for THAT app
- Even if you rank, conversion will be poor
- May get trademark complaint
Quick Evaluation Checklist
For each keyword:
- [ ] Popularity >20? (enough traffic)
- [ ] Difficulty <60? (beatable)
- [ ] Not a trademark/brand?
- [ ] Relevant to your app?
- [ ] Makes sense in title/subtitle/keywords?
If all yes → Target it If any no → Skip or deprioritize
Keyword Tracking Template
keyword,popularity,difficulty,opportunity_score,grade,current_rank,action
pomodoro timer,35,42,48,B,-,Target in subtitle
study timer,28,38,38,C,-,Add to keywords
interval timer,32,35,49,B,-,Target in title
meditation,65,78,-31,F,-,Skip - too competitiveWhen to Re-evaluate
- Weekly: Check ranking changes
- Monthly: Re-run opportunity analysis
- Quarterly: Major keyword strategy review
- Seasonally: Add seasonal keywords (holiday, summer, etc.)
Marketing Strategy Decision Matrix
Rules engine that maps app attributes to recommended App Store promotional features.
How to Use This Matrix
1. Identify the app's monetization model, lifecycle stage, and category 2. Look up each dimension in the tables below 3. Combine recommendations — features appearing in multiple dimensions get higher priority 4. Apply the priority scoring at the bottom
---
Dimension 1: Monetization Model → Features
Subscription Apps
| Feature | Relevance | Rationale |
|---|---|---|
| Introductory Offers | Essential | Free trial or discounted first period drives conversion |
| Promotional Offers | Essential | Re-engage subscribers at risk of churning |
| Win-Back Offers | Essential | Recover churned subscribers with targeted pricing |
| Offer Codes | High | Partner distribution, influencer campaigns |
| Promoted IAP | High | Show subscription directly on product page |
| In-App Events | High | Drive engagement that justifies subscription value |
| Custom Product Pages | Medium | Different pages for different user segments |
| Product Page Optimization | Medium | Test messaging that drives subscription conversion |
| Featuring Nomination | Medium | Increased visibility for subscriber acquisition |
| Pre-Orders | Low | Only for major version launches |
Paid Upfront Apps
| Feature | Relevance | Rationale |
|---|---|---|
| Product Page Optimization | Essential | Every visitor must convert — optimize the page |
| Custom Product Pages | High | Tailor messaging to different ad campaigns |
| Featuring Nomination | High | Paid apps benefit enormously from editorial features |
| In-App Events | Medium | Content updates give reasons to buy |
| App Store Assets | Medium | Premium presentation justifies premium price |
| Pre-Orders | Medium | Build anticipation, lock in early buyers |
| Promotional Offers | N/A | No subscription to discount |
| Win-Back Offers | N/A | No subscription to win back |
Freemium Apps (IAP)
| Feature | Relevance | Rationale |
|---|---|---|
| Promoted IAP | Essential | Show premium unlock on the product page |
| Product Page Optimization | Essential | Optimize for download (first conversion) |
| Custom Product Pages | High | Different pages for different user types |
| In-App Events | High | Events drive engagement → IAP conversion |
| Featuring Nomination | Medium | Volume-based — more downloads = more IAP |
| Offer Codes | Medium | Premium feature trials for hesitant users |
| App Store Assets | Medium | Showcase premium features in screenshots |
| Pre-Orders | Low | Only for major launches |
Free (Ad-Supported)
| Feature | Relevance | Rationale |
|---|---|---|
| Product Page Optimization | Essential | Maximize download volume for ad revenue |
| In-App Events | Essential | Drive engagement = more ad impressions |
| Custom Product Pages | High | Maximize conversions from different sources |
| Featuring Nomination | High | Volume is everything for ad-supported |
| App Store Assets | Medium | Attractive product page drives downloads |
| Pre-Orders | Low | Rarely needed for free apps |
---
Dimension 2: Lifecycle Stage → Priority Tactics
Pre-Launch
| Priority | Tactic | Action |
|---|---|---|
| 🔴 High | Pre-Orders | Set up pre-order page to build anticipation |
| 🔴 High | App Store Assets | Prepare all screenshots, previews, descriptions |
| 🔴 High | Product Page Optimization | Have initial page ready, plan A/B tests for post-launch |
| 🟠 Medium | Featuring Nomination | Submit 6-8 weeks before launch |
| 🟠 Medium | Custom Product Pages | Prepare pages for different launch campaigns |
| 🟢 Low | In-App Events | Plan launch event for Day 1 |
Launch (First 30 Days)
| Priority | Tactic | Action |
|---|---|---|
| 🔴 High | Product Page Optimization | Start A/B testing immediately |
| 🔴 High | Introductory Offers | Launch with free trial or discounted period |
| 🔴 High | In-App Events | Launch celebration event |
| 🟠 Medium | Promoted IAP | Configure promoted purchases |
| 🟠 Medium | Custom Product Pages | Deploy campaign-specific pages |
| 🟠 Medium | Featuring Nomination | Follow up on nomination |
Growth (Active, Adding Users)
| Priority | Tactic | Action |
|---|---|---|
| 🔴 High | Product Page Optimization | Continuous A/B testing |
| 🔴 High | Custom Product Pages | Pages per audience segment |
| 🔴 High | In-App Events | Regular events to sustain engagement |
| 🟠 Medium | Promotional Offers | Convert long-term free users |
| 🟠 Medium | Offer Codes | Partner and influencer distribution |
| 🟠 Medium | Featuring Nomination | Nominate for category features |
| 🟢 Low | App Store Assets | Refresh for seasonal relevance |
Mature (Stable Base, Seeking Retention)
| Priority | Tactic | Action |
|---|---|---|
| 🔴 High | Win-Back Offers | Re-engage churned subscribers |
| 🔴 High | Promotional Offers | Loyalty rewards for at-risk users |
| 🔴 High | In-App Events | Fresh content to re-engage existing users |
| 🟠 Medium | Product Page Optimization | Test retention-focused messaging |
| 🟠 Medium | Custom Product Pages | Pages for re-engagement campaigns |
| 🟢 Low | Offer Codes | Win-back distribution via email |
Re-Engagement (Declining, Need Win-Back)
| Priority | Tactic | Action |
|---|---|---|
| 🔴 High | Win-Back Offers | Aggressive pricing to recover users |
| 🔴 High | In-App Events | Major event to signal the app is alive |
| 🔴 High | Promotional Offers | Deep discounts for lapsed subscribers |
| 🟠 Medium | Offer Codes | Distribute via email to churned users |
| 🟠 Medium | Product Page Optimization | Test new positioning |
| 🟠 Medium | Featuring Nomination | "What's New" angle for major update |
| 🟢 Low | Custom Product Pages | New pages for repositioned app |
---
Dimension 3: App Category → Featuring Angles
Health & Fitness
- Strong angles: Accessibility, mental health, physical wellness, health records integration
- Seasonal peaks: January (New Year), September (back to routine)
- Apple tie-ins: HealthKit, Apple Watch, Activity Rings
- Event ideas: Weekly challenges, monthly fitness goals, wellness weeks
Education & Kids
- Strong angles: Learning innovation, child safety, inclusive design
- Seasonal peaks: August-September (back to school), January
- Apple tie-ins: Schoolwork, Classroom, Apple Pencil
- Event ideas: Learning challenges, subject-specific events, quiz competitions
Productivity
- Strong angles: Workflow innovation, Apple ecosystem integration, accessibility
- Seasonal peaks: January (organization), September (planning)
- Apple tie-ins: Shortcuts, Widgets, Focus modes, Apple Intelligence
- Event ideas: Productivity weeks, Getting Things Done challenges
Finance
- Strong angles: Financial literacy, privacy-first design, simplicity
- Seasonal peaks: January (budgeting), April (tax season), year-end
- Apple tie-ins: Apple Pay, FinanceKit
- Event ideas: Savings challenges, tax prep events, budget reviews
Creative / Photo & Video
- Strong angles: Creative tools, artistic expression, Apple Silicon optimization
- Seasonal peaks: Holiday content creation, summer travel
- Apple tie-ins: Apple Pencil, ProRes, Cinematic mode, Vision Pro
- Event ideas: Creative challenges, themed editing events
Games
- Strong angles: Innovative gameplay, Apple Arcade consideration, game design
- Seasonal peaks: Holiday season, summer, game award season
- Apple tie-ins: Game Center, Metal, Spatial Audio, Game controllers
- Event ideas: Tournaments, seasonal content, limited-time modes
Social & Communication
- Strong angles: Community building, privacy, inclusive design
- Seasonal peaks: Varies by focus
- Apple tie-ins: SharePlay, Messages extensions, CallKit
- Event ideas: Community challenges, connection events
Developer Tools
- Strong angles: Innovation, workflow improvement, Apple platform support
- Seasonal peaks: WWDC (June), September (new OS releases)
- Apple tie-ins: Xcode integration, Swift, Apple APIs
- Event ideas: API workshops, tool release events
---
Dimension 4: Audience Segments → Custom Product Pages
If the app serves multiple distinct audiences, recommend Custom Product Pages.
Strong CPP Candidates (create pages)
- App serves both consumers and professionals (e.g., fitness app for users + trainers)
- App targets different age groups with different value props
- App solves different problems for different roles (e.g., note app for students vs. writers)
- Running paid campaigns on multiple channels with different messaging
Weak CPP Candidates (skip)
- Single, focused audience
- Consistent value proposition across all users
- No paid acquisition campaigns
- Very niche app with homogeneous user base
CPP Strategy by Segment Count
| Segments | Recommendation |
|---|---|
| 1 | Skip CPPs, optimize default page |
| 2 | Create 1 CPP for secondary audience |
| 3+ | Create 2-3 CPPs, allocate by traffic source |
---
Dimension 5: Content & Engagement → In-App Events
Strong Event Candidates
- App has recurring engagement loops (daily/weekly activities)
- Content updates or seasonal themes
- Community challenges or social features
- Educational milestones or course completions
- Health/fitness goal tracking
Event Frequency by App Type
| App Type | Recommended Frequency | Event Style |
|---|---|---|
| Fitness/Health | Weekly or biweekly | Challenges, goals |
| Education | Monthly | Learning milestones, quiz events |
| Games | Weekly | Tournaments, limited content |
| Productivity | Monthly or quarterly | Themed events, feature highlights |
| Creative | Monthly | Creative challenges, themed packs |
| Social | Biweekly | Community events, connection drives |
---
Dimension 6: Minimum Eligibility Thresholds
IMPORTANT: Not every feature makes sense for every app. Below certain thresholds, the effort outweighs the benefit or the feature literally can't produce results. Always check these minimums before recommending a feature.
Traffic-Dependent Features
| Feature | Minimum Threshold | Below Threshold | Alternative |
|---|---|---|---|
| Product Page Optimization | ~1,000 impressions/week | Tests never reach statistical significance; you'll wait months for inconclusive results | Make qualitative improvements directly — follow screenshot best practices, don't A/B test |
| Custom Product Pages | ~5,000 impressions/month | Not enough traffic per page to measure effectiveness; splits your already-thin traffic further | Optimize your single default page first; only create CPPs when you have volume to split |
| Product Page Optimization + CPP combo | ~10,000 impressions/month | Can't run PPO tests on individual CPPs meaningfully | Focus on PPO for default page only, add CPPs later |
User-Base-Dependent Features
| Feature | Minimum Threshold | Below Threshold | Alternative |
|---|---|---|---|
| Win-Back Offers | ~100+ churned subscribers | Setup effort (code + ASC configuration) not justified for a handful of recoverable users | Focus on preventing churn instead; use personal email outreach for small numbers |
| Promotional Offers | Active subscriber base with measurable churn risk | No at-risk subscribers to target | Focus on acquisition (introductory offers) first |
| Offer Codes (email campaigns) | Email list of 200+ users | Response rates on small lists don't justify campaign setup | Use codes for individual outreach (influencers, partners) instead |
No Real Minimum (Do These Regardless of Size)
| Feature | Why No Minimum | When to Start |
|---|---|---|
| Introductory Offers | Zero-effort setup in ASC; directly increases trial conversion | Day 1 for any subscription app |
| In-App Events | Increases discoverability even for tiny apps; events surface your app to new users in Browse and Search | As soon as you have content or features to highlight |
| Featuring Nomination | Free to submit; even small apps get featured if quality and timing align | When your app is polished and you have a compelling angle |
| Promoted IAP | Simple ASC configuration; shows purchase option on product page at no cost | As soon as you have IAP configured |
| App Store Assets | Better assets = better conversion regardless of traffic volume | Before launch; refresh regularly |
| Pre-Orders | Accumulates downloads before launch; works even with tiny audience | If you have any marketing channel to announce it |
The Scale Ladder
As your app grows, unlock features in this order:
ANY SIZE (0+ users)
├── Introductory Offers
├── In-App Events
├── Featuring Nomination
├── Promoted IAP
├── App Store Assets
├── Pre-Orders (if launching)
│
SMALL (100-1K MAU)
├── Offer Codes (influencer/partner only)
├── Win-Back Offers (if 100+ churned)
│
MEDIUM (1K-10K MAU)
├── Custom Product Pages (if running ads)
├── Offer Codes (email campaigns)
├── Promotional Offers
│
LARGE (10K+ MAU)
├── Product Page Optimization (A/B testing)
├── Custom Product Pages (multi-segment)
├── Full offer stack (intro + promo + win-back + codes)
│
SCALE (50K+ MAU)
├── PPO on individual CPPs
├── Multiple concurrent campaigns
├── Advanced offer segmentationEffort vs. Impact by App Size
| Feature | Setup Effort | Small App Impact | Large App Impact |
|---|---|---|---|
| Introductory Offers | Low | High | High |
| In-App Events | Medium | Medium | High |
| Featuring Nomination | Low | High (if featured) | High (if featured) |
| Promoted IAP | Low | Low-Medium | Medium |
| App Store Assets | Medium | Medium | Medium |
| Product Page Optimization | Medium | Too small to test | High |
| Custom Product Pages | Medium-High | Not enough traffic | High |
| Win-Back Offers | High | Not enough churn volume | High |
| Promotional Offers | Medium | Low (few targets) | High |
| Offer Codes | Low-Medium | Low (limited reach) | Medium-High |
| Pre-Orders | Low | Low-Medium | Medium |
---
Priority Scoring
After evaluating all dimensions, score each feature:
| Score | Criteria | Priority |
|---|---|---|
| 4-5 | Appears as Essential/High in 3+ dimensions | 🔴 High — implement first |
| 2-3 | Appears as Essential/High in 1-2 dimensions | 🟠 Medium — implement second |
| 0-1 | Appears as Medium/Low or N/A in most dimensions | 🟢 Nice to Have — implement if time permits |
Tiebreakers
When two features score equally: 1. Prefer quick wins (less effort for same impact) 2. Prefer revenue-impacting (offers > engagement features) 3. Prefer compounding (features that improve over time, like PPO) 4. Prefer seasonal alignment (features that match upcoming timing)
---
Feature Dependency Map
Some features work best in combination:
Introductory Offers ──→ Promotional Offers ──→ Win-Back Offers
(acquire) (retain) (recover)
Product Page Optimization ──→ Custom Product Pages
(optimize default) (multiply what works)
In-App Events + Promotional Offers = Re-engagement campaign
In-App Events + Custom Product Pages = Targeted acquisition
Featuring Nomination + In-App Events = Maximum visibility
Offer Codes + Win-Back Offers = Email re-engagement campaignBuild the full acquisition-retention-recovery funnel before optimizing individual pieces.
Strategy Template: Freemium Apps (IAP)
Playbook for free apps that monetize through non-consumable or consumable in-app purchases.
Core Strategy: Volume + Conversion
Freemium apps need two funnels: maximize downloads (free), then convert free users to paying users. App Store features serve both goals.
ACQUIRE → ENGAGE → UPGRADE → EXPAND → RE-ENGAGE
↑ ↑ ↑ ↑ ↑
| | | | |
PPO Events Promoted Offer Offer
CPP Content IAP Codes Codes
Feat. Onboard Paywall Bundles Events---
Stage 1: Acquire (Maximize Downloads)
Key Features
- Product Page Optimization: Optimize for download rate (low commitment)
- Custom Product Pages: Per ad campaign / audience segment
- Featuring Nomination: Free apps with IAP are Apple's bread and butter
Freemium Product Page Strategy
- DO lead with free value — what users get without paying
- DON'T lead with premium features (scares off downloads)
- Show the app is fully functional for free, with premium as "more"
Screenshot Strategy
1. Screenshot 1: Core free experience (compelling, complete) 2. Screenshot 2-3: Key free features in action 3. Screenshot 4: Premium features preview ("Unlock Pro") 4. Screenshot 5: Social proof or breadth of features
---
Stage 2: Engage (Build Investment)
Key Features
- In-App Events: Regular challenges/content that get free users invested
- Push Notifications: Re-engagement (not an App Store feature, but critical)
Engagement Before Monetization
Users must invest time and data before seeing a paywall:
- Productivity apps: Let them create 5+ items before suggesting premium
- Creative apps: Let them complete one project, then offer premium exports
- Utility apps: Let them use core function 10+ times before limits
- Content apps: Give generous free content, then gate advanced/new content
Event Strategy for Freemium
| Event Type | Goal | Frequency |
|---|---|---|
| Challenge/competition | Create engagement habit | Weekly/biweekly |
| Content update | Show app is actively developed | Monthly |
| Feature spotlight | Showcase premium features organically | Monthly |
| Community event | Build social investment | Quarterly |
---
Stage 3: Upgrade (Free → Paid)
Key Features
- Promoted IAP: Show premium unlock directly on the App Store product page
- Paywall Design: Use
generators/paywall-generator
Promoted IAP Best Practices
- Choose your most compelling IAP to promote (usually "Pro" or "Premium" unlock)
- Use a clear, benefit-focused name ("Pro — Unlimited Everything")
- Set an attractive promotional image (1024x1024)
- This appears on your product page and in search results
Conversion Trigger Points
Show upgrade prompt when the user:
- Hits a free tier limit ("You've used 5 of 5 free projects")
- Tries to access a premium feature
- Completes a successful action (positive emotion = higher conversion)
- Has used the app for 7+ days (investment threshold)
Pricing for IAP
| IAP Type | Price Range | Strategy |
|---|---|---|
| Feature unlock | $2.99-$9.99 | One-time, permanent |
| Pro bundle | $9.99-$29.99 | Unlock everything |
| Content pack | $0.99-$4.99 | Per pack, expandable |
| Consumable credits | $0.99-$9.99 | Recurring revenue |
| Tip jar | $0.99-$9.99 | Optional support |
---
Stage 4: Expand (Increase Revenue per User)
Key Features
- Offer Codes: Give premium access to influencers/partners for promotion
- Additional IAP: Upsell existing premium users on add-ons
Expansion Revenue Tactics
1. Content packs: New themes, templates, tools for existing premium users 2. Feature add-ons: Specialized features beyond the core premium unlock 3. Tip jar: Let satisfied users pay more voluntarily 4. Bundle pricing: "All-in-one" bundle at discount vs. individual purchases
---
Stage 5: Re-Engage (Bring Back Lapsed Users)
Key Features
- Offer Codes: Distribute premium access to lapsed users via email
- In-App Events: Major events visible to lapsed users in App Store
Re-Engagement Timeline
| Days Lapsed | Action | Method |
|---|---|---|
| 7-14 | Push notification with new content | Notification |
| 14-30 | In-App Event announcement | App Store |
| 30-60 | Offer code for free premium trial | |
| 60+ | Major update In-App Event | App Store |
---
Freemium App Checklist
Pre-Launch
- [ ] Define free vs. paid feature split (generous free tier)
- [ ] Configure IAP products in App Store Connect
- [ ] Set up Promoted IAP with promotional image
- [ ] Write product page copy emphasizing free value
- [ ] Plan launch In-App Event
Launch
- [ ] Start Product Page Optimization test
- [ ] Monitor download-to-IAP conversion funnel
- [ ] Create Custom Product Pages for different ad sets
- [ ] Submit featuring nomination
Growth
- [ ] Establish In-App Event cadence (weekly or biweekly)
- [ ] Distribute offer codes to app reviewers/influencers
- [ ] A/B test paywall timing and messaging
- [ ] Create Custom Product Pages per audience segment
- [ ] Plan seasonal expansion content
Ongoing
- [ ] Quarterly featuring nominations
- [ ] Regular content/feature updates
- [ ] PPO tests running continuously
- [ ] Offer code campaigns for re-engagement
---
Freemium App Benchmarks
| Metric | Below Average | Average | Good | Excellent |
|---|---|---|---|---|
| Page → Download | < 20% | 20-35% | 35-50% | > 50% |
| D1 retention | < 25% | 25-35% | 35-50% | > 50% |
| Free → Paid | < 2% | 2-5% | 5-10% | > 10% |
| ARPU (monthly) | < $0.05 | $0.05-0.20 | $0.20-1.00 | > $1.00 |
| IAP refund rate | > 8% | 4-8% | 2-4% | < 2% |
Strategy Template: Game Apps
Playbook for games of any monetization model (free-to-play, premium, subscription).
Core Strategy: Live Ops + Event-Driven Growth
Games have unique advantages on the App Store: In-App Events are a natural fit, seasonal content creates recurring visibility, and the competitive/social nature drives organic sharing.
SOFT LAUNCH → LAUNCH → LIVE OPS → SEASONAL → RE-ENGAGEMENT
↑ ↑ ↑ ↑ ↑
| | | | |
Pre-Order Featuring Events Events Win-back
Assets PPO/CPP Content CPP/PPO Offers
TestFlight Offers Updates Featuring Events---
Stage 1: Soft Launch / Pre-Launch
Key Features
- Pre-Orders: Build anticipation, collect early commitments
- App Store Assets: Game trailers and screenshots that show gameplay
- Featuring Nomination: Submit early — game features are planned months ahead
Game-Specific Pre-Launch Tactics
1. App Preview video is essential for games (show gameplay, not cinematics) 2. Pre-order with a bonus ("Download on day 1 for exclusive character/skin") 3. TestFlight beta builds community before launch 4. Social media teasers linked to pre-order page
---
Stage 2: Launch
Key Features
- Featuring Nomination: "New Game" placement is the most valuable launch asset
- Product Page Optimization: Test action-focused vs. story-focused screenshots
- Custom Product Pages: One for casual gamers, one for hardcore
- Introductory Offers: Free trial for subscription games, launch price for premium
Launch In-App Event
Create a "Launch Celebration" event:
- Badge: Challenge
- Duration: 7-14 days
- Content: Limited-time launch reward/level/character
- Purpose: Creates urgency and drives first-week engagement
Launch Week Checklist
- [ ] Featuring nomination submitted 8+ weeks ago
- [ ] In-App Event "Launch Celebration" configured
- [ ] App preview video finalized
- [ ] Custom Product Pages ready for ad campaigns
- [ ] Product Page Optimization test prepared
- [ ] Social media launch kit ready
---
Stage 3: Live Ops (Ongoing Engagement)
Key Features
- In-App Events: The backbone of game marketing — run events constantly
- Content Updates: New levels, characters, modes keep the game fresh
Event Calendar Template
| Week | Event Type | Example |
|---|---|---|
| 1 | Weekly challenge | "Speed Run Week — best times win rewards" |
| 2 | New content | "New level pack available" |
| 3 | Community event | "Community goal: 1M total points" |
| 4 | Themed event | "Month-end tournament" |
Event Types for Games
| Badge Type | Use For | Duration |
|---|---|---|
| Challenge | Skill-based competitions | 3-7 days |
| Competition | Leaderboard events | 7-14 days |
| Live Event | Real-time multiplayer events | 1-3 days |
| Special Event | Content updates, new modes | 7-14 days |
| Major Update | Big feature releases | 7 days |
Content Update Rhythm
| Frequency | Content | Goal |
|---|---|---|
| Weekly | Challenges, leaderboard resets | Maintain daily engagement |
| Biweekly | Mini content drops (cosmetics, items) | Sustain interest |
| Monthly | New levels, characters, or modes | Major engagement spike |
| Quarterly | Major update (new game mode, story chapter) | Press coverage, featuring |
---
Stage 4: Seasonal Campaigns
Key Features
- In-App Events: Themed seasonal events with limited-time content
- Custom Product Pages: Seasonal screenshots and messaging
- Product Page Optimization: Test seasonal vs. evergreen positioning
- Featuring Nomination: Seasonal featuring opportunities
Game Seasonal Calendar
| Month | Theme | Event Ideas |
|---|---|---|
| January | New Year | "New Year's Challenge", resolution-themed content |
| February | Valentine's | Co-op events, love-themed content |
| March-April | Spring | Easter egg hunt, spring renewal themes |
| May-June | Summer kickoff | Summer tournament, vacation themes |
| June | WWDC | Highlight any new Apple tech integration |
| July-August | Summer | Beach/summer events, kid-friendly campaigns |
| September | Back to school | Learning-themed content, new season |
| October | Halloween | Spooky content, costume events |
| November | Thanksgiving | Gratitude events, Black Friday deals |
| December | Holiday | Winter wonderland, gift-giving events |
---
Stage 5: Re-Engagement
Key Features
- Win-Back Offers: For subscription games — recover churned players
- In-App Events: "Return Event" with generous rewards for lapsed players
- Offer Codes: Distribute premium currency/items to lapsed players
- Promotional Offers: Discounted subscription renewal
Lapsed Player Re-Engagement
| Player Type | Strategy | Offer |
|---|---|---|
| Churned subscriber (< 30 days) | Win-back offer | 50% off first month back |
| Churned subscriber (30-90 days) | Email + offer code | Free month |
| Lapsed free player (< 30 days) | Push notification | New content announcement |
| Lapsed free player (30+ days) | In-App Event | "Welcome Back" event with bonus rewards |
| Whale (high spender) who churned | Personal email + generous offer | VIP treatment |
---
Monetization-Specific Game Tactics
Free-to-Play (IAP)
- Promoted IAP: Starter pack or best-value currency bundle
- Offer Codes: Premium currency for influencer giveaways
- In-App Events: Events that organically expose premium items
- First-purchase discount (e.g., "Starter Pack — 5x value!")
Premium (Paid Upfront)
- Price drops: Timed with seasonal events and In-App Events
- App Preview: Must show actual gameplay (not cinematics)
- Featuring: Premium games get strong editorial consideration
- No dark patterns needed — premium game buyers are loyal
Subscription (Game Pass / Season Pass)
- Introductory Offer: Free trial of 3-7 days
- Win-Back Offers: Essential for subscriber recovery
- In-App Events: Show subscribers get exclusive event content
- Promotional Offers: Season pass discounts between seasons
---
Game App Checklist
Pre-Launch
- [ ] App Preview video showing actual gameplay (15-30 sec)
- [ ] Pre-Order configured with launch bonus
- [ ] Featuring nomination submitted 8+ weeks before launch
- [ ] Custom Product Pages for casual vs. hardcore positioning
- [ ] Launch In-App Event configured
- [ ] Product Page Optimization test ready
Launch Month
- [ ] Monitor download velocity and featuring placement
- [ ] Start PPO tests after first week
- [ ] Launch "Welcome Event" In-App Event
- [ ] Respond to all reviews (especially negative ones)
- [ ] Submit follow-up featuring nomination for updates
Live Ops Phase
- [ ] Weekly In-App Events running
- [ ] Monthly content updates planned 2 months ahead
- [ ] Seasonal event calendar planned for the quarter
- [ ] Custom Product Pages updated for seasonal themes
- [ ] Regular featuring nomination submissions
Ongoing
- [ ] PPO tests running continuously
- [ ] Win-back pipeline active (if subscription)
- [ ] Offer code campaigns for content creators
- [ ] Quarterly major content update with featuring push
---
Game Benchmarks
| Metric | Below Average | Average | Good | Excellent |
|---|---|---|---|---|
| D1 retention | < 25% | 25-35% | 35-45% | > 45% |
| D7 retention | < 8% | 8-15% | 15-25% | > 25% |
| D30 retention | < 3% | 3-7% | 7-12% | > 12% |
| ARPDAU (F2P) | < $0.03 | $0.03-0.10 | $0.10-0.30 | > $0.30 |
| Payer conversion | < 1% | 1-3% | 3-7% | > 7% |
| Session length | < 3 min | 3-8 min | 8-15 min | > 15 min |
| Sessions/day | < 1.5 | 1.5-3 | 3-5 | > 5 |
Strategy Template: Paid Upfront Apps
Playbook for apps with a one-time purchase price.
Core Strategy: Maximize Perceived Value
Paid apps face a unique challenge: every product page visitor must be convinced to pay before trying. The entire strategy centers on making the value proposition so clear that the price feels like a bargain.
DISCOVER → EVALUATE → PURCHASE → ADVOCATE
↑ ↑ ↑ ↑
| | | |
Featuring PPO Assets Reviews
Events CPP Preview Events
Desc. Price Updates---
Stage 1: Discover (Visibility)
Key Features
- Featuring Nomination: Paid apps get outsized benefit from featuring (high-quality users who pay for apps browse editorial)
- In-App Events: Content updates give new reasons to be visible in search/browse
- App Store Assets: Premium visual presentation signals premium quality
Paid App Advantage
Apple editorially features paid apps more willingly — they indicate a healthy ecosystem. Lean into this with strong nomination pitches.
---
Stage 2: Evaluate (Product Page Conversion)
Key Features
- Product Page Optimization: Critical — you have one shot to convert
- Custom Product Pages: Match messaging to traffic source
- App Store Description: Must clearly justify the price
Screenshot Strategy for Paid Apps
1. Screenshot 1: Core benefit + "one-time purchase" badge 2. Screenshot 2: Main feature in action 3. Screenshot 3: Depth of features 4. Screenshot 4: Design quality / polish 5. Screenshot 5: Social proof or awards
Description Strategy
- Lead with the problem you solve
- Emphasize "no subscriptions, no ads — one purchase, everything included"
- Include a feature list that makes the price feel like a steal
- Mention update history ("regularly updated since 20XX")
Pricing Strategy
| Price Point | Positioning | Best For |
|---|---|---|
| $0.99-$2.99 | Impulse buy | Utilities, simple tools |
| $3.99-$9.99 | Considered purchase | Feature-rich apps |
| $9.99-$29.99 | Professional tool | Pro creative/productivity |
| $29.99+ | Premium/niche | Specialized professional tools |
---
Stage 3: Purchase (Conversion Optimization)
Key Features
- App Preview Video: 15-30 second video showing the app in action
- Promotional Pricing: Temporary price drops for seasonal campaigns
Price Drop Campaigns
Use temporary price reductions strategically:
| Occasion | Duration | Discount | Notes |
|---|---|---|---|
| Launch week | 7 days | 30-50% off | "Launch price" creates urgency |
| Major update | 3-7 days | 20-30% off | Celebrate new features |
| Holiday/seasonal | 7-14 days | 30-50% off | Black Friday, back to school |
| Anniversary | 3-7 days | 40-50% off | App birthday celebration |
Price Drop + In-App Event Combo
Pair every price drop with an In-App Event:
- Event makes the price drop visible on the App Store
- Creates a time-limited urgency signal
- Attracts deal-seeking users browsing events
---
Stage 4: Advocate (Post-Purchase)
Key Features
- In-App Events: Regular updates justify the purchase and generate word-of-mouth
- Review Responses: Professional responses build trust for potential buyers
Update Strategy for Paid Apps
Regular updates serve double duty: 1. Keep existing users happy (reduces refunds, generates positive reviews) 2. Create new "What's New" visibility in the App Store
Encouraging Reviews
- Prompt for review after a positive experience (not on first launch)
- Time prompts after feature discovery moments
- Use
SKStoreReviewControllerat natural satisfaction points
---
Paid App Checklist
Pre-Launch
- [ ] Research competitor pricing in category
- [ ] Prepare app preview video showing core value
- [ ] Write description emphasizing "no subscription" advantage
- [ ] Prepare at least 5 high-quality screenshots per device
- [ ] Plan launch pricing strategy (intro price?)
- [ ] Submit featuring nomination 6-8 weeks early
Launch
- [ ] Start Product Page Optimization test immediately
- [ ] Create launch In-App Event
- [ ] Monitor conversion rate vs. category benchmark
- [ ] Respond to all early reviews (positive and negative)
Growth
- [ ] Quarterly featuring nomination submissions
- [ ] Plan 3-4 price drop campaigns per year
- [ ] Create Custom Product Pages for top search terms
- [ ] Maintain regular update cadence (monthly or bimonthly)
Ongoing
- [ ] Seasonal price drop calendar planned 3 months ahead
- [ ] PPO tests running continuously
- [ ] In-App Events for major updates
- [ ] App Store assets refreshed annually
---
Paid App Benchmarks
| Metric | Below Average | Average | Good | Excellent |
|---|---|---|---|---|
| Page → Download | < 2% | 2-5% | 5-10% | > 10% |
| Refund rate | > 10% | 5-10% | 2-5% | < 2% |
| Average rating | < 3.5 | 3.5-4.0 | 4.0-4.5 | > 4.5 |
| Review volume | < 10/mo | 10-50/mo | 50-200/mo | > 200/mo |
Strategy Template: Subscription Apps
Playbook for apps with auto-renewable subscriptions as the primary revenue model.
Core Strategy: The Subscription Funnel
ACQUIRE → TRIAL → CONVERT → RETAIN → WIN BACK
↑ ↑ ↑ ↑ ↑
| | | | |
CPP Intro Paywall Events Win-back
PPO Offer Design Content Offers
ASA Trial Pricing Updates Offer CodesEach stage has specific App Store features that optimize it.
---
Stage 1: Acquire (Get Visitors to Product Page)
Key Features
- Product Page Optimization: A/B test screenshots, descriptions, and icons
- Custom Product Pages: Tailored pages per audience segment or ad campaign
- Featuring Nomination: Editorial visibility → high-quality, low-cost installs
- App Store Assets: Professional screenshots and app preview videos
Metrics to Track
- Impressions → Product page views (conversion rate)
- Product page views → Downloads (tap-through rate)
- Source attribution (organic vs. search vs. browse)
Quick Wins
1. Optimize first 3 screenshots (most users don't scroll) 2. Make subtitle benefit-focused, not feature-focused 3. Add app preview video showing core value in first 5 seconds
---
Stage 2: Trial (Convert Downloads to Trial Starts)
Key Features
- Introductory Offers: Free trial (3, 7, or 14 days) or discounted first period
- Promoted IAP: Show subscription directly on the product page
Trial Duration Decision
| App Usage Pattern | Recommended Trial | Reason |
|---|---|---|
| Daily use (habit) | 7 days | One week to build habit |
| Weekly use | 14 days | Two cycles to see value |
| Infrequent/project-based | 7 days | Quick value demonstration |
| Complex/onboarding-heavy | 14-30 days | Time to learn and integrate |
Onboarding During Trial
- Guide users to premium features immediately (not free features)
- Show progress/value metrics ("You've completed 5 sessions this week")
- Trigger contextual upsell at natural upgrade moments
---
Stage 3: Convert (Trial → Paid Subscriber)
Key Features
- Paywall Design: Use
generators/paywall-generatorfor StoreKit 2 implementation - Pricing Psychology: Annual-first presentation, anchor pricing
- Promotional Offers: Discounted rate for users who didn't convert from trial
Conversion Tactics
1. Trial ending notification 2-3 days before expiry 2. Value summary showing what they'll lose ("You tracked 12 workouts") 3. Annual offer presented as "save X%" vs. monthly 4. Promotional offer 7-14 days after trial expires if not converted
Price Testing Approach
1. Start with category benchmark pricing 2. Run 90-day A/B test on pricing page layout 3. Test annual vs. monthly prominence 4. Never test price directly (App Store doesn't support price A/B)
---
Stage 4: Retain (Keep Subscribers Active)
Key Features
- In-App Events: Regular content/challenges to maintain engagement
- Promotional Offers: Loyalty discounts at renewal risk points
Retention Event Calendar
| Timing | Event Type | Goal |
|---|---|---|
| Monthly | Feature spotlight or challenge | Remind of value |
| Quarterly | Major content update event | Re-engage dormant users |
| Seasonal | Themed campaign (New Year, etc.) | Capitalize on motivation spikes |
| Anniversary | Personal milestone celebration | Emotional connection |
Churn Prevention Signals
Watch for these and trigger Promotional Offers:
- Usage drops significantly (< 50% of normal)
- User hasn't opened app in 14+ days
- User downgrades from premium features
- User contacts support with complaints
---
Stage 5: Win Back (Recover Churned Subscribers)
Key Features
- Win-Back Offers: StoreKit 2 win-back flow for lapsed subscribers
- Offer Codes: Distribute via email campaigns to churned users
- In-App Events: Signal major updates to bring users back
Win-Back Timeline
| Days Since Churn | Action | Offer |
|---|---|---|
| 7-14 | App Store win-back offer | 25-50% off first period |
| 30 | Email with offer code | Free month |
| 60-90 | In-App Event notification | Major update announcement |
| 90+ | Aggressive win-back offer | 60%+ off or extended trial |
Win-Back Messaging
- Focus on what's new since they left
- Acknowledge time away ("We've been busy while you were gone")
- Lead with the single most compelling new feature
- Make the offer time-limited to create urgency
---
Subscription App Checklist
Pre-Launch
- [ ] Configure subscription products in App Store Connect
- [ ] Set up introductory offer (free trial recommended)
- [ ] Implement StoreKit 2 with
paywall-generatorskill - [ ] Prepare 3+ screenshot variations for PPO testing
- [ ] Write benefit-focused description and subtitle
- [ ] Plan launch In-App Event
Launch Month
- [ ] Submit featuring nomination (if not done pre-launch)
- [ ] Start Product Page Optimization test
- [ ] Monitor trial-to-paid conversion rate
- [ ] Set up promotional offer for trial non-converters
- [ ] Configure promoted IAP
Growth Phase (Month 2-6)
- [ ] Create Custom Product Pages for top audience segments
- [ ] Establish monthly In-App Event cadence
- [ ] Set up win-back offer for first churned cohort
- [ ] Distribute offer codes to partners/influencers
- [ ] Iterate on paywall design based on conversion data
Mature Phase (Month 6+)
- [ ] Full win-back offer pipeline active
- [ ] Quarterly featuring nomination submissions
- [ ] Seasonal event calendar planned 3 months ahead
- [ ] Regular PPO tests running
- [ ] Offer code campaigns for email list
---
Revenue Benchmarks (Subscription Apps)
| Metric | Below Average | Average | Good | Excellent |
|---|---|---|---|---|
| Trial start rate | < 5% | 5-10% | 10-20% | > 20% |
| Trial → Paid | < 30% | 30-50% | 50-65% | > 65% |
| Monthly churn | > 10% | 5-10% | 3-5% | < 3% |
| Annual plan mix | < 30% | 30-50% | 50-70% | > 70% |
| D30 retention | < 15% | 15-25% | 25-40% | > 40% |
Use these benchmarks to identify which funnel stage needs the most attention.
Common App Store Rejections
The top 20 App Store rejection reasons, organized by guideline. For each: what triggers it, example rejection message, how to fix, and a response template snippet.
Guideline 2.1: App Completeness
2.1 — Crashes
What triggers it: App crashes during review, on launch, or during core flows. Apple tests on current-generation devices with the latest OS.
Example rejection message:
We discovered one or more bugs in your app. Specifically, the app crashed when we tapped on the "Export" button on iPhone 15 Pro running iOS 18.2.
How to fix:
- Reproduce on the exact device/OS cited (use Xcode Simulator or physical device)
- Check crash logs in App Store Connect → App Analytics → Crashes
- Test all core flows on the latest OS release
- Pay special attention to edge cases: no network, empty data, permissions denied
Response template:
We've identified and resolved the crash in the export flow.
The issue was caused by [root cause]. Build [X.X (XX)] includes
the fix, verified on iPhone 15 Pro / iOS 18.2.2.1 — Broken Links or Placeholder Content
What triggers it: Links that 404, screens that say "Coming Soon", lorem ipsum text, test data visible in the UI.
Example rejection message:
Your app includes placeholder content. Specifically, the "Community" tab displays "Coming Soon" text without functional content.
How to fix:
- Remove or hide any unfinished features entirely
- Replace placeholder text with real content
- Ensure all URLs (privacy policy, support, terms) resolve to live pages
- Remove any "beta" or "test" labels
Response template:
We've removed the placeholder content from the Community tab.
This feature has been removed from the current release and will
be included in a future update when fully implemented.2.1 — Missing Demo Account
What triggers it: App requires login but no test credentials were provided in App Review Notes.
Example rejection message:
We were unable to review your app as it requires a login but no demo account was provided.
How to fix:
- Provide a valid demo account in App Store Connect → App Review Information → Notes
- Ensure the demo account has access to all features
- Don't use an account that might be rate-limited or expire
- Format: "Demo account: user@example.com / password123"
Response template:
We apologize for the oversight. Demo credentials have been added
to the App Review notes: [email] / [password]. This account has
full access to all app features.Guideline 2.3: Accurate Metadata
2.3 — Misleading Description or Screenshots
What triggers it: Screenshots don't match the current app UI, description promises features that don't exist, or marketing overstates capabilities.
Example rejection message:
Your app's screenshots do not accurately reflect the app in use. Specifically, screenshot 3 shows a feature that is not present in the current version.
How to fix:
- Retake all screenshots from the current build
- Ensure every feature mentioned in the description exists in the app
- Remove any claims that can't be substantiated
- Match What's New text to actual changes in this version
Response template:
We've updated all screenshots to reflect the current app UI.
Screenshot 3 has been replaced with an accurate representation
of the [feature name] screen as it appears in this build.2.3 — Keyword Stuffing or Misleading Keywords
What triggers it: Irrelevant keywords in the keyword field, competitor names, category names, or misleading terms.
Example rejection message:
Your app's metadata includes misleading content. Specifically, the keyword field contains competitor app names.
How to fix:
- Remove all competitor brand names from keywords
- Remove category names (already indexed automatically)
- Remove irrelevant terms that don't describe your app
- Use only keywords directly relevant to your app's functionality
Response template:
We've updated the keyword field to remove all third-party brand
names and irrelevant terms. Keywords now accurately reflect our
app's features and functionality.Guideline 2.5.1: Software Requirements
2.5.1 — Private API Usage
What triggers it: App calls private Apple frameworks or undocumented APIs. Apple's static analysis detects these automatically.
Example rejection message:
Your app uses non-public API/framework: UIWebDocumentView. This is not permitted on the App Store.
How to fix:
- Search your codebase for the cited API name
- Check third-party SDKs and libraries — they often contain private API calls
- Replace with public alternatives
- Update any outdated libraries that may use deprecated private APIs
- Use
nmorotoolon your binary to check for private symbols
Response template:
We've removed the non-public API usage. The reference to
[API name] was in [library name], which has been updated to
version [X.X] that uses only public APIs.Guideline 3.1.1: In-App Purchase
3.1.1 — Digital Goods Not Using IAP
What triggers it: App sells digital content, features, or subscriptions through external payment processors (Stripe, PayPal, etc.) instead of Apple's In-App Purchase.
Example rejection message:
Your app offers digital content for purchase but does not use the In-App Purchase API. Specifically, the premium themes are available for purchase via an external payment system.
How to fix:
- Implement StoreKit 2 for all digital content purchases
- Remove external payment links/buttons for digital goods
- Physical goods and services CAN use external payment
- Reader apps have specific exemptions (Guideline 3.1.3)
Response template:
We've migrated all digital content purchases to Apple's In-App
Purchase system. Premium themes are now available as non-consumable
IAPs through StoreKit 2. External payment references have been
removed.3.1.1 — Directing Users to External Purchase
What triggers it: App includes language, buttons, or links encouraging users to purchase outside the app (even if IAP is also offered).
Example rejection message:
Your app includes a button or link that directs users to an external payment mechanism for items that are required to be purchased through In-App Purchase.
How to fix:
- Remove all "buy on our website" buttons or text for digital goods
- Remove pricing pages that link to external checkout
- Don't mention that content is cheaper on your website
- Reader app entitlement allows linking out for account management only
Response template:
We've removed all references to external purchasing for digital
content. The "Buy on Web" button and associated links have been
removed. All digital purchases now go through IAP exclusively.Guideline 3.1.2: Subscriptions
3.1.2 — Subscription Requirements
What triggers it: Subscription doesn't provide ongoing value, unclear pricing terms, no way to manage subscription in-app, or auto-renewal terms not clearly communicated.
Example rejection message:
Your app's subscription does not provide ongoing value to the user. The content available through the subscription is static and does not justify a recurring charge.
How to fix:
- Ensure subscription includes regularly updated content or ongoing service
- Add clear subscription terms on the paywall (price, duration, renewal terms)
- Include in-app access to subscription management
- Link to Apple's subscription management page
- Show what users get for their ongoing payment
Response template:
Our subscription provides ongoing value through [specific
ongoing benefits: weekly content updates, cloud sync, continuous
AI processing, etc.]. We've also added clearer subscription
terms on the purchase screen and a direct link to subscription
management.Guideline 4.0: Design
4.0 — Not Enough Native UI / Web Wrapper
What triggers it: App is primarily a web view wrapping an existing website without meaningful native functionality.
Example rejection message:
Your app is primarily a web-based experience and does not provide enough native iOS functionality. We encourage you to consider building a native app that takes advantage of iOS features.
How to fix (if web-based is intentional):
- Add meaningful native features: push notifications, widgets, Shortcuts/Siri
- Use native navigation (NavigationStack, TabView) instead of web navigation
- Implement offline functionality
- Add native sharing, haptics, or device-specific features
- If the app truly should be a website, consider not submitting it
Response template:
While [App Name] does use web views for [specific content],
it provides significant native functionality including:
- Push notifications for [purpose]
- Home screen widget showing [content]
- Offline access to [feature]
- Native [iOS feature] integration
These features require a native app and cannot be delivered
through a website alone.4.0 — Poor UI Quality
What triggers it: App has obviously unfinished UI, uses no standard iOS patterns, has layout issues, or looks unprofessional.
Example rejection message:
Your app does not comply with the design guidelines for iOS apps. Specifically, the app includes UI elements that are inconsistent with standard iOS design patterns.
How to fix:
- Use system components (SwiftUI standard views, UIKit standard controls)
- Follow Human Interface Guidelines for spacing, typography, and color
- Support Dynamic Type for accessibility
- Support Dark Mode
- Ensure layouts work on all supported screen sizes
Response template:
We've updated the app's design to align with iOS Human Interface
Guidelines. Changes include [specific UI improvements]. The app
now uses standard iOS components for [navigation/buttons/lists]
and supports Dynamic Type and Dark Mode.Guideline 4.2: Minimum Functionality
4.2 — App Is Too Simple
What triggers it: App provides functionality that could be achieved with a bookmark, a simple website, or is too basic for the App Store.
Example rejection message:
We found that the usefulness of your app is limited by the minimal amount of content or features it includes. We encourage you to review your app concept and incorporate additional features and content.
How to fix (if you agree it's too simple):
- Add 2-3 meaningful features beyond the core function
- Include settings, customization, or personalization
- Add data visualization, history, or insights
- Implement native features: widgets, notifications, Siri Shortcuts
- Consider whether a more comprehensive app would serve users better
How to push back (if your app is intentionally focused):
- Explain the design philosophy of focused simplicity
- Reference comparable apps on the App Store
- Highlight native features that justify app vs. website
- Provide user testimonials or usage data if available
Response template (fixing):
We've added substantial functionality to the app:
- [New feature 1]
- [New feature 2]
- [New feature 3]
Build [X.X (XX)] includes these improvements.Response template (pushing back):
[App Name] is intentionally designed as a focused [type] tool.
Despite its streamlined interface, it provides meaningful
functionality that requires a native app:
- [Native feature 1: widgets, notifications, etc.]
- [Native feature 2]
- [Unique value proposition]
The app has [X users / X positive reviews / serves a specific
use case] that demonstrates its value to users.Guideline 4.3: Spam
4.3 — Duplicate or Template Apps
What triggers it: App is substantially similar to other apps you've submitted, appears to be generated from a template without meaningful customization, or copies another developer's app.
Example rejection message:
Your app duplicates the content and functionality of other apps currently available on the App Store, which is considered spam.
How to fix:
- Differentiate your app with unique features, content, or design
- If you have multiple similar apps, consider consolidating into one
- Remove template boilerplate and customize the experience
- Add unique content that distinguishes your app
Response template:
[App Name] is distinct from [other app] in the following ways:
- [Unique feature or audience 1]
- [Different content or purpose 2]
- [Technical differentiation 3]
These apps serve different user segments: [App 1] targets
[audience A] while [App 2] targets [audience B].Guideline 5.1.1: Data Collection and Storage
5.1.1 — Missing Privacy Policy
What triggers it: App collects any user data but doesn't provide a privacy policy URL, or the URL leads to a dead page.
Example rejection message:
Your app collects user data but does not include a privacy policy URL in App Store Connect.
How to fix:
- Create a privacy policy covering all data your app collects
- Host it at a stable URL (your website, GitHub Pages, or a service like Termly)
- Add the URL in App Store Connect → App Information → Privacy Policy URL
- Ensure the page loads correctly on mobile
Response template:
We've added our privacy policy at [URL]. It covers all data
collection, usage, and sharing practices in the app. The URL
has been added to App Store Connect.5.1.1 — Excessive Data Collection
What triggers it: App collects data that isn't necessary for its core functionality, or collects data without clear user consent.
Example rejection message:
Your app collects user data that is not necessary for the app's core functionality. Specifically, the app requests access to Contacts, which does not appear to be needed.
How to fix:
- Remove permissions requests for data you don't strictly need
- Add clear usage descriptions for all permission requests (NSUsageDescription)
- Request permissions in context (when the user triggers the relevant feature)
- Don't request all permissions at launch
Response template:
We've removed the Contacts permission request as it is not
essential to the app's core functionality. The app now only
requests [remaining permissions] which are required for
[specific features].Guideline 5.1.2: Data Use and Sharing
5.1.2 — App Tracking Transparency
What triggers it: App tracks users across apps/websites without presenting the ATT prompt first, or collects IDFA without the ATT framework.
Example rejection message:
Your app uses the AppTrackingTransparency framework but does not present the tracking permission request to the user before collecting data used to track them.
How to fix:
- Present ATT prompt before any tracking begins
- Don't track if user denies permission
- Ensure ATT prompt has a clear purpose string (NSUserTrackingUsageDescription)
- Don't incentivize users to allow tracking
- Check that all third-party SDKs (analytics, ad networks) respect ATT status
Response template:
We've updated the app to present the ATT permission prompt
before any tracking occurs. Third-party SDKs have been
configured to respect the user's tracking preference. No data
is collected for tracking purposes until explicit consent is
granted.5.1.2 — Privacy Nutrition Label Mismatch
What triggers it: The privacy labels declared in App Store Connect don't match the app's actual data collection practices.
Example rejection message:
Your app's privacy information does not accurately reflect the app's data collection practices. The app collects [data type] which is not declared in the privacy nutrition labels.
How to fix:
- Audit all data collection in your app AND third-party SDKs
- Update App Store Connect privacy labels to match actual behavior
- Use Apple's privacy manifest to document API usage (iOS 17+)
- Check SDK documentation for their data collection disclosures
Response template:
We've updated the privacy nutrition labels in App Store Connect
to accurately reflect all data collection. Specifically, we've
added [data type] under [category]. We've also audited all
third-party SDKs to ensure complete disclosure.Guideline 5.2.1: Legal Requirements
5.2.1 — Local Law Compliance
What triggers it: App content or functionality violates laws in specific territories (gambling, health claims, age restrictions, financial regulations).
Example rejection message:
Your app includes [feature] that may not comply with local laws in [territory]. Please ensure your app complies with all applicable laws.
How to fix:
- Research laws in all territories where your app is available
- Restrict distribution to compliant territories using App Store Connect
- Add required disclaimers for health, financial, or legal content
- Implement age gates where required
- Consult legal counsel for regulated industries
Response template:
We've addressed the compliance concern by [specific action:
adding age gate / restricting distribution / adding disclaimer].
The app is now limited to territories where [feature] is
permitted and includes appropriate [disclaimers/restrictions].Quick Reference: Rejection to Fix Mapping
| Guideline | Common Cause | Typical Fix Time | Difficulty |
|---|---|---|---|
| 2.1 Crashes | Untested edge case | 1-3 days | Low-Medium |
| 2.1 Placeholder | Incomplete feature | 1-2 days | Low |
| 2.1 Demo account | Missing review notes | 10 minutes | Low |
| 2.3 Screenshots | Outdated assets | 1-2 hours | Low |
| 2.3 Keywords | Competitor names | 10 minutes | Low |
| 2.5.1 Private API | Third-party SDK | 1-3 days | Medium |
| 3.1.1 IAP | External payment | 3-7 days | High |
| 3.1.2 Subscription | Missing terms | 1-2 days | Medium |
| 4.0 Web wrapper | Insufficient native | 1-2 weeks | High |
| 4.0 Poor UI | Design quality | 3-7 days | Medium |
| 4.2 Too simple | Insufficient features | 1-2 weeks | High |
| 4.3 Spam | Duplicate apps | Varies | High |
| 5.1.1 Privacy policy | Missing URL | 1-2 hours | Low |
| 5.1.1 Data collection | Excess permissions | 1-2 days | Low-Medium |
| 5.1.2 ATT | Missing prompt | 1-2 days | Medium |
| 5.1.2 Nutrition labels | Inaccurate labels | 1-2 hours | Low |
| 5.2.1 Legal | Territory laws | Varies | High |
When Each Strategy Applies
| Rejection Type | Fix | Clarify | Push Back | Appeal |
|---|---|---|---|---|
| 2.1 Crashes | ✅ | |||
| 2.1 Placeholder | ✅ | |||
| 2.3 Metadata | ✅ | |||
| 2.5.1 Private API | ✅ | |||
| 3.1.1 IAP | ✅ | Sometimes | ||
| 3.1.2 Subscriptions | ✅ | Sometimes | ||
| 4.0 Design | ✅ | Sometimes | Sometimes | |
| 4.2 Minimum functionality | Sometimes | ✅ | ✅ | ✅ |
| 4.3 Spam | ✅ | ✅ | Sometimes | Sometimes |
| 5.1.1 Privacy | ✅ | |||
| 5.1.2 Tracking | ✅ | |||
| 5.2.1 Legal | ✅ |
Related skills
How it compares
Choose app-store over generic copywriting skills when output must follow App Store Connect field limits, ASO keyword rules, and Apple Review guideline sections for iOS submissions.
FAQ
What does the app-store Claude Code skill generate?
The app-store skill from rshankras/claude-code-apple-skills generates App Store Connect copy within Apple limits—170-character promotional text, 4000-character descriptions, 100-character keyword fields, 5–10 screenshot captions, review responses, and rejection Resolution Center
How many sub-skills does app-store include?
The app-store router SKILL.md delegates to nine sub-skill directories including keyword-optimizer, screenshot-planner, app-description-writer, apple-search-ads, rejection-handler, marketing-strategy, review-response-writer, iap-finalizer, and originality-check.
When should a developer invoke /app-store?
Developers invoke /app-store when an iOS build nears App Store Connect upload and they need ASO metadata, screenshot storyboards, Search Ads planning, or help resolving an App Review rejection with guideline-aligned response templates.