iOS product page optimization
Expert: with sources and numbers. Plain: the same, without them, for beginners.
Apple's native A/B test: three treatments, 90 days, icon and screenshots and previews only.
Apple’s built-in test. Narrow in what it can test, generous in duration, and the only way to measure a creative change on real App Store traffic.
The rules
A Up to three treatments per test, testing app icon, screenshots and app previews. Each treatment can be localized in any language the app supports. (Overview of product page optimization, verified 2026-09-18)
A A test runs for 90 days, or until you stop it manually within that time. (Create a test, verified 2026-09-18)
A Traffic allocation: you choose a traffic proportion, and it is divided among the treatments. Apple’s own example, a test with three treatments and a 30% traffic proportion shows each treatment to 10% of total traffic; the remainder see the original. Same source.
A Localizations: by default all supported localizations are included. You can select a subset, and a user shown an excluded localization is not included in the test. Same source.
A Cannot be tested: custom product pages, and product pages on the App Store for Apple Watch or iMessage. (Overview)
A The app must be in the Ready for Distribution state, and treatments are shown to users on iOS 15 / iPadOS 15 or later. Same source.
A Apple notes that releasing a new app version during a test may affect results if the version contains assets or metadata being tested. Same source.
What this means in practice
Three treatments is the ceiling, not the target. A Apple states plainly that the more treatments you add, the longer the test may take to reach a conclusive result (Create a test). With finite traffic, each additional treatment divides the sample. Two treatments against the original is usually the honest choice; three is for when you genuinely have the volume.
The traffic proportion is a real decision. A higher proportion reaches significance faster and exposes more users to variants that may be worse. A lower proportion is safer and slower. For an app with modest traffic, too low a proportion means 90 days produces nothing.
90 days is long enough to be a problem. A test spanning a quarter will cross seasonality, competitor launches and your own releases (50-05). Long duration is not free precision.
Localization selection is a design tool. Restricting a test to specific localizations lets you test a market-specific hypothesis rather than averaging across markets that behave differently. The exclusion rule makes this clean: excluded users are not in the sample at all.
You cannot test text. Icon, screenshots and previews only. Not the name, subtitle, keyword field or description. Those change only with a release anyway (10-09). If you want to compare text, PPO is not the tool (50-06).
Custom product pages cannot be tested. This is a real limitation, because CPPs are where paid traffic lands (60-01). You can test the default page and infer, or test externally before the click.
What goes wrong
Three treatments on low traffic. Apple warns about it directly. Splits the sample until nothing concludes.
Shipping a release mid-test. Apple names this as a risk to results. Check the release calendar before starting.
Assuming the test starts when you click start. A test is a submission, and it shares one non-version slot per platform with custom product pages and in-app events (98-04).
Testing icon and screenshots together. Two variables, one result, no learning (50-03).
Letting it run to 90 days by default. Duration is a cost: a quarter of traffic, and every confound in it.
Expecting to test a CPP. Not supported.
In short
Every fact on this page in one line, with its evidence tier, source and verification date, 3 A. Generated from the claim register, so it cannot drift from the page above.
The centre's own built-in test. Narrow in what it can actually try, generous in how long it lets you run it, and the only way to measure a creative change against real, live visitors.
The rules
You can try a small handful of alternative windows at once, testing your icon, your window photos, and your video. Each version can be dressed in any sign-language your shop already supports.
A test runs for a long stretch, a season's worth of time, or until you manually stop it early.
You choose what share of visitors sees an alternative at all, and that share gets divided evenly among however many versions you're testing. If you're testing several versions with only a modest share of visitors included, each individual version only ever gets shown to a small slice of everyone who passes by; the rest see your normal window unchanged.
By default every sign-language you support is included. You can narrow it down to a chosen few, and a visitor who would have seen an excluded sign-language simply isn't part of the test at all.
Some things can't be tested this way: a specially-dressed window built for one kind of visitor, and your page on certain smaller, secondary surfaces.
Your shop has to already be live, and only visitors on a reasonably current version of the centre's own software will actually see an alternative version.
Shipping a full rebuild partway through a test can quietly break it, if that rebuild touches anything you're currently testing.
What this actually means in practice
A small handful of alternatives is the ceiling, not the target. The centre says plainly that adding more alternatives makes a test take longer to reach any real conclusion. With a fixed amount of visitors to work with, every extra alternative divides up your sample further. Comparing just one alternative against your original is usually the honest choice; trying several at once is only for when you genuinely have the visitor volume to support it.
How big a share of visitors you include is a real decision, not a formality. A bigger share reaches a real answer faster, and shows more visitors something that might turn out worse. A smaller share is safer and slower. For a shop with modest traffic, too small a share means the whole test period produces nothing conclusive at all.
Choosing which sign-languages to include is itself a design tool. Narrowing a test to specific sign-languages lets you test an idea about one particular place, rather than averaging across several places that behave completely differently. The exclusion rule makes this genuinely clean: an excluded visitor simply isn't counted at all.
You cannot test your writing. Only the icon, window photos and video. Not your sign, your pitch line, your hidden pocket, or your leaflet. Those only ever change with a full rebuild anyway. If you want to compare wording, this isn't the right tool.
A specially-dressed window can't be tested this way at all. This is a genuine limitation, because that's exactly where a lot of paid traffic actually lands. You can test your default page and try to infer something from it, or test the idea somewhere else entirely before someone even clicks through.
What tends to go wrong
Trying several alternatives at once on low traffic. The centre warns about this directly. Splits your sample until nothing reaches a real conclusion.
Shipping a full rebuild in the middle of a running test. Named directly as a risk to the result. Check your release calendar before you start.
Assuming a test starts the moment you click start. A test is itself a submission, and it shares one single non-rebuild slot with a specially-dressed window and a time-limited poster.
Testing the icon and the window photos together. Two things changed, one result, and nothing learned.
Letting a test run its full default length without thinking about it. Duration is a real cost, a whole season of visitors, and every confusing thing that happens during that season along with it.
Expecting to test a specially-dressed window. Simply not supported.