diff --git a/.codex/skills-index.json b/.codex/skills-index.json index 0187498..f7f266c 100644 --- a/.codex/skills-index.json +++ b/.codex/skills-index.json @@ -129,7 +129,7 @@ "name": "app-store-optimization", "source": "../../marketing-skill/app-store-optimization", "category": "marketing", - "description": "Complete App Store Optimization (ASO) toolkit for researching, optimizing, and tracking mobile app performance on Apple App Store and Google Play Store" + "description": "App Store Optimization toolkit for researching keywords, optimizing metadata, and tracking mobile app performance on Apple App Store and Google Play Store." }, { "name": "content-creator", diff --git a/marketing-skill/app-store-optimization/SKILL.md b/marketing-skill/app-store-optimization/SKILL.md index c6fc139..4eaa765 100644 --- a/marketing-skill/app-store-optimization/SKILL.md +++ b/marketing-skill/app-store-optimization/SKILL.md @@ -1,403 +1,495 @@ --- name: app-store-optimization -description: Complete App Store Optimization (ASO) toolkit for researching, optimizing, and tracking mobile app performance on Apple App Store and Google Play Store +description: App Store Optimization toolkit for researching keywords, optimizing metadata, and tracking mobile app performance on Apple App Store and Google Play Store. +triggers: + - ASO + - app store optimization + - app store ranking + - app keywords + - app metadata + - play store optimization + - app store listing + - improve app rankings + - app visibility + - app store SEO + - mobile app marketing + - app conversion rate --- -# App Store Optimization (ASO) Skill +# App Store Optimization (ASO) -This comprehensive skill provides complete ASO capabilities for successfully launching and optimizing mobile applications on the Apple App Store and Google Play Store. +ASO tools for researching keywords, optimizing metadata, analyzing competitors, and improving app store visibility on Apple App Store and Google Play Store. -## Capabilities +--- -### Research & Analysis -- **Keyword Research**: Analyze keyword volume, competition, and relevance for app discovery -- **Competitor Analysis**: Deep-dive into top-performing apps in your category -- **Market Trend Analysis**: Identify emerging trends and opportunities in your app category -- **Review Sentiment Analysis**: Extract insights from user reviews to identify strengths and issues -- **Category Analysis**: Evaluate optimal category and subcategory placement strategies +## Table of Contents -### Metadata Optimization -- **Title Optimization**: Create compelling titles with optimal keyword placement (platform-specific character limits) -- **Description Optimization**: Craft both short and full descriptions that convert and rank -- **Subtitle/Promotional Text**: Optimize Apple-specific subtitle (30 chars) and promotional text (170 chars) -- **Keyword Field**: Maximize Apple's 100-character keyword field with strategic selection -- **Category Selection**: Data-driven recommendations for primary and secondary categories -- **Icon Best Practices**: Guidelines for designing high-converting app icons -- **Screenshot Optimization**: Strategies for creating screenshots that drive installs -- **Preview Video**: Best practices for app preview videos -- **Localization**: Multi-language optimization strategies for global reach +- [Keyword Research Workflow](#keyword-research-workflow) +- [Metadata Optimization Workflow](#metadata-optimization-workflow) +- [Competitor Analysis Workflow](#competitor-analysis-workflow) +- [App Launch Workflow](#app-launch-workflow) +- [A/B Testing Workflow](#ab-testing-workflow) +- [Before/After Examples](#beforeafter-examples) +- [Tools and References](#tools-and-references) -### Conversion Optimization -- **A/B Testing Framework**: Plan and track metadata experiments for continuous improvement -- **Visual Asset Testing**: Test icons, screenshots, and videos for maximum conversion -- **Store Listing Optimization**: Comprehensive page optimization for impression-to-install conversion -- **Call-to-Action**: Optimize CTAs in descriptions and promotional materials +--- -### Rating & Review Management -- **Review Monitoring**: Track and analyze user reviews for actionable insights -- **Response Strategies**: Templates and best practices for responding to reviews -- **Rating Improvement**: Tactical approaches to improve app ratings organically -- **Issue Identification**: Surface common problems and feature requests from reviews +## Keyword Research Workflow -### Launch & Update Strategies -- **Pre-Launch Checklist**: Complete validation before submitting to stores -- **Launch Timing**: Optimize release timing for maximum visibility and downloads -- **Update Cadence**: Plan optimal update frequency and feature rollouts -- **Feature Announcements**: Craft "What's New" sections that re-engage users -- **Seasonal Optimization**: Leverage seasonal trends and events +Discover and evaluate keywords that drive app store visibility. -### Analytics & Tracking -- **ASO Score**: Calculate overall ASO health score across multiple factors -- **Keyword Rankings**: Track keyword position changes over time -- **Conversion Metrics**: Monitor impression-to-install conversion rates -- **Download Velocity**: Track download trends and momentum -- **Performance Benchmarking**: Compare against category averages and competitors +### Workflow: Conduct Keyword Research -### Platform-Specific Requirements -- **Apple App Store**: - - Title: 30 characters - - Subtitle: 30 characters - - Promotional Text: 170 characters (editable without app update) - - Description: 4,000 characters - - Keywords: 100 characters (comma-separated, no spaces) - - What's New: 4,000 characters -- **Google Play Store**: - - Title: 50 characters (formerly 30, increased in 2021) - - Short Description: 80 characters - - Full Description: 4,000 characters - - No separate keyword field (keywords extracted from title and description) +1. Define target audience and core app functions: + - Primary use case (what problem does the app solve) + - Target user demographics + - Competitive category +2. Generate seed keywords from: + - App features and benefits + - User language (not developer terminology) + - App store autocomplete suggestions +3. Expand keyword list using: + - Modifiers (free, best, simple) + - Actions (create, track, organize) + - Audiences (for students, for teams, for business) +4. Evaluate each keyword: + - Search volume (estimated monthly searches) + - Competition (number and quality of ranking apps) + - Relevance (alignment with app function) +5. Score and prioritize keywords: + - Primary: Title and keyword field (iOS) + - Secondary: Subtitle and short description + - Tertiary: Full description only +6. Map keywords to metadata locations +7. Document keyword strategy for tracking +8. **Validation:** Keywords scored; placement mapped; no competitor brand names included; no plurals in iOS keyword field -## Input Requirements +### Keyword Evaluation Criteria -### Keyword Research -```json -{ - "app_name": "MyApp", - "category": "Productivity", - "target_keywords": ["task manager", "productivity", "todo list"], - "competitors": ["Todoist", "Any.do", "Microsoft To Do"], - "language": "en-US" -} +| Factor | Weight | High Score Indicators | +|--------|--------|----------------------| +| Relevance | 35% | Describes core app function | +| Volume | 25% | 10,000+ monthly searches | +| Competition | 25% | Top 10 apps have <4.5 avg rating | +| Conversion | 15% | Transactional intent ("best X app") | + +### Keyword Placement Priority + +| Location | Search Weight | Character Limit | +|----------|---------------|-----------------| +| App Title | Highest | 30 (iOS) / 50 (Android) | +| Subtitle (iOS) | High | 30 | +| Keyword Field (iOS) | High | 100 | +| Short Description (Android) | High | 80 | +| Full Description | Medium | 4,000 | + +See: [references/keyword-research-guide.md](references/keyword-research-guide.md) + +--- + +## Metadata Optimization Workflow + +Optimize app store listing elements for search ranking and conversion. + +### Workflow: Optimize App Metadata + +1. Audit current metadata against platform limits: + - Title character count and keyword presence + - Subtitle/short description usage + - Keyword field efficiency (iOS) + - Description keyword density +2. Optimize title following formula: + ``` + [Brand Name] - [Primary Keyword] [Secondary Keyword] + ``` +3. Write subtitle (iOS) or short description (Android): + - Focus on primary benefit + - Include secondary keyword + - Use action verbs +4. Optimize keyword field (iOS only): + - Remove duplicates from title + - Remove plurals (Apple indexes both forms) + - No spaces after commas + - Prioritize by score +5. Rewrite full description: + - Hook paragraph with value proposition + - Feature bullets with keywords + - Social proof section + - Call to action +6. Validate character counts for each field +7. Calculate keyword density (target 2-3% primary) +8. **Validation:** All fields within character limits; primary keyword in title; no keyword stuffing (>5%); natural language preserved + +### Platform Character Limits + +| Field | Apple App Store | Google Play Store | +|-------|-----------------|-------------------| +| Title | 30 characters | 50 characters | +| Subtitle | 30 characters | N/A | +| Short Description | N/A | 80 characters | +| Keywords | 100 characters | N/A | +| Promotional Text | 170 characters | N/A | +| Full Description | 4,000 characters | 4,000 characters | +| What's New | 4,000 characters | 500 characters | + +### Description Structure + +``` +PARAGRAPH 1: Hook (50-100 words) +├── Address user pain point +├── State main value proposition +└── Include primary keyword + +PARAGRAPH 2-3: Features (100-150 words) +├── Top 5 features with benefits +├── Bullet points for scanability +└── Secondary keywords naturally integrated + +PARAGRAPH 4: Social Proof (50-75 words) +├── Download count or rating +├── Press mentions or awards +└── Summary of user testimonials + +PARAGRAPH 5: Call to Action (25-50 words) +├── Clear next step +└── Reassurance (free trial, no signup) ``` -### Metadata Optimization -```json -{ - "platform": "apple" | "google", - "app_info": { - "name": "MyApp", - "category": "Productivity", - "target_audience": "Professionals aged 25-45", - "key_features": ["Task management", "Team collaboration", "AI assistance"], - "unique_value": "AI-powered task prioritization" - }, - "current_metadata": { - "title": "Current Title", - "subtitle": "Current Subtitle", - "description": "Current description..." - }, - "target_keywords": ["productivity", "task manager", "todo"] -} -``` +See: [references/platform-requirements.md](references/platform-requirements.md) -### Review Analysis -```json -{ - "app_id": "com.myapp.app", - "platform": "apple" | "google", - "date_range": "last_30_days" | "last_90_days" | "all_time", - "rating_filter": [1, 2, 3, 4, 5], - "language": "en" -} -``` +--- -### ASO Score Calculation -```json -{ - "metadata": { - "title_quality": 0.8, - "description_quality": 0.7, - "keyword_density": 0.6 - }, - "ratings": { - "average_rating": 4.5, - "total_ratings": 15000 - }, - "conversion": { - "impression_to_install": 0.05 - }, - "keyword_rankings": { - "top_10": 5, - "top_50": 12, - "top_100": 18 - } -} -``` +## Competitor Analysis Workflow -## Output Formats +Analyze top competitors to identify keyword gaps and positioning opportunities. -### Keyword Research Report -- List of recommended keywords with search volume estimates -- Competition level analysis (low/medium/high) -- Relevance scores for each keyword -- Strategic recommendations for primary vs. secondary keywords -- Long-tail keyword opportunities +### Workflow: Analyze Competitor ASO Strategy -### Optimized Metadata Package -- Platform-specific title (with character count validation) -- Subtitle/promotional text (Apple) -- Short description (Google) -- Full description (both platforms) -- Keyword field (Apple - 100 chars) -- Character count validation for all fields -- Keyword density analysis -- Before/after comparison +1. Identify top 10 competitors: + - Direct competitors (same core function) + - Indirect competitors (overlapping audience) + - Category leaders (top downloads) +2. Extract competitor keywords from: + - App titles and subtitles + - First 100 words of descriptions + - Visible metadata patterns +3. Build competitor keyword matrix: + - Map which keywords each competitor targets + - Calculate coverage percentage per keyword +4. Identify keyword gaps: + - Keywords with <40% competitor coverage + - High volume terms competitors miss + - Long-tail opportunities +5. Analyze competitor visual assets: + - Icon design patterns + - Screenshot messaging and style + - Video presence and quality +6. Compare ratings and review patterns: + - Average rating by competitor + - Common praise themes + - Common complaint themes +7. Document positioning opportunities +8. **Validation:** 10+ competitors analyzed; keyword matrix complete; gaps identified with volume estimates; visual audit documented -### Competitor Analysis Report -- Top 10 competitors in category -- Their metadata strategies -- Keyword overlap analysis -- Visual asset assessment -- Rating and review volume comparison -- Identified gaps and opportunities +### Competitor Analysis Matrix -### ASO Health Score -- Overall score (0-100) -- Category breakdown: - - Metadata Quality (0-25) - - Ratings & Reviews (0-25) - - Keyword Performance (0-25) - - Conversion Metrics (0-25) -- Specific improvement recommendations -- Priority action items +| Analysis Area | Data Points | +|---------------|-------------| +| Keywords | Title keywords, description frequency | +| Metadata | Character utilization, keyword density | +| Visuals | Icon style, screenshot count/style | +| Ratings | Average rating, total count, velocity | +| Reviews | Top praise, top complaints | -### A/B Test Plan -- Hypothesis and test variables -- Test duration recommendations -- Success metrics definition -- Sample size calculations -- Statistical significance thresholds +### Gap Analysis Template -### Launch Checklist -- Pre-submission validation (all required assets, metadata) -- Store compliance verification -- Testing checklist (devices, OS versions) -- Marketing preparation items -- Post-launch monitoring plan +| Opportunity Type | Example | Action | +|------------------|---------|--------| +| Keyword gap | "habit tracker" (40% coverage) | Add to keyword field | +| Feature gap | Competitor lacks widget | Highlight in screenshots | +| Visual gap | No videos in top 5 | Create app preview | +| Messaging gap | None mention "free" | Test free positioning | -## How to Use +--- -### Keyword Research -``` -Hey Claude—I just added the "app-store-optimization" skill. Can you research the best keywords for a productivity app targeting professionals? Focus on keywords with good search volume but lower competition. -``` +## App Launch Workflow -### Optimize App Store Listing -``` -Hey Claude—I just added the "app-store-optimization" skill. Can you optimize my app's metadata for the Apple App Store? Here's my current listing: [provide current metadata]. I want to rank for "task management" and "productivity tools". -``` +Execute a structured launch for maximum initial visibility. -### Analyze Competitor Strategy -``` -Hey Claude—I just added the "app-store-optimization" skill. Can you analyze the ASO strategies of Todoist, Any.do, and Microsoft To Do? I want to understand what they're doing well and where there are opportunities. -``` +### Workflow: Launch App to Stores -### Review Sentiment Analysis -``` -Hey Claude—I just added the "app-store-optimization" skill. Can you analyze recent reviews for my app (com.myapp.ios) and identify the most common user complaints and feature requests? -``` - -### Calculate ASO Score -``` -Hey Claude—I just added the "app-store-optimization" skill. Can you calculate my app's overall ASO health score and provide specific recommendations for improvement? -``` - -### Plan A/B Test -``` -Hey Claude—I just added the "app-store-optimization" skill. I want to A/B test my app icon and first screenshot. Can you help me design the test and determine how long to run it? -``` +1. Complete pre-launch preparation (4 weeks before): + - Finalize keywords and metadata + - Prepare all visual assets + - Set up analytics (Firebase, Mixpanel) + - Build press kit and media list +2. Submit for review (2 weeks before): + - Complete all store requirements + - Verify compliance with guidelines + - Prepare launch communications +3. Configure post-launch systems: + - Set up review monitoring + - Prepare response templates + - Configure rating prompt timing +4. Execute launch day: + - Verify app is live in both stores + - Announce across all channels + - Begin review response cycle +5. Monitor initial performance (days 1-7): + - Track download velocity hourly + - Monitor reviews and respond within 24 hours + - Document any issues for quick fixes +6. Conduct 7-day retrospective: + - Compare performance to projections + - Identify quick optimization wins + - Plan first metadata update +7. Schedule first update (2 weeks post-launch) +8. **Validation:** App live in stores; analytics tracking; review responses within 24h; download velocity documented; first update scheduled ### Pre-Launch Checklist + +| Category | Items | +|----------|-------| +| Metadata | Title, subtitle, description, keywords | +| Visual Assets | Icon, screenshots (all sizes), video | +| Compliance | Age rating, privacy policy, content rights | +| Technical | App binary, signing certificates | +| Analytics | SDK integration, event tracking | +| Marketing | Press kit, social content, email ready | + +### Launch Timing Considerations + +| Factor | Recommendation | +|--------|----------------| +| Day of week | Tuesday-Wednesday (avoid weekends) | +| Time of day | Morning in target market timezone | +| Seasonal | Align with relevant category seasons | +| Competition | Avoid major competitor launch dates | + +See: [references/aso-best-practices.md](references/aso-best-practices.md) + +--- + +## A/B Testing Workflow + +Test metadata and visual elements to improve conversion rates. + +### Workflow: Run A/B Test + +1. Select test element (prioritize by impact): + - Icon (highest impact) + - Screenshot 1 (high impact) + - Title (high impact) + - Short description (medium impact) +2. Form hypothesis: + ``` + If we [change], then [metric] will [improve/increase] by [amount] + because [rationale]. + ``` +3. Create variants: + - Control: Current version + - Treatment: Single variable change +4. Calculate required sample size: + - Baseline conversion rate + - Minimum detectable effect (usually 5%) + - Statistical significance (95%) +5. Launch test: + - Apple: Use Product Page Optimization + - Android: Use Store Listing Experiments +6. Run test for minimum duration: + - At least 7 days + - Until statistical significance reached +7. Analyze results: + - Compare conversion rates + - Check statistical significance + - Document learnings +8. **Validation:** Single variable tested; sample size sufficient; significance reached (95%); results documented; winner implemented + +### A/B Test Prioritization + +| Element | Conversion Impact | Test Complexity | +|---------|-------------------|-----------------| +| App Icon | 10-25% lift possible | Medium (design needed) | +| Screenshot 1 | 15-35% lift possible | Medium | +| Title | 5-15% lift possible | Low | +| Short Description | 5-10% lift possible | Low | +| Video | 10-20% lift possible | High | + +### Sample Size Quick Reference + +| Baseline CVR | Impressions Needed (per variant) | +|--------------|----------------------------------| +| 1% | 31,000 | +| 2% | 15,500 | +| 5% | 6,200 | +| 10% | 3,100 | + +### Test Documentation Template + ``` -Hey Claude—I just added the "app-store-optimization" skill. Can you generate a comprehensive pre-launch checklist for submitting my app to both Apple App Store and Google Play Store? +TEST ID: ASO-2025-001 +ELEMENT: App Icon +HYPOTHESIS: A bolder color icon will increase conversion by 10% +START DATE: [Date] +END DATE: [Date] + +RESULTS: +├── Control CVR: 4.2% +├── Treatment CVR: 4.8% +├── Lift: +14.3% +├── Significance: 97% +└── Decision: Implement treatment + +LEARNINGS: +- Bold colors outperform muted tones in this category +- Apply to screenshot backgrounds for next test ``` -## Scripts +--- -### keyword_analyzer.py -Analyzes keywords for search volume, competition, and relevance. Provides strategic recommendations for primary and secondary keywords. +## Before/After Examples -**Key Functions:** -- `analyze_keyword()`: Analyze single keyword metrics -- `compare_keywords()`: Compare multiple keywords -- `find_long_tail()`: Discover long-tail keyword opportunities -- `calculate_keyword_difficulty()`: Assess competition level +### Title Optimization -### metadata_optimizer.py -Optimizes titles, descriptions, and keyword fields with platform-specific character limit validation. +**Productivity App:** -**Key Functions:** -- `optimize_title()`: Create compelling, keyword-rich titles -- `optimize_description()`: Generate conversion-focused descriptions -- `optimize_keyword_field()`: Maximize Apple's 100-char keyword field -- `validate_character_limits()`: Ensure compliance with platform limits -- `calculate_keyword_density()`: Analyze keyword usage in metadata +| Version | Title | Analysis | +|---------|-------|----------| +| Before | "MyTasks" | No keywords, brand only (8 chars) | +| After | "MyTasks - Todo List & Planner" | Primary + secondary keywords (29 chars) | -### competitor_analyzer.py -Analyzes top competitors' ASO strategies and identifies opportunities. +**Fitness App:** -**Key Functions:** -- `get_top_competitors()`: Identify category leaders -- `analyze_competitor_metadata()`: Extract and analyze competitor keywords -- `compare_visual_assets()`: Evaluate icons and screenshots -- `identify_gaps()`: Find competitive opportunities +| Version | Title | Analysis | +|---------|-------|----------| +| Before | "FitTrack Pro" | Generic modifier (12 chars) | +| After | "FitTrack: Workout Log & Gym" | Category keywords (27 chars) | -### aso_scorer.py -Calculates comprehensive ASO health score across multiple dimensions. +### Subtitle Optimization (iOS) -**Key Functions:** -- `calculate_overall_score()`: Compute 0-100 ASO score -- `score_metadata_quality()`: Evaluate title, description, keywords -- `score_ratings_reviews()`: Assess rating quality and volume -- `score_keyword_performance()`: Analyze ranking positions -- `score_conversion_metrics()`: Evaluate impression-to-install rates -- `generate_recommendations()`: Provide prioritized action items +| Version | Subtitle | Analysis | +|---------|----------|----------| +| Before | "Get Things Done" | Vague, no keywords | +| After | "Daily Task Manager & Planner" | Two keywords, benefit clear | -### ab_test_planner.py -Plans and tracks A/B tests for metadata and visual assets. +### Keyword Field Optimization (iOS) -**Key Functions:** -- `design_test()`: Create test hypothesis and variables -- `calculate_sample_size()`: Determine required test duration -- `calculate_significance()`: Assess statistical significance -- `track_results()`: Monitor test performance -- `generate_report()`: Summarize test outcomes +**Before (Inefficient - 89 chars, 8 keywords):** +``` +task manager, todo list, productivity app, daily planner, reminder app +``` -### localization_helper.py -Manages multi-language ASO optimization strategies. +**After (Optimized - 97 chars, 14 keywords):** +``` +task,todo,checklist,reminder,organize,daily,planner,schedule,deadline,goals,habit,widget,sync,team +``` -**Key Functions:** -- `identify_target_markets()`: Recommend localization priorities -- `translate_metadata()`: Generate localized metadata -- `adapt_keywords()`: Research locale-specific keywords -- `validate_translations()`: Check character limits per language -- `calculate_localization_roi()`: Estimate impact of localization +**Improvements:** +- Removed spaces after commas (+8 chars) +- Removed duplicates (task manager → task) +- Removed plurals (reminders → reminder) +- Removed words in title +- Added more relevant keywords -### review_analyzer.py -Analyzes user reviews for sentiment, issues, and feature requests. +### Description Opening -**Key Functions:** -- `analyze_sentiment()`: Calculate positive/negative/neutral ratios -- `extract_common_themes()`: Identify frequently mentioned topics -- `identify_issues()`: Surface bugs and user complaints -- `find_feature_requests()`: Extract desired features -- `track_sentiment_trends()`: Monitor sentiment over time -- `generate_response_templates()`: Create review response drafts +**Before:** +``` +MyTasks is a comprehensive task management solution designed +to help busy professionals organize their daily activities +and boost productivity. +``` -### launch_checklist.py -Generates comprehensive pre-launch and update checklists. +**After:** +``` +Forget missed deadlines. MyTasks keeps every task, reminder, +and project in one place—so you focus on doing, not remembering. +Trusted by 500,000+ professionals. +``` -**Key Functions:** -- `generate_prelaunch_checklist()`: Complete submission validation -- `validate_app_store_compliance()`: Check Apple guidelines -- `validate_play_store_compliance()`: Check Google policies -- `create_update_plan()`: Plan update cadence and features -- `optimize_launch_timing()`: Recommend release dates -- `plan_seasonal_campaigns()`: Identify seasonal opportunities +**Improvements:** +- Leads with user pain point +- Specific benefit (not generic "boost productivity") +- Social proof included +- Keywords natural, not stuffed -## Best Practices +### Screenshot Caption Evolution -### Keyword Research -1. **Volume vs. Competition**: Balance high-volume keywords with achievable rankings -2. **Relevance First**: Only target keywords genuinely relevant to your app -3. **Long-Tail Strategy**: Include 3-4 word phrases with lower competition -4. **Continuous Research**: Keyword trends change—research quarterly -5. **Competitor Keywords**: Don't copy blindly; ensure relevance to your features +| Version | Caption | Issue | +|---------|---------|-------| +| Before | "Task List Feature" | Feature-focused, passive | +| Better | "Create Task Lists" | Action verb, but still feature | +| Best | "Never Miss a Deadline" | Benefit-focused, emotional | -### Metadata Optimization -1. **Front-Load Keywords**: Place most important keywords early in title/description -2. **Natural Language**: Write for humans first, SEO second -3. **Feature Benefits**: Focus on user benefits, not just features -4. **A/B Test Everything**: Test titles, descriptions, screenshots systematically -5. **Update Regularly**: Refresh metadata every major update -6. **Character Limits**: Use every character—don't waste valuable space -7. **Apple Keyword Field**: No plurals, duplicates, or spaces between commas +--- -### Visual Assets -1. **Icon**: Must be recognizable at small sizes (60x60px) -2. **Screenshots**: First 2-3 are critical—most users don't scroll -3. **Captions**: Use screenshot captions to tell your value story -4. **Consistency**: Match visual style to app design -5. **A/B Test Icons**: Icon is the single most important visual element +## Tools and References -### Reviews & Ratings -1. **Respond Quickly**: Reply to reviews within 24-48 hours -2. **Professional Tone**: Always courteous, even with negative reviews -3. **Address Issues**: Show you're actively fixing reported problems -4. **Thank Supporters**: Acknowledge positive reviews -5. **Prompt Strategically**: Ask for ratings after positive experiences +### Scripts -### Launch Strategy -1. **Soft Launch**: Consider launching in smaller markets first -2. **PR Timing**: Coordinate press coverage with launch -3. **Update Frequently**: Initial updates signal active development -4. **Monitor Closely**: Track metrics daily for first 2 weeks -5. **Iterate Quickly**: Fix critical issues immediately +| Script | Purpose | Usage | +|--------|---------|-------| +| [keyword_analyzer.py](scripts/keyword_analyzer.py) | Analyze keywords for volume and competition | `python keyword_analyzer.py --keywords "todo,task,planner"` | +| [metadata_optimizer.py](scripts/metadata_optimizer.py) | Validate metadata character limits and density | `python metadata_optimizer.py --platform ios --title "App Title"` | +| [competitor_analyzer.py](scripts/competitor_analyzer.py) | Extract and compare competitor keywords | `python competitor_analyzer.py --competitors "App1,App2,App3"` | +| [aso_scorer.py](scripts/aso_scorer.py) | Calculate overall ASO health score | `python aso_scorer.py --app-id com.example.app` | +| [ab_test_planner.py](scripts/ab_test_planner.py) | Plan tests and calculate sample sizes | `python ab_test_planner.py --cvr 0.05 --lift 0.10` | +| [review_analyzer.py](scripts/review_analyzer.py) | Analyze review sentiment and themes | `python review_analyzer.py --app-id com.example.app` | +| [launch_checklist.py](scripts/launch_checklist.py) | Generate platform-specific launch checklists | `python launch_checklist.py --platform ios` | +| [localization_helper.py](scripts/localization_helper.py) | Manage multi-language metadata | `python localization_helper.py --locales "en,es,de,ja"` | -### Localization -1. **Prioritize Markets**: Start with English, Spanish, Chinese, French, German -2. **Native Speakers**: Use professional translators, not machine translation -3. **Cultural Adaptation**: Some features resonate differently by culture -4. **Test Locally**: Have native speakers review before publishing -5. **Measure ROI**: Track downloads by locale to assess impact +### References -## Limitations +| Document | Content | +|----------|---------| +| [platform-requirements.md](references/platform-requirements.md) | iOS and Android metadata specs, visual asset requirements | +| [aso-best-practices.md](references/aso-best-practices.md) | Optimization strategies, rating management, launch tactics | +| [keyword-research-guide.md](references/keyword-research-guide.md) | Research methodology, evaluation framework, tracking | -### Data Dependencies -- Keyword search volume estimates are approximate (no official data from Apple/Google) -- Competitor data may be incomplete for private apps -- Review analysis limited to public reviews (can't access private feedback) -- Historical data may not be available for new apps +### Assets -### Platform Constraints -- Apple App Store keyword changes require app submission (except Promotional Text) -- Google Play Store metadata changes take 1-2 hours to index -- A/B testing requires significant traffic for statistical significance -- Store algorithms are proprietary and change without notice +| Template | Purpose | +|----------|---------| +| [aso-audit-template.md](assets/aso-audit-template.md) | Structured audit checklist for app store listings | -### Industry Variability -- ASO benchmarks vary significantly by category (games vs. utilities) -- Seasonality affects different categories differently -- Geographic markets have different competitive landscapes -- Cultural preferences impact what works in different countries +--- -### Scope Boundaries -- Does not include paid user acquisition strategies (Apple Search Ads, Google Ads) -- Does not cover app development or UI/UX optimization -- Does not include app analytics implementation (use Firebase, Mixpanel, etc.) -- Does not handle app submission technical issues (provisioning profiles, certificates) +## Platform Limitations -### When NOT to Use This Skill -- For web apps (different SEO strategies apply) -- For enterprise apps not in public stores -- For apps in beta/TestFlight only -- If you need paid advertising strategies (use marketing skills instead) +### Data Constraints -## Integration with Other Skills +| Constraint | Impact | +|------------|--------| +| No official keyword volume data | Estimates based on third-party tools | +| Competitor data limited to public info | Cannot see internal metrics | +| Review access limited to public reviews | No access to private feedback | +| Historical data unavailable for new apps | Cannot compare to past performance | -This skill works well with: -- **Content Strategy Skills**: For creating app descriptions and marketing copy -- **Analytics Skills**: For analyzing download and engagement data -- **Localization Skills**: For managing multi-language content -- **Design Skills**: For creating optimized visual assets -- **Marketing Skills**: For coordinating broader launch campaigns +### Platform Behavior -## Version & Updates +| Platform | Behavior | +|----------|----------| +| iOS | Keyword changes require app submission | +| iOS | Promotional text editable without update | +| Android | Metadata changes index in 1-2 hours | +| Android | No separate keyword field (use description) | +| Both | Algorithm changes without notice | -This skill is based on current Apple App Store and Google Play Store requirements as of November 2025. Store policies and best practices evolve—verify current requirements before major launches. +### When Not to Use This Skill -**Key Updates to Monitor:** -- Apple App Store Connect updates (apple.com/app-store/review/guidelines) -- Google Play Console updates (play.google.com/console/about/guides/releasewithconfidence) -- iOS/Android version adoption rates (affects device testing) -- Store algorithm changes (follow ASO blogs and communities) +| Scenario | Alternative | +|----------|-------------| +| Web apps | Use web SEO skills | +| Enterprise apps (not public) | Internal distribution tools | +| Beta/TestFlight only | Focus on feedback, not ASO | +| Paid advertising strategy | Use paid acquisition skills | + +--- + +## Related Skills + +| Skill | Integration Point | +|-------|-------------------| +| [content-creator](../content-creator/) | App description copywriting | +| [marketing-demand-acquisition](../marketing-demand-acquisition/) | Launch promotion campaigns | +| [marketing-strategy-pmm](../marketing-strategy-pmm/) | Go-to-market planning | diff --git a/marketing-skill/app-store-optimization/assets/aso-audit-template.md b/marketing-skill/app-store-optimization/assets/aso-audit-template.md new file mode 100644 index 0000000..4a72762 --- /dev/null +++ b/marketing-skill/app-store-optimization/assets/aso-audit-template.md @@ -0,0 +1,268 @@ +# ASO Audit Template + +Use this template to conduct a systematic App Store Optimization audit. + +--- + +## App Information + +| Field | Value | +|-------|-------| +| App Name | | +| Platform | [ ] iOS [ ] Android | +| Category | | +| Current Downloads | | +| Current Rating | | +| Audit Date | | + +--- + +## Metadata Audit + +### Title Analysis + +| Criterion | iOS (30 chars) | Android (50 chars) | +|-----------|----------------|---------------------| +| Current Title | | | +| Character Count | /30 | /50 | +| Primary Keyword Present | [ ] Yes [ ] No | [ ] Yes [ ] No | +| Brand Name Position | | | + +**Title Score:** ___/10 + +**Recommendations:** +- [ ] +- [ ] + +### Subtitle / Short Description + +| Criterion | iOS Subtitle (30 chars) | Android Short Desc (80 chars) | +|-----------|-------------------------|-------------------------------| +| Current Text | | | +| Character Count | /30 | /80 | +| Keywords Included | | | +| Benefit-Focused | [ ] Yes [ ] No | [ ] Yes [ ] No | + +**Score:** ___/10 + +**Recommendations:** +- [ ] +- [ ] + +### Keyword Field (iOS Only) + +| Criterion | Status | +|-----------|--------| +| Current Keywords | | +| Character Count | /100 | +| Duplicates Present | [ ] Yes [ ] No | +| Plurals Included | [ ] Yes [ ] No | +| Brand Names Included | [ ] Yes [ ] No | + +**Score:** ___/10 + +**Recommendations:** +- [ ] +- [ ] + +### Full Description + +| Criterion | iOS | Android | +|-----------|-----|---------| +| Character Count | /4000 | /4000 | +| Primary Keyword Density | % | % | +| Secondary Keywords (count) | | | +| Feature Bullets Present | [ ] Yes [ ] No | [ ] Yes [ ] No | +| Social Proof Included | [ ] Yes [ ] No | [ ] Yes [ ] No | +| CTA Present | [ ] Yes [ ] No | [ ] Yes [ ] No | + +**Score:** ___/10 + +**Recommendations:** +- [ ] +- [ ] + +--- + +## Visual Asset Audit + +### App Icon + +| Criterion | Status | +|-----------|--------| +| Recognizable at 60x60px | [ ] Yes [ ] No | +| Distinct from competitors | [ ] Yes [ ] No | +| Matches app design | [ ] Yes [ ] No | +| No text/words | [ ] Yes [ ] No | + +**Score:** ___/10 + +**Recommendations:** +- [ ] +- [ ] + +### Screenshots + +| Screenshot | Caption | Feature Shown | Score | +|------------|---------|---------------|-------| +| 1 (Hero) | | | /10 | +| 2 | | | /10 | +| 3 | | | /10 | +| 4 | | | /10 | +| 5 | | | /10 | + +| Criterion | Status | +|-----------|--------| +| Total Screenshots | /10 (iOS) or /8 (Android) | +| Captions Present | [ ] Yes [ ] No | +| Consistent Style | [ ] Yes [ ] No | +| First 3 Show Value | [ ] Yes [ ] No | +| Device Frames Used | [ ] Yes [ ] No | + +**Overall Screenshot Score:** ___/10 + +**Recommendations:** +- [ ] +- [ ] + +### App Preview Video + +| Criterion | Status | +|-----------|--------| +| Video Present | [ ] Yes [ ] No | +| Duration | seconds | +| Shows Core Features | [ ] Yes [ ] No | +| Hook in First 5 Seconds | [ ] Yes [ ] No | +| CTA at End | [ ] Yes [ ] No | + +**Score:** ___/10 + +--- + +## Keyword Performance Audit + +### Current Keyword Rankings + +| Keyword | Current Rank | Volume | Competition | Score | +|---------|--------------|--------|-------------|-------| +| | | | | | +| | | | | | +| | | | | | +| | | | | | +| | | | | | + +### Keyword Opportunities + +| Keyword | Current Rank | Potential | Action | +|---------|--------------|-----------|--------| +| | | | | +| | | | | +| | | | | + +--- + +## Rating & Review Audit + +### Rating Summary + +| Metric | Value | +|--------|-------| +| Current Average Rating | /5.0 | +| Total Ratings | | +| Ratings (Last 30 Days) | | +| 5-Star Percentage | % | +| 1-Star Percentage | % | + +### Review Analysis + +| Category | Count | Common Themes | +|----------|-------|---------------| +| Positive (4-5 stars) | | | +| Neutral (3 stars) | | | +| Negative (1-2 stars) | | | + +### Response Rate + +| Metric | Value | +|--------|-------| +| Reviews Responded | % | +| Avg Response Time | hours | + +**Rating Score:** ___/10 + +**Recommendations:** +- [ ] +- [ ] + +--- + +## Competitor Comparison + +### Top 3 Competitors + +| Metric | Your App | Competitor 1 | Competitor 2 | Competitor 3 | +|--------|----------|--------------|--------------|--------------| +| Name | | | | | +| Rating | | | | | +| Total Ratings | | | | | +| Downloads | | | | | +| Title Keywords | | | | | +| Screenshot Count | | | | | + +### Competitive Gaps + +| Gap Identified | Opportunity | +|----------------|-------------| +| | | +| | | +| | | + +--- + +## Overall ASO Score + +| Category | Weight | Score | Weighted | +|----------|--------|-------|----------| +| Title/Metadata | 25% | /10 | | +| Keywords | 25% | /10 | | +| Visual Assets | 25% | /10 | | +| Ratings/Reviews | 25% | /10 | | +| **TOTAL** | 100% | | **/100** | + +--- + +## Priority Action Items + +### High Priority (This Week) + +1. [ ] +2. [ ] +3. [ ] + +### Medium Priority (This Month) + +1. [ ] +2. [ ] +3. [ ] + +### Low Priority (This Quarter) + +1. [ ] +2. [ ] +3. [ ] + +--- + +## Audit Sign-Off + +| Role | Name | Date | +|------|------|------| +| Auditor | | | +| Reviewer | | | +| App Owner | | | + +--- + +## Notes + +_Additional observations and context:_ diff --git a/marketing-skill/app-store-optimization/references/aso-best-practices.md b/marketing-skill/app-store-optimization/references/aso-best-practices.md new file mode 100644 index 0000000..9ce7ca2 --- /dev/null +++ b/marketing-skill/app-store-optimization/references/aso-best-practices.md @@ -0,0 +1,403 @@ +# ASO Best Practices Reference + +Optimization strategies for improving app store visibility, conversion, and rankings. + +--- + +## Table of Contents + +- [Keyword Optimization](#keyword-optimization) +- [Metadata Optimization](#metadata-optimization) +- [Visual Asset Optimization](#visual-asset-optimization) +- [Rating and Review Management](#rating-and-review-management) +- [Launch Strategy](#launch-strategy) +- [A/B Testing Framework](#ab-testing-framework) +- [Conversion Optimization](#conversion-optimization) +- [Common Mistakes to Avoid](#common-mistakes-to-avoid) + +--- + +## Keyword Optimization + +### Keyword Research Process + +1. **Brainstorm seed keywords** - Core terms users search for +2. **Expand with variations** - Synonyms, related terms, long-tail +3. **Analyze competition** - Check difficulty scores +4. **Evaluate search volume** - Prioritize high-volume terms +5. **Test and iterate** - Monitor rankings and adjust + +### Keyword Selection Criteria + +| Factor | Weight | Evaluation Method | +|--------|--------|-------------------| +| Relevance | 40% | Does it describe app function? | +| Search Volume | 30% | Monthly search estimates | +| Competition | 20% | Number of ranking apps | +| Conversion Potential | 10% | User intent alignment | + +### Keyword Placement Priority + +| Location | Search Weight | Example | +|----------|---------------|---------| +| App Title | Highest | "TaskMaster - Todo List Manager" | +| Subtitle (iOS) | High | "Organize Your Daily Tasks" | +| Keyword Field (iOS) | High | "planner,reminder,checklist" | +| Short Description (Android) | High | "Simple task manager for busy professionals" | +| Full Description | Medium | Natural keyword usage throughout | + +### Long-Tail Keyword Strategy + +Long-tail keywords have lower volume but higher conversion: + +| Type | Example | Volume | Competition | Conversion | +|------|---------|--------|-------------|------------| +| Short-tail | "todo app" | High | High | Low | +| Mid-tail | "daily task manager" | Medium | Medium | Medium | +| Long-tail | "free todo list with reminders" | Low | Low | High | + +**Formula for keyword priority:** +``` +Score = (Volume × 0.3) + (1/Competition × 0.3) + (Relevance × 0.4) +``` + +--- + +## Metadata Optimization + +### Title Optimization + +**Structure Formula:** +``` +[Brand Name] - [Primary Keyword] [Secondary Keyword/Benefit] +``` + +**Examples by category:** + +| Category | Before | After | +|----------|--------|-------| +| Productivity | "MyTasks" | "MyTasks - Todo List & Planner" | +| Fitness | "FitTrack" | "FitTrack: Workout & Gym Log" | +| Finance | "MoneyApp" | "MoneyApp - Budget Tracker" | +| Photo | "SnapEdit" | "SnapEdit: Photo Editor & AI" | + +**Title Optimization Checklist:** +- [ ] Primary keyword within first 3 words +- [ ] Brand name is memorable and unique +- [ ] Character count matches platform limit +- [ ] No keyword stuffing +- [ ] Readable and natural sounding + +### Description Optimization + +**Full Description Structure:** + +``` +PARAGRAPH 1: Hook + Primary Benefit (50-100 words) +- Address user pain point +- State main value proposition +- Include primary keyword naturally + +PARAGRAPH 2-3: Feature Highlights (100-150 words) +- Top 3-5 features with benefits +- Use bullet points or emojis for scanability +- Include secondary keywords + +PARAGRAPH 4: Social Proof (50-75 words) +- Download numbers or ratings +- Press mentions or awards +- User testimonials (summarized) + +PARAGRAPH 5: Call to Action (25-50 words) +- Clear next step +- Urgency or incentive +- Reassurance (free trial, no credit card) +``` + +**Keyword Density Target:** +- Primary keyword: 2-3% (8-12 mentions in 4000 chars) +- Secondary keywords: 1-2% each (4-8 mentions each) + +### Subtitle Optimization (iOS) + +**Effective Subtitle Formulas:** + +| Formula | Example | +|---------|---------| +| [Verb] + [Benefit] | "Organize Your Life" | +| [Adjective] + [Category] | "Smart Task Manager" | +| [Feature] + [Feature] | "Lists, Reminders & Notes" | +| [Audience] + [Solution] | "For Busy Professionals" | + +--- + +## Visual Asset Optimization + +### App Icon Best Practices + +| Principle | Do | Don't | +|-----------|-----|-------| +| Simplicity | Single focal element | Multiple competing elements | +| Recognizability | Works at 60x60px | Requires large size to read | +| Uniqueness | Distinct from competitors | Generic category icon | +| Color | Bold, contrasting colors | Muted or similar to background | +| Text | None or single letter | Full words or app name | + +**Icon Testing Questions:** +1. Is it recognizable at 29x29px (smallest iOS size)? +2. Does it stand out in search results? +3. Does it communicate app function? +4. Is it distinct from top 10 category competitors? + +### Screenshot Optimization + +**Screenshot Hierarchy:** + +| Position | Purpose | Content Strategy | +|----------|---------|------------------| +| Screenshot 1 | Hook/Hero | Main value proposition + key UI | +| Screenshot 2 | Primary Feature | Most-used feature demonstration | +| Screenshot 3 | Secondary Feature | Differentiating capability | +| Screenshot 4 | Social Proof | Ratings, awards, user count | +| Screenshot 5+ | Additional Features | Supporting functionality | + +**Caption Best Practices:** +- Maximum 5-7 words per caption +- Action-oriented verbs ("Track", "Organize", "Discover") +- Benefit-focused, not feature-focused +- Consistent typography and style + +**Example Caption Evolution:** + +| Weak | Better | Best | +|------|--------|------| +| "Task List Feature" | "Create Task Lists" | "Never Forget a Task Again" | +| "Calendar View" | "See Your Schedule" | "Plan Your Week in Seconds" | +| "Notifications" | "Get Reminders" | "Stay on Top of Deadlines" | + +### Video Preview Strategy + +**Video Structure (30 seconds):** + +| Seconds | Content | +|---------|---------| +| 0-5 | Hook: Show end result or main benefit | +| 5-15 | Demo: Core feature in action | +| 15-25 | Features: Quick feature montage | +| 25-30 | CTA: Logo and download prompt | + +--- + +## Rating and Review Management + +### Review Response Framework + +**For Negative Reviews (1-2 stars):** + +``` +Structure: +1. Acknowledge the issue (1 sentence) +2. Apologize without making excuses (1 sentence) +3. Offer solution or next step (1-2 sentences) +4. Invite direct contact (1 sentence) + +Example: +"We're sorry the syncing issues are affecting your experience. +Our team is actively working on a fix for the next update. +In the meantime, please try logging out and back in, which +resolves this for most users. If issues persist, email us at +support@app.com and we'll prioritize your case." +``` + +**For Positive Reviews (4-5 stars):** + +``` +Structure: +1. Thank sincerely (1 sentence) +2. Acknowledge specific praise (1 sentence) +3. Encourage continued use or sharing (1 sentence) + +Example: +"Thank you for the kind words! We're thrilled the reminder +feature helps you stay organized. If you're enjoying the app, +we'd love if you'd share it with friends who might benefit." +``` + +### Rating Improvement Tactics + +| Tactic | Implementation | Expected Impact | +|--------|----------------|-----------------| +| In-app prompt timing | After positive action (task completed, milestone reached) | +0.3 stars | +| Bug fix velocity | Address 1-star issues within 7 days | +0.2 stars | +| Response rate | Reply to 80%+ of reviews | +0.1 stars | +| Feature requests | Implement top-requested features | +0.2 stars | + +### Review Prompt Best Practices + +**When to prompt:** +- After user completes 5+ successful sessions +- After milestone achievement (first task completed, 7-day streak) +- After positive in-app feedback ("Was this helpful? Yes") + +**When NOT to prompt:** +- First session +- After error or crash +- During critical workflow +- More than once per 30 days + +--- + +## Launch Strategy + +### Pre-Launch Checklist + +**4 Weeks Before Launch:** +- [ ] Finalize app name and keywords +- [ ] Complete all metadata fields +- [ ] Prepare all visual assets +- [ ] Set up analytics (Firebase, Mixpanel) +- [ ] Create press kit and media assets +- [ ] Build email list for launch notification + +**2 Weeks Before Launch:** +- [ ] Submit for app review +- [ ] Prepare social media content +- [ ] Brief press and influencers +- [ ] Set up review response templates +- [ ] Configure in-app rating prompts + +**Launch Day:** +- [ ] Verify app is live in stores +- [ ] Announce across all channels +- [ ] Monitor reviews and respond quickly +- [ ] Track download velocity +- [ ] Document any issues for Day 2 fix + +### Update Cadence + +| Update Type | Frequency | ASO Impact | +|-------------|-----------|------------| +| Bug fixes | As needed | Prevents rating drops | +| Minor features | Every 2-4 weeks | Maintains freshness signal | +| Major features | Every 4-8 weeks | Opportunity for "What's New" | +| Metadata refresh | Every 4-6 weeks | Keyword optimization cycle | + +### Seasonal Optimization + +| Season | Optimization Focus | Example Categories | +|--------|--------------------|--------------------| +| Jan (New Year) | Resolutions, goals | Fitness, Productivity | +| Feb (Valentine's) | Dating, relationships | Dating, Photo | +| Mar-Apr (Tax) | Finance, organization | Finance, Productivity | +| May-Jun (Summer) | Travel, fitness | Travel, Health | +| Aug-Sep (Back to School) | Education, organization | Education, Productivity | +| Nov-Dec (Holidays) | Shopping, social | Shopping, Social | + +--- + +## A/B Testing Framework + +### Test Prioritization Matrix + +| Element | Impact | Ease | Priority | +|---------|--------|------|----------| +| App Icon | High | Medium | 1 | +| Screenshot 1 | High | Medium | 2 | +| Title | High | Easy | 3 | +| Short Description | Medium | Easy | 4 | +| Screenshots 2-5 | Medium | Medium | 5 | +| Video | Medium | Hard | 6 | + +### Sample Size Calculator + +**Formula:** +``` +Sample Size = (2 × (Z² × p × (1-p))) / E² + +Where: +Z = 1.96 (for 95% confidence) +p = baseline conversion rate +E = minimum detectable effect (usually 0.05) +``` + +**Quick Reference:** + +| Baseline CVR | Min. Impressions for 5% Lift | +|--------------|------------------------------| +| 1% | 31,000 per variant | +| 2% | 15,500 per variant | +| 5% | 6,200 per variant | +| 10% | 3,100 per variant | + +### Test Duration Guidelines + +| Daily Impressions | Minimum Test Duration | +|-------------------|----------------------| +| 1,000+ | 7 days | +| 500-1,000 | 14 days | +| 100-500 | 30 days | +| <100 | Not recommended | + +--- + +## Conversion Optimization + +### Conversion Funnel Metrics + +| Stage | Metric | Benchmark | +|-------|--------|-----------| +| Discovery | Impressions | Category dependent | +| Consideration | Page Views | 30-50% of impressions | +| Conversion | Installs | 3-8% of page views | +| Activation | First Open | 70-90% of installs | + +### Conversion Optimization Levers + +| Lever | Typical Lift | Effort | +|-------|--------------|--------| +| Icon redesign | 10-25% | High | +| Screenshot optimization | 15-35% | Medium | +| Title keyword optimization | 5-15% | Low | +| Description rewrite | 5-10% | Low | +| Video addition | 10-20% | High | +| Localization | 20-50% per market | Medium | + +--- + +## Common Mistakes to Avoid + +### Keyword Mistakes + +| Mistake | Problem | Solution | +|---------|---------|----------| +| Keyword stuffing | Spam detection, rejection | Natural usage, 2-3% density | +| Competitor names | Guideline violation | Focus on category terms | +| Duplicate keywords | Wasted character space | Remove duplicates from keyword field | +| Ignoring long-tail | Missing conversion | Include specific phrases | + +### Metadata Mistakes + +| Mistake | Problem | Solution | +|---------|---------|----------| +| Vague descriptions | Low conversion | Specific benefits and features | +| Feature-focused copy | Doesn't resonate | Benefit-focused messaging | +| Outdated information | Misleading users | Update with each release | +| Missing localization | Lost global revenue | Prioritize top 5 markets | + +### Visual Asset Mistakes + +| Mistake | Problem | Solution | +|---------|---------|----------| +| Text-heavy screenshots | Unreadable on phones | Minimal text, clear UI focus | +| Inconsistent style | Unprofessional appearance | Design system for all assets | +| Portrait-only screenshots | Missed tablet users | Include landscape variants | +| No social proof | Lower trust | Add ratings, awards, press | + +### Launch Mistakes + +| Mistake | Problem | Solution | +|---------|---------|----------| +| Launching on Friday | No support over weekend | Launch Tuesday-Wednesday | +| No analytics setup | Can't measure success | Firebase/Mixpanel before launch | +| Immediate rating prompt | Negative ratings | Wait for positive experience | +| Ignoring reviews | Declining ratings | Respond within 24-48 hours | diff --git a/marketing-skill/app-store-optimization/references/keyword-research-guide.md b/marketing-skill/app-store-optimization/references/keyword-research-guide.md new file mode 100644 index 0000000..1110aa6 --- /dev/null +++ b/marketing-skill/app-store-optimization/references/keyword-research-guide.md @@ -0,0 +1,419 @@ +# Keyword Research Guide + +Systematic approach to discovering, evaluating, and selecting keywords for app store optimization. + +--- + +## Table of Contents + +- [Keyword Research Methodology](#keyword-research-methodology) +- [Keyword Evaluation Framework](#keyword-evaluation-framework) +- [Competitor Keyword Analysis](#competitor-keyword-analysis) +- [Keyword Mapping Strategy](#keyword-mapping-strategy) +- [Keyword Tracking and Iteration](#keyword-tracking-and-iteration) + +--- + +## Keyword Research Methodology + +### Phase 1: Seed Keyword Generation + +Start by generating initial keyword ideas from multiple sources. + +**Source 1: Core App Functions** + +List every action or problem the app solves: + +``` +Example for a task management app: +- Create tasks +- Set reminders +- Track deadlines +- Organize projects +- Collaborate with team +- Plan daily schedule +``` + +**Source 2: User Language Mapping** + +Match developer terminology to user searches: + +| Developer Term | User Search Terms | +|----------------|-------------------| +| Task management | todo list, task app, tasks | +| Project organization | project planner, project tracker | +| Deadline tracking | due date reminder, deadline app | +| Time blocking | schedule planner, calendar app | +| GTD methodology | getting things done, productivity system | + +**Source 3: App Store Autocomplete** + +Type seed keywords into App Store/Play Store search and record suggestions: + +``` +"todo" → todo list, todo app, todo list app, todolist widget +"task" → task manager, task planner, task list, tasks to do +"remind" → reminder app, reminder, reminders widget, remind me +``` + +**Source 4: Competitor Analysis** + +Extract keywords from top 10 competitors in category (detailed in section below). + +### Phase 2: Keyword Expansion + +**Expansion Techniques:** + +| Technique | Example (seed: "todo") | +|-----------|------------------------| +| Add modifiers | free todo, best todo, simple todo | +| Add actions | make todo list, create todo, organize todo | +| Add platforms | todo app iphone, todo for mac, todo widget | +| Add audiences | todo for students, business todo, family todo | +| Add features | todo with reminders, todo calendar, todo sync | +| Add problems | forgot tasks todo, procrastination todo | + +**Keyword Matrix Template:** + +| Core Term | Modifier 1 | Modifier 2 | Full Keyword | +|-----------|------------|------------|--------------| +| todo | free | app | free todo app | +| todo | best | iphone | best todo iphone | +| task | manager | simple | simple task manager | +| reminder | daily | widget | daily reminder widget | +| planner | weekly | calendar | weekly planner calendar | + +### Phase 3: Keyword Filtering + +Remove irrelevant or low-quality keywords: + +**Exclusion Criteria:** + +| Criterion | Reason | Example | +|-----------|--------|---------| +| Competitor brand names | Policy violation | "todoist alternative" | +| Unrelated categories | Low conversion | "todo games" | +| Plural duplicates (iOS) | Wasted space | "tasks" when "task" exists | +| Single characters | No search value | "to do" vs "todo" | + +--- + +## Keyword Evaluation Framework + +### Keyword Scoring Model + +Evaluate each keyword on four dimensions: + +**1. Search Volume (0-100)** + +| Volume Level | Score | Monthly Searches | +|--------------|-------|------------------| +| Very High | 80-100 | 50,000+ | +| High | 60-79 | 10,000-49,999 | +| Medium | 40-59 | 1,000-9,999 | +| Low | 20-39 | 100-999 | +| Very Low | 0-19 | <100 | + +**2. Competition (0-100, inverted)** + +| Competition | Score | Top 10 App Ratings | +|-------------|-------|-------------------| +| Very Low | 80-100 | Average <4.0 stars | +| Low | 60-79 | Average 4.0-4.2 stars | +| Medium | 40-59 | Average 4.3-4.5 stars | +| High | 20-39 | Average 4.6-4.8 stars | +| Very High | 0-19 | Average 4.9+ stars | + +**3. Relevance (0-100)** + +| Relevance | Score | Criteria | +|-----------|-------|----------| +| Exact Match | 90-100 | Keyword describes core function | +| Strong Match | 70-89 | Keyword describes major feature | +| Moderate Match | 50-69 | Keyword describes secondary feature | +| Weak Match | 30-49 | Keyword tangentially related | +| No Match | 0-29 | Keyword unrelated to app | + +**4. Conversion Potential (0-100)** + +| Intent | Score | User Query Type | +|--------|-------|-----------------| +| Transactional | 80-100 | "best [app type]", "[app type] app" | +| Commercial | 60-79 | "free [app type]", "[app type] for [use]" | +| Informational | 40-59 | "how to [action]", "what is [concept]" | +| Navigational | 20-39 | "[brand name]", "[specific app]" | + +### Composite Score Calculation + +``` +Keyword Score = (Volume × 0.25) + (Competition × 0.25) + + (Relevance × 0.35) + (Conversion × 0.15) +``` + +**Score Interpretation:** + +| Score Range | Priority | Action | +|-------------|----------|--------| +| 80-100 | Primary | Target in title and keyword field | +| 60-79 | Secondary | Include in subtitle/description | +| 40-59 | Tertiary | Use in long description only | +| 0-39 | Deprioritize | Do not target | + +### Keyword Evaluation Worksheet + +``` +KEYWORD EVALUATION + +Keyword: "task manager app" +Date: [Date] + +SCORES: +├── Search Volume: 72/100 (High - ~25,000/month) +├── Competition: 45/100 (Medium - 4.4 avg rating in top 10) +├── Relevance: 95/100 (Exact match to core function) +└── Conversion: 85/100 (Transactional intent) + +COMPOSITE SCORE: 74.5/100 + +RECOMMENDATION: Secondary Priority +- Include in subtitle or short description +- Not competitive enough for title (dominated by Todoist, Any.do) +- Consider long-tail variant: "simple task manager app" +``` + +--- + +## Competitor Keyword Analysis + +### Competitor Identification + +**Step 1: Direct Competitors** +Apps solving the same problem for the same audience. + +**Step 2: Indirect Competitors** +Apps solving related problems or targeting overlapping audiences. + +**Step 3: Category Leaders** +Top 10-20 apps by downloads in primary category. + +### Competitor Keyword Extraction + +**From App Title:** +``` +Competitor: "Todoist: To-Do List & Tasks" +Keywords: todoist, to-do list, tasks, to do +``` + +**From Subtitle (iOS):** +``` +Competitor subtitle: "Task Manager & Planner" +Keywords: task manager, planner +``` + +**From Description (First 100 words):** +Identify frequently used terms: +``` +"Todoist is the world's favorite task manager and to-do list app. +Organize work and life, hit your goals, and find productivity..." + +Extracted: task manager, to-do list, organize, goals, productivity +``` + +### Competitor Keyword Matrix + +| Keyword | Comp 1 | Comp 2 | Comp 3 | Comp 4 | Comp 5 | Coverage | +|---------|--------|--------|--------|--------|--------|----------| +| task manager | ✓ | ✓ | ✓ | ✓ | ✓ | 100% | +| to-do list | ✓ | ✓ | ✓ | ✓ | | 80% | +| planner | ✓ | ✓ | | ✓ | ✓ | 80% | +| reminder | ✓ | ✓ | ✓ | | | 60% | +| productivity | ✓ | | ✓ | ✓ | | 60% | +| checklist | | ✓ | | ✓ | ✓ | 60% | +| project | ✓ | ✓ | | | | 40% | +| habit | | | ✓ | | ✓ | 40% | + +**Analysis:** +- 100% coverage = Highly competitive, essential keyword +- 60-80% coverage = Important category term +- 40% coverage = Potential differentiator +- <40% coverage = Unique opportunity or irrelevant + +### Keyword Gap Analysis + +Identify keywords competitors miss: + +``` +KEYWORD GAP ANALYSIS + +Underserved Keywords (Low competitor coverage, decent volume): +1. "daily planner widget" - 2/10 competitors, 5,000 searches +2. "task list for teams" - 3/10 competitors, 3,500 searches +3. "todo with calendar sync" - 1/10 competitors, 2,800 searches + +Opportunity Assessment: +- "daily planner widget" → Add widget feature, target keyword +- "task list for teams" → Already have feature, update metadata +- "todo with calendar sync" → Feature gap, add to roadmap +``` + +--- + +## Keyword Mapping Strategy + +### Keyword Placement Map + +Assign each keyword to specific metadata locations: + +``` +KEYWORD PLACEMENT MAP + +PRIMARY (Title + Keyword Field): +├── task manager (Score: 82) +├── todo list (Score: 78) +└── planner (Score: 75) + +SECONDARY (Subtitle + Short Description): +├── reminder app (Score: 68) +├── daily tasks (Score: 65) +└── organize (Score: 62) + +TERTIARY (Full Description): +├── checklist (Score: 55) +├── productivity (Score: 52) +├── schedule (Score: 48) +├── deadline (Score: 45) +└── project management (Score: 42) +``` + +### iOS Keyword Field Strategy + +**100 Character Optimization:** + +``` +STEP 1: List all target keywords +task,manager,todo,list,planner,reminder,organize,daily,checklist, +productivity,schedule,deadline,project,goals,habit,widget,sync, +team,collaborate,notes,calendar + +STEP 2: Remove duplicates from title +Title: "TaskFlow - Todo List Manager" +Remove: task, todo, list, manager + +STEP 3: Remove plurals +Keep: reminder (not reminders) +Keep: goal (not goals) + +STEP 4: Prioritize by score and fit +Final 100 chars: +planner,reminder,organize,daily,checklist,productivity,schedule, +deadline,project,goals,habit,widget,sync,team,collaborate + +Character count: 98/100 +``` + +### Android Description Keyword Integration + +**Natural keyword placement in 4,000 characters:** + +``` +PARAGRAPH 1 (Hook - 300 chars): +Keywords: task manager, todo list, organize +"TaskFlow is the task manager trusted by 2 million users. Create +your perfect todo list and organize everything that matters..." + +PARAGRAPH 2 (Features - 800 chars): +Keywords: reminder, checklist, deadline, project +"Set smart reminders that notify you at the right time. Build +checklists for any project. Never miss a deadline with..." + +PARAGRAPH 3 (Benefits - 600 chars): +Keywords: productivity, schedule, goals +"Boost your productivity with proven planning methods. Schedule +your day in minutes. Track goals and celebrate..." + +PARAGRAPH 4 (Differentiators - 500 chars): +Keywords: widget, sync, team, collaborate +"Beautiful widgets keep tasks visible. Sync across all devices +instantly. Invite your team to collaborate on..." + +Total keyword coverage: 14 keywords naturally integrated +``` + +--- + +## Keyword Tracking and Iteration + +### Ranking Tracking Cadence + +| Frequency | Action | +|-----------|--------| +| Daily | Track top 5-10 primary keywords | +| Weekly | Full keyword set review | +| Monthly | Competitor keyword comparison | +| Quarterly | Full keyword research refresh | + +### Keyword Performance Metrics + +| Metric | Target | Action if Below | +|--------|--------|-----------------| +| Top 10 ranking | 3+ keywords | Increase keyword weight | +| Top 50 ranking | 10+ keywords | Maintain current strategy | +| Ranking velocity | Improving trend | Continue optimization | +| Conversion rate | >5% | Review relevance alignment | + +### Iteration Process + +**Monthly Keyword Audit:** + +``` +1. EXPORT current rankings + - List all tracked keywords + - Record current position + - Note 30-day trend (up/down/stable) + +2. IDENTIFY opportunities + - Keywords improving but not top 10 + - Keywords declining from previous position + - New high-volume keywords in category + +3. PRIORITIZE changes + - Boost: Keywords at position 11-20 + - Maintain: Keywords at position 1-10 + - Replace: Keywords at position 50+ with no improvement + +4. IMPLEMENT updates + - Adjust keyword field (iOS) + - Update description (Android) + - Modify subtitle if needed + +5. DOCUMENT changes + - Record what changed and why + - Set reminder for 2-week check-in +``` + +### Keyword Testing Log Template + +``` +KEYWORD TEST LOG + +Test ID: KW-2025-001 +Date Started: [Date] +Keywords Changed: + - Added: "habit tracker" (replacing "goals app") + - Added: "daily routine" (replacing "schedule planner") + +Rationale: +- "habit tracker" has 3x volume of "goals app" +- "daily routine" trending up 40% in category + +Baseline Rankings: +- "habit tracker": Not ranked +- "daily routine": Position 87 + +30-Day Results: +- "habit tracker": Position 34 (+53) +- "daily routine": Position 28 (+59) + +Conclusion: Test successful - retain new keywords +Next Action: Target subtitle position for "habit tracker" +``` diff --git a/marketing-skill/app-store-optimization/references/platform-requirements.md b/marketing-skill/app-store-optimization/references/platform-requirements.md new file mode 100644 index 0000000..16a0804 --- /dev/null +++ b/marketing-skill/app-store-optimization/references/platform-requirements.md @@ -0,0 +1,324 @@ +# Platform Requirements Reference + +Technical specifications and metadata requirements for Apple App Store and Google Play Store. + +--- + +## Table of Contents + +- [Apple App Store Requirements](#apple-app-store-requirements) +- [Google Play Store Requirements](#google-play-store-requirements) +- [Visual Asset Specifications](#visual-asset-specifications) +- [Localization Requirements](#localization-requirements) +- [Compliance Guidelines](#compliance-guidelines) + +--- + +## Apple App Store Requirements + +### Metadata Character Limits + +| Field | Character Limit | Notes | +|-------|----------------|-------| +| App Name (Title) | 30 characters | Visible in search results | +| Subtitle | 30 characters | iOS 11+ only, appears below title | +| Promotional Text | 170 characters | Editable without app update | +| Description | 4,000 characters | Not indexed for search | +| Keywords Field | 100 characters | Comma-separated, no spaces after commas | +| What's New | 4,000 characters | Release notes for updates | +| Developer Name | 255 characters | Company or individual name | +| Support URL | Required | Must be valid HTTPS URL | +| Privacy Policy URL | Required | Must be valid HTTPS URL | + +### Keyword Field Optimization Rules + +1. **No duplicates** - Words in title are already indexed +2. **No plurals** - Apple indexes both singular and plural forms +3. **No spaces after commas** - Wastes character space +4. **No brand names** - Violates App Store guidelines +5. **No category names** - Already indexed via category selection + +**Example - Efficient keyword field:** +``` +task,todo,checklist,reminder,productivity,organize,schedule,planner,goals,habit +``` + +**Example - Inefficient keyword field (avoid):** +``` +task manager, todo list, productivity app, task tracking +``` + +### App Store Connect Metadata Fields + +| Category | Field | Required | +|----------|-------|----------| +| **App Information** | Name | Yes | +| | Subtitle | No | +| | Category | Yes | +| | Secondary Category | No | +| | Content Rights | Yes | +| | Age Rating | Yes | +| **Version Information** | Description | Yes | +| | Keywords | Yes | +| | Promotional Text | No | +| | What's New | Yes (for updates) | +| | Support URL | Yes | +| | Marketing URL | No | +| **Pricing** | Price Tier | Yes | +| | Availability | Yes | + +### Age Rating Content Descriptors + +| Content Type | None | Infrequent | Frequent | +|--------------|------|------------|----------| +| Cartoon Violence | 4+ | 9+ | 12+ | +| Realistic Violence | 9+ | 12+ | 17+ | +| Sexual Content | 12+ | 17+ | 17+ | +| Profanity | 4+ | 12+ | 17+ | +| Alcohol/Drug Reference | 12+ | 17+ | 17+ | +| Gambling | 12+ | 17+ | 17+ | +| Horror/Fear | 9+ | 12+ | 17+ | + +--- + +## Google Play Store Requirements + +### Metadata Character Limits + +| Field | Character Limit | Notes | +|-------|----------------|-------| +| App Title | 50 characters | Increased from 30 in 2021 | +| Short Description | 80 characters | Visible on store listing | +| Full Description | 4,000 characters | Indexed for search keywords | +| Developer Name | 64 characters | Organization or individual | +| Developer Email | Required | Public support contact | +| Privacy Policy URL | Required | Must be valid HTTPS URL | + +### Description Keyword Strategy + +Google Play has no separate keyword field. Keywords are extracted from: + +1. **App Title** - Highest weight, most important +2. **Short Description** - High weight, visible in search +3. **Full Description** - Medium weight, use naturally throughout +4. **Developer Name** - Low weight but indexed + +**Keyword Density Guidelines:** +- Primary keyword: 2-3% density in full description +- Secondary keywords: 1-2% each +- Avoid keyword stuffing (>5% triggers spam detection) + +### Google Play Console Metadata + +| Category | Field | Required | +|----------|-------|----------| +| **Store Listing** | Title | Yes | +| | Short Description | Yes | +| | Full Description | Yes | +| | App Icon | Yes | +| | Feature Graphic | Yes | +| | Screenshots | Yes (min 2) | +| | Video | No | +| **Store Settings** | App Category | Yes | +| | Tags | No | +| | Contact Email | Yes | +| | Privacy Policy | Yes | +| **Content Rating** | IARC Questionnaire | Yes | + +### Content Rating (IARC) + +| Rating | Age | Description | +|--------|-----|-------------| +| PEGI 3 / Everyone | 3+ | Suitable for all ages | +| PEGI 7 / Everyone 10+ | 7+ | Mild violence, comic mischief | +| PEGI 12 / Teen | 12+ | Moderate violence, mild language | +| PEGI 16 / Mature 17+ | 16+ | Intense violence, strong language | +| PEGI 18 / Adults Only | 18+ | Extreme content | + +--- + +## Visual Asset Specifications + +### App Icon Requirements + +**Apple App Store:** + +| Device | Size | Format | +|--------|------|--------| +| iPhone | 1024x1024 px | PNG, no alpha | +| iPad | 1024x1024 px | PNG, no alpha | +| App Store | 1024x1024 px | PNG, no alpha | +| Spotlight | 120x120 px | PNG | +| Settings | 87x87 px | PNG | + +**Google Play Store:** + +| Asset | Size | Format | +|-------|------|--------| +| App Icon | 512x512 px | PNG, 32-bit | +| Feature Graphic | 1024x500 px | PNG or JPG | +| Promo Graphic | 180x120 px | PNG or JPG | +| TV Banner | 1280x720 px | PNG or JPG | + +### Screenshot Requirements + +**Apple App Store:** + +| Device | Portrait | Landscape | +|--------|----------|-----------| +| iPhone 6.9" | 1320x2868 px | 2868x1320 px | +| iPhone 6.5" | 1290x2796 px | 2796x1290 px | +| iPhone 5.5" | 1242x2208 px | 2208x1242 px | +| iPad Pro 12.9" | 2048x2732 px | 2732x2048 px | +| iPad 10.5" | 1668x2224 px | 2224x1668 px | + +- Minimum: 2 screenshots per device +- Maximum: 10 screenshots per device +- Format: PNG or JPG, no alpha channel +- First 3 screenshots are critical (most users don't scroll) + +**Google Play Store:** + +| Device | Dimensions | Notes | +|--------|------------|-------| +| Phone | 320-3840 px | Min 2:1 aspect ratio | +| 7" Tablet | 320-3840 px | Min 2:1 aspect ratio | +| 10" Tablet | 320-3840 px | Min 2:1 aspect ratio | +| Chromebook | 320-3840 px | Optional | +| TV | 320-3840 px | For TV apps only | + +- Minimum: 2 screenshots +- Maximum: 8 screenshots +- Format: PNG or JPG +- No transparency or borders + +### App Preview Video + +**Apple App Store:** +- Duration: 15-30 seconds +- Resolution: Match device screenshot size +- Format: M4V, MP4, MOV +- Frame rate: 30 fps +- Audio: Optional but recommended + +**Google Play Store:** +- YouTube video link only +- No duration limit (recommend under 2 minutes) +- Landscape orientation preferred +- Must not contain age-restricted content + +--- + +## Localization Requirements + +### Priority Markets by Revenue + +| Rank | Market | Language Code | +|------|--------|---------------| +| 1 | United States | en-US | +| 2 | Japan | ja | +| 3 | United Kingdom | en-GB | +| 4 | Germany | de-DE | +| 5 | China | zh-Hans (iOS), zh-CN (Android) | +| 6 | South Korea | ko | +| 7 | France | fr-FR | +| 8 | Canada | en-CA, fr-CA | +| 9 | Australia | en-AU | +| 10 | Russia | ru | + +### Apple App Store Localization + +Supported localizations: 40+ languages + +| Language | Locale Code | +|----------|-------------| +| English (US) | en-US | +| English (UK) | en-GB | +| Spanish | es-ES | +| Spanish (Mexico) | es-MX | +| French | fr-FR | +| German | de-DE | +| Japanese | ja | +| Korean | ko | +| Simplified Chinese | zh-Hans | +| Traditional Chinese | zh-Hant | + +### Google Play Store Localization + +Supported localizations: 75+ languages + +Each locale requires: +- Title (50 chars) +- Short description (80 chars) +- Full description (4,000 chars) +- Screenshots (can reuse or localize) + +--- + +## Compliance Guidelines + +### Apple App Store Review Guidelines Summary + +| Category | Key Requirements | +|----------|------------------| +| **Safety** | No objectionable content, privacy protection | +| **Performance** | App must work as described, no crashes | +| **Business** | Accurate app description, clear pricing | +| **Design** | Follow Human Interface Guidelines | +| **Legal** | Comply with local laws, proper licensing | + +**Common Rejection Reasons:** +1. Bugs and crashes (50%+ of rejections) +2. Broken links or placeholder content +3. Misleading app descriptions +4. Privacy policy missing or incomplete +5. In-app purchase issues + +### Google Play Developer Policies + +| Policy Area | Requirements | +|-------------|--------------| +| **Restricted Content** | No hate speech, violence, gambling (without license) | +| **Privacy** | Data collection disclosure, privacy policy | +| **Monetization** | Clear pricing, compliant IAPs | +| **Ads** | No deceptive ads, proper disclosure | +| **Store Listing** | Accurate description, no keyword stuffing | + +**Common Suspension Reasons:** +1. Policy violation (content, ads, permissions) +2. Repetitive content (clone apps) +3. Impersonation (fake apps) +4. Intellectual property infringement +5. Malicious behavior + +### Privacy Requirements + +**Apple (App Tracking Transparency):** +- ATT prompt required for tracking +- Privacy nutrition labels mandatory +- Data collection disclosure required + +**Google (Data Safety):** +- Data safety section mandatory +- Data collection and sharing disclosure +- Security practices declaration + +--- + +## Quick Reference Card + +### Apple vs Google Comparison + +| Attribute | Apple App Store | Google Play Store | +|-----------|-----------------|-------------------| +| Title Length | 30 chars | 50 chars | +| Subtitle | 30 chars | N/A | +| Short Description | N/A | 80 chars | +| Full Description | 4,000 chars | 4,000 chars | +| Keywords Field | 100 chars | N/A (in description) | +| Promotional Text | 170 chars | N/A | +| Icon Size | 1024x1024 px | 512x512 px | +| Min Screenshots | 2 | 2 | +| Max Screenshots | 10 | 8 | +| Review Time | 24-48 hours | 1-7 days | +| Metadata Update | Requires review | 1-2 hours to index | diff --git a/marketing-skill/app-store-optimization/ab_test_planner.py b/marketing-skill/app-store-optimization/scripts/ab_test_planner.py similarity index 100% rename from marketing-skill/app-store-optimization/ab_test_planner.py rename to marketing-skill/app-store-optimization/scripts/ab_test_planner.py diff --git a/marketing-skill/app-store-optimization/aso_scorer.py b/marketing-skill/app-store-optimization/scripts/aso_scorer.py similarity index 100% rename from marketing-skill/app-store-optimization/aso_scorer.py rename to marketing-skill/app-store-optimization/scripts/aso_scorer.py diff --git a/marketing-skill/app-store-optimization/competitor_analyzer.py b/marketing-skill/app-store-optimization/scripts/competitor_analyzer.py similarity index 100% rename from marketing-skill/app-store-optimization/competitor_analyzer.py rename to marketing-skill/app-store-optimization/scripts/competitor_analyzer.py diff --git a/marketing-skill/app-store-optimization/keyword_analyzer.py b/marketing-skill/app-store-optimization/scripts/keyword_analyzer.py similarity index 100% rename from marketing-skill/app-store-optimization/keyword_analyzer.py rename to marketing-skill/app-store-optimization/scripts/keyword_analyzer.py diff --git a/marketing-skill/app-store-optimization/launch_checklist.py b/marketing-skill/app-store-optimization/scripts/launch_checklist.py similarity index 100% rename from marketing-skill/app-store-optimization/launch_checklist.py rename to marketing-skill/app-store-optimization/scripts/launch_checklist.py diff --git a/marketing-skill/app-store-optimization/localization_helper.py b/marketing-skill/app-store-optimization/scripts/localization_helper.py similarity index 100% rename from marketing-skill/app-store-optimization/localization_helper.py rename to marketing-skill/app-store-optimization/scripts/localization_helper.py diff --git a/marketing-skill/app-store-optimization/metadata_optimizer.py b/marketing-skill/app-store-optimization/scripts/metadata_optimizer.py similarity index 100% rename from marketing-skill/app-store-optimization/metadata_optimizer.py rename to marketing-skill/app-store-optimization/scripts/metadata_optimizer.py diff --git a/marketing-skill/app-store-optimization/review_analyzer.py b/marketing-skill/app-store-optimization/scripts/review_analyzer.py similarity index 100% rename from marketing-skill/app-store-optimization/review_analyzer.py rename to marketing-skill/app-store-optimization/scripts/review_analyzer.py