Two features, two different jobs
Apple's Custom Product Pages (CPP) and Product Page Optimization (PPO) both live in App Store Connect, and both let you create alternate versions of your app's listing. But they serve completely different purposes:
| Custom Product Pages | Product Page Optimization | |
|---|---|---|
| Purpose | Show a different listing to different audiences | A/B test your default listing to improve conversion |
| Traffic source | Only users who arrive via a specific URL you share | Organic App Store traffic, split automatically by Apple |
| What you can change | Screenshots, App Previews, promotional text | Screenshots, App Previews, App Icon |
| App review required | Yes — each CPP goes through review | Yes — each treatment goes through review |
| Max variants | Up to 35 custom pages | Up to 3 treatments + control |
| Result | A unique URL for each audience | Statistical winner applied to your default page |
| Best used for | Paid ads, influencer links, seasonal campaigns | Improving organic conversion rate |
Most indie developers should start with Product Page Optimization. It runs on your existing organic traffic — no ad spend required — and the winner automatically improves your default listing for everyone. Custom Product Pages are more powerful once you're running paid user acquisition and want different ad creative to land on a matched listing.
Product Page Optimization: how it works
PPO is Apple's built-in A/B testing system. You create up to three "treatments" — alternate versions of your listing — and Apple splits incoming organic traffic between the control (your current listing) and the treatments. After enough impressions accumulate, App Store Connect shows you which version had the highest install conversion rate. You can then apply the winner as your new default.
Setting up a PPO test
- In App Store Connect, go to your app → Product Page Optimization
- Create a new test. Give it a name for your own reference.
- Set traffic allocation: how much of your total impressions to split across treatments. 90/10 (90% control, 10% treatment) is a conservative start; 70/30 or even 50/50 gives you statistical significance faster if your volume is low.
- For each treatment, upload new screenshots, App Previews, or a different app icon. The promotional text and description can't be changed via PPO — only the visual assets.
- Submit for review. Apple reviews PPO treatments the same as a regular app update — typically 1–3 days.
Once approved and running, App Store Connect shows impressions, installs, and conversion rate for each variant in real time. The test continues until you stop it manually or Apple determines a statistically significant winner.
What to change in your first test
First screenshot is the highest-leverage variable to test. It's visible in App Store search results before a user taps through, which means it affects both your tap-through rate (how many people tap from search to your product page) and your product page conversion rate (how many people install after landing on the page). No other element touches both.
Effective first-test hypotheses:
- Caption language: feature label ("Habit Tracker") vs outcome statement ("Build a streak that actually sticks"). This is the most commonly tested — and the change that most often produces a clear winner.
- Background color: current color vs a different hue from your brand palette. Dark backgrounds vs light backgrounds often produce surprisingly large differences.
- Frame vs frameless: does the device frame help or hurt for your specific app? Most apps benefit from a frame, but games and visual apps sometimes convert better frameless.
- First screenshot subject: which screen of your app to feature first — the home screen, the key feature, or the result/outcome screen.
Test one variable at a time. Changing the caption copy and the background color in the same treatment makes it impossible to know which change drove the result. If you want to test both, run them as two separate treatments.
Custom Product Pages: how they work
A Custom Product Page is an alternate version of your App Store listing that lives at a unique URL. Users who arrive via that URL see the custom page; everyone else sees your default listing. It doesn't affect organic search results at all — CPPs only appear when someone follows the specific URL you share.
The most common use cases:
- Paid acquisition matching: an Apple Search Ads campaign for the keyword "habit tracker" sends users to a CPP that leads with habit-tracking features; a campaign for "daily journaling" sends users to a different CPP focused on journaling. Landing page matches ad creative = higher conversion.
- Influencer campaigns: give each creator a unique CPP URL so you can measure which drove installs independently.
- Seasonal promotions: a summer-themed CPP for a fitness app during January new-year-resolution season, with different caption copy and a different featured screenshot.
Creating a Custom Product Page
- App Store Connect → your app → Custom Product Pages → Create
- Name it for your reference (users don't see this)
- Upload your alternate screenshots — you can provide different screenshots per locale, same as the default page
- Optionally change the promotional text (the first paragraph of your description)
- Submit for review
Once approved, App Store Connect gives you a unique App Store URL for the page. Share that URL in your ads, with influencers, or in any campaign where you want a specific audience to see a tailored listing.
What you can and can't change
Both features only allow changes to visual assets and, for CPPs, promotional text. Here's what's in and out of scope:
| Element | PPO | Custom Product Pages |
|---|---|---|
| Screenshots | Yes | Yes |
| App Previews (video) | Yes | Yes |
| App Icon | Yes | No |
| Promotional text | No | Yes |
| App name | No | No |
| Subtitle | No | No |
| Description | No | No |
| Keywords | No | No |
| Price | No | No |
Reading PPO results correctly
App Store Connect reports conversion rate for each variant and shows a confidence indicator. A few things to watch for:
Don't stop early. If a treatment jumps ahead in the first week, it's tempting to stop and apply the winner. But early results are often statistical noise — weekend users behave differently from weekday users, and one bad day of data can make a losing variant look like a winner. Run for at least 7 days, ideally 14, before reading the results.
Segment by traffic source. A treatment might convert better on App Store Search traffic but worse on Browse traffic. App Store Connect lets you filter results by source type — check that the winner holds across your primary source, not just in aggregate.
Apply and iterate. Once you have a clear winner, apply it as your new default and start the next test. PPO is most valuable as a continuous improvement loop — each test builds on the last. The apps that move from 15% to 35% category search conversion rates didn't get there in one test; they ran 6–8 consecutive experiments over 6–12 months.
Creating the variant assets
The bottleneck in running PPO tests isn't setting up the experiment — it's creating the alternate screenshot set. A meaningful test requires screenshots that are genuinely different, not just slightly tweaked. Making a complete alternate set from scratch can take hours if you're working in Figma with a template.
ezscreenshots makes this faster. Drop your Simulator screenshot into the editor, change the caption copy or background color, and export the full set at the correct dimensions for every device class — the iPhone 6.9" screenshots Apple requires as the minimum submission. For a caption language test, you're changing one text field and re-exporting; the whole operation takes under 10 minutes.
For the screenshot dimensions Apple requires per device class, see the complete App Store screenshot sizes guide. For the visual design decisions that tend to move conversion — caption placement, font weight, background contrast — see the App Store screenshot template.
The right sequence: PPO before CPP
If you're new to both features, start with PPO. It improves your default listing for all organic users — the vast majority of your traffic — and requires no ad budget. Once you've run 2–3 PPO tests and settled on a strong default listing, Custom Product Pages become worth the setup cost for specific acquisition campaigns.
The sequence most indie developers follow:
- Fix obvious listing issues (caption in top third, outcome language, non-white background) — see the screenshot template guide
- Run a first PPO test on caption language (feature vs outcome) for 2 weeks
- Apply winner, run a second test on background color or frame vs frameless
- Once the default page is converting at or above category benchmarks (20–35% for category search), add Custom Product Pages for any paid acquisition campaigns
Create a PPO variant screenshot in under 10 minutes
Change the caption copy, swap the background color, re-export the full device set. ezscreenshots handles the dimensions and framing — you handle the hypothesis. Free, no account needed.
Try ezscreenshots →Summary
- Two separate features: Product Page Optimization (PPO) runs A/B tests on organic traffic; Custom Product Pages (CPP) show alternate listings to users arriving via specific URLs
- Start with PPO — it improves your default listing for all organic users without requiring ad spend
- Best first test: first screenshot caption — feature label vs outcome statement; this single change moves conversion more often than any other variable
- Test one variable at a time — changing caption copy and background color in the same treatment makes the result unreadable
- Run for at least 7–14 days before reading results; early data is often noise
- CPPs can change: screenshots, App Previews, promotional text — but not app name, subtitle, keywords, or price
- PPO can also change the app icon; CPPs cannot
- Apply and iterate: PPO is a continuous loop, not a one-time test — each applied winner becomes the baseline for the next experiment
- Creating variants: ezscreenshots exports alternate screenshot sets at the correct dimensions fast — the bottleneck is usually the assets, not the App Store Connect setup