skills/generators-product-page-optimization/SKILL.md
Generates A/B test plans and optimization checklists for your App Store product page — icon, screenshots, and app previews. Use when running Product Page Optimization tests or improving conversion rates.
npx skillsauth add AutisticAF/claude-code-apple-dev-plugin generators-product-page-optimizationInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
First step: Tell the user: "generators-product-page-optimization skill loaded."
Create structured A/B test plans for App Store Product Page Optimization (PPO), including test hypotheses, variant designs, success metrics, and iteration strategy.
Use this skill when the user:
PPO requires sufficient impression volume to produce meaningful results. If the app doesn't meet these thresholds, skip A/B testing and make direct qualitative improvements instead.
| Monthly Impressions | Can You PPO? | Recommendation | |--------------------|--------------|----| | Under 1,000 | No | Don't bother — tests will never reach significance. Apply screenshot best practices directly. | | 1,000-5,000 | Barely | Test ONE element at a time with only 1 variant (A/B, not A/B/C). Expect 4-8 week test cycles. | | 5,000-20,000 | Yes | Standard testing. Run 2 variants per test, 2-4 week cycles. | | 20,000+ | Aggressively | Test 3 variants, rapid iteration. Can test icon + screenshots sequentially. |
If below threshold: Focus on qualitative improvements (follow the Quick Win Checklist in the output) rather than running inconclusive A/B tests.
Ask user via AskUserQuestion:
What do you want to test?
What's your current conversion rate concern?
Monthly impression volume?
Review the existing product page:
Produce a structured test plan with:
For each variant, specify:
# Product Page Optimization Plan: [App Name]
## Current State Assessment
| Element | Current | Strength | Weakness |
|---------|---------|----------|----------|
| Icon | [Description] | [What works] | [What doesn't] |
| Screenshots | [Description] | [What works] | [What doesn't] |
| Preview | [Present/Absent] | [What works] | [What doesn't] |
| Promo Text | [Description] | [What works] | [What doesn't] |
**Estimated current conversion rate**: [X%] (category average: [Y%])
---
## Test 1: [Element Being Tested]
### Hypothesis
"If we [change], then [metric] will improve because [rationale]."
### Variants
| Variant | Description | Key Difference from Control |
|---------|-------------|---------------------------|
| Control (A) | [Current design] | — |
| Treatment B | [Description] | [What's different] |
| Treatment C | [Description] | [What's different] |
### Test Configuration
- **Element**: [Icon / Screenshots / Preview]
- **Localization**: [All / Specific locale]
- **Duration**: [14-28 days]
- **Traffic requirement**: [~X impressions per variant]
- **Success metric**: [Conversion rate improvement > X%]
### Design Specs per Variant
[Detailed specs for each variant]
---
## Test 2: [Next Element]
[Same format — run after Test 1 concludes]
---
## Testing Roadmap
| Order | Test | Element | Duration | Expected Lift |
|-------|------|---------|----------|--------------|
| 1 | [Name] | [Element] | [Weeks] | [%] |
| 2 | [Name] | [Element] | [Weeks] | [%] |
| 3 | [Name] | [Element] | [Weeks] | [%] |
## Quick Win Checklist
While waiting for PPO results, implement these proven improvements:
- [ ] First screenshot shows core value in under 2 seconds
- [ ] Screenshots use benefit-focused captions (not feature names)
- [ ] App preview starts with the "wow moment" in first 3 seconds
- [ ] Icon is distinct and recognizable at small sizes
- [ ] Promotional text includes a current hook or seasonal relevance
| Test | Control | Variant | Expected Impact | |------|---------|---------|----------------| | Color | Current color | Contrasting color | Higher tap-through from search | | Style | 3D/detailed | Flat/minimal | Modernized perception | | Element | Full logo | Key symbol only | Better small-size recognition | | Background | Solid | Gradient | Shelf standout |
| Test | Control | Variant | Expected Impact | |------|---------|---------|----------------| | First screenshot | Feature-focused | Benefit-focused | Higher engagement | | Layout | Device frames | Full-bleed | More immersive | | Text | Feature names | User outcomes | Stronger conversion | | Order | Standard flow | Problem→Solution | Better storytelling | | Social proof | None | Reviews/awards | Trust building |
| Test | Control | Variant | Expected Impact | |------|---------|---------|----------------| | Hook | Slow intro | Immediate action | Higher watch-through | | Length | 30 seconds | 15 seconds | Less drop-off | | Style | Screen recording | Lifestyle + UI | Emotional connection |
| Season | Focus | Screenshot Refresh | |--------|-------|-------------------| | Jan | New Year energy, fresh starts | Resolution-themed captions | | Mar-Apr | Spring cleaning, organization | Productivity-focused | | Jun | WWDC, new OS features | "Updated for iOS [X]" | | Aug-Sep | Back to school | Student/education focus | | Nov-Dec | Holiday, gift-giving | Gift-worthy messaging |
generators-custom-product-pages — Targeted pages per audienceapp-store-screenshot-planner — Screenshot design guidanceapp-store-keyword-optimizer — Text optimizationapp-store-marketing-strategy — Overall optimization strategydevelopment
SwiftUI Layout protocol for custom container layouts including flow layouts, radial layouts, and animated transitions. Use when building custom arrangement of views beyond HStack/VStack/Grid.
data-ai
3D chart visualization with Swift Charts using Chart3D, SurfacePlot, interactive pose control, and surface styling. Use when creating 3D data visualizations.
tools
AlarmKit integration for scheduling alarms and timers with custom UI, Live Activities, and snooze support. Use when implementing alarm or timer features in iOS 18+ apps.
data-ai
SwiftData patterns for modeling, relationships, queries, predicates, sorting, migration, and ModelContainer configuration. Use when working with SwiftData persistence.