rshankras/custom-product-pages
Generates Custom Product Page metadata templates with screenshot strategies, keyword targeting, and audience-specific messaging for up to 35 page variants. Use when creating targeted App Store pages for different audiences, ad campaigns, or traffic sources.
npx skills add https://github.com/rshankras/claude-code-apple-skills --skill custom-product-pages
Generate metadata templates for Custom Product Pages (CPPs) — targeted App Store product page variants optimized for specific audiences, ad campaigns, or traffic sources.
Use this skill when the user:
CPPs only make sense when you have enough traffic to meaningfully split across pages.
| Monthly Impressions | Recommendation |
|--------------------|----|
| Under 2,000 | Don't create CPPs. Focus on optimizing your single default page. You won't have enough traffic per page to know if it's working. |
| 2,000-10,000 | Create 1 CPP max for your most distinct audience segment or highest-spend ad campaign. Monitor for 4+ weeks. |
| 10,000-50,000 | Create 2-3 CPPs. Enough traffic to compare performance across pages. |
| 50,000+ | Full CPP strategy. Multiple pages per segment, ad campaign-specific pages, seasonal variants. |
Exception: If you're running paid Apple Search Ads campaigns, CPPs are valuable even at lower organic volume because ad traffic is directed specifically to your CPP — you're not splitting organic impressions.
You can assign keywords to a custom product page, per language, so App Store searches on that keyword land on the matching CPP instead of the default page:
| Feature | Custom Product Pages | Product Page Optimization |
|---------|---------------------|--------------------------|
| Purpose | Targeted pages for specific audiences | A/B test default page |
| Count | Up to 35 pages | Up to 3 treatments |
| Elements | Screenshots, previews, promo text | Icon, screenshots, previews |
| URL | Unique URL per page | Same URL, random distribution |
| Use with ads | Yes (assign to ad groups) | No |
Ask user via AskUserQuestion:
For each audience segment:
For each custom page:
Design the screenshot order for each page to match the audience's priorities:
At minimum, customize the first two screenshots — they're the most visible (per Apple's Tech Talk). And align each page's creative with the exact ad creative sending the traffic: the page should feel like a continuation of the ad, not a reset.
# Custom Product Pages Strategy: [App Name]
## Audience Segments
| Segment | Description | Traffic Source | Page URL |
|---------|-------------|---------------|----------|
| [Name] | [Who they are] | [Where they come from] | [CPP URL] |
---
## Page 1: [Audience Name]
### Audience Profile
- **Who**: [Description]
- **Pain point**: [What frustrates them]
- **Value prop**: [What you solve for them]
- **Traffic source**: [Where this page is linked]
### Promotional Text (170 chars)
> [Customized promotional text targeting this audience]
### Screenshot Strategy
| Position | Feature | Caption | Why This Audience Cares |
|----------|---------|---------|------------------------|
| 1 | [Feature] | [Caption text] | [Relevance to audience] |
| 2 | [Feature] | [Caption text] | [Relevance to audience] |
| 3 | [Feature] | [Caption text] | [Relevance to audience] |
| 4 | [Feature] | [Caption text] | [Relevance to audience] |
| 5 | [Feature] | [Caption text] | [Relevance to audience] |
### App Preview (if applicable)
- **Opening shot**: [What to show first]
- **Key demo**: [Core feature for this audience]
- **Closing CTA**: [Call to action]
### Keyword Alignment
Keywords this audience is likely searching for:
- [keyword 1]
- [keyword 2]
- [keyword 3]
---
## Page 2: [Audience Name]
[Same format as Page 1]
---
## Implementation Checklist
- [ ] Create custom pages in App Store Connect
- [ ] Upload audience-specific screenshots for each page
- [ ] Write promotional text for each page
- [ ] Get unique URLs for each page
- [ ] Configure Apple Search Ads to use specific pages (if applicable)
- [ ] Set up UTM tracking for non-ASA traffic sources
- [ ] Monitor conversion rates per page
- [ ] A/B test within pages after initial launch
Example: Productivity app for students, freelancers, and teams
| Page | Audience | Screenshot Focus | Promo Text Angle |
|------|----------|-----------------|-----------------|
| Default | General | Overview of all features | Broad appeal |
| CPP 1 | Students | Note-taking, study tools, price | "The study companion that..." |
| CPP 2 | Freelancers | Time tracking, invoicing, clients | "Manage your freelance..." |
| CPP 3 | Teams | Collaboration, sharing, admin | "Team productivity that..." |
Example: Fitness app running ads on multiple channels
| Page | Channel | Visual Style | Messaging |
|------|---------|-------------|-----------|
| Default | Organic | Clean, professional | Feature-focused |
| CPP 1 | Instagram | Lifestyle, aspirational | Transformation stories |
| CPP 2 | Google Search | Results-oriented | Data and progress tracking |
| CPP 3 | Podcast | Social proof | "As heard on [podcast]" |
Example: Photo editing app with multiple use cases
| Page | Feature | Target Search Terms |
|------|---------|-------------------|
| Default | All features | "photo editor" |
| CPP 1 | Portrait mode | "portrait editor", "selfie" |
| CPP 2 | Filters | "photo filters", "instagram" |
| CPP 3 | Collage maker | "photo collage", "grid" |
App Analytics reports each CPP separately: page views, downloads, conversion rate, average proceeds per paying user, retention, and sessions — segmentable by territory and source.
❌ NEVER compare custom pages head-to-head — each page sees a different audience, so raw CVR gaps are audience differences, not creative quality. For apples-to-apples creative testing, run PPO on a single page instead.
| Developer | Tactic | Result |
|-----------|--------|--------|
| FunPlus | Audience-matched pages per campaign | +33% conversion, −14% cost per install |
| CBS Sports | Seasonal March Madness pages | +20% conversion |
| Baidu / Otto | Pairing ASA ad variations with matching CPPs | +10–12% install rate |
generators/product-page-optimization — A/B test the default pageapp-store/screenshot-planner — Screenshot design and sequencingapp-store/keyword-optimizer — Keyword strategy per audienceapp-store/marketing-strategy — Overall promotional strategyTake rshankras/custom-product-pages from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.