What custom product pages are
A custom product page (CPP) is an alternate version of your App Store product page. When a user taps an ad or a URL that routes to a CPP, they see the alternate screenshots, app preview video, and promotional text instead of your default. The app name, subtitle, description, keywords, and icon remain the same (they are app-level, not page-level).
Each CPP has a unique URL of the form:
https://apps.apple.com/us/app/<app-slug>/id<APP-ID>?ppid=<PAGE-ID>
The ppid query parameter tells Apple which custom product page to
serve. Without it, the default page shows. Any channel that can send a user to an
Apple URL — Apple Search Ads, Meta, TikTok, Google, email, SMS, a website — can use
a CPP URL.
Capacity and constraints
Apple's published limits for custom product pages:
- Up to 35 custom product pages per app. Shared across all locales.
- Per page, per device class: up to 10 screenshots and up to 3 app preview videos.
- Per page: up to 170 characters of promotional text.
- Localization: each CPP can be localized to any of your supported locales. The per-locale overrides stack — if you have 5 CPPs and 10 locales, that's 50 distinct page variants the user could see depending on URL and storefront.
What you cannot customize per CPP:
- App name
- Subtitle
- Description
- Keyword field (the field is still a single per-locale value at the app level)
- App icon
- Category, pricing, age rating
Everything user-visible on a CPP that isn't screenshots, app preview, or promotional text comes from the default page. This matters for strategy: CPPs are for visual differentiation of the same app, not for repositioning the app for a different audience via wording.
Step-by-step setup
- Sign in to App Store Connect and open your app.
- Select the current live version from the sidebar. CPPs live under the version's scope.
- Click Custom Product Pages in the left-hand menu. If the section is missing, your role lacks App Manager access or the app is in a state that doesn't support CPPs yet.
- Click Create Custom Product Page.
- Give the page a reference name. This is internal — users never see it. Use a descriptive naming scheme:
Meta — women 25-34 — fitness,Google Ads — productivity keyword group,ASA — discovery campaign — hiking. - Upload screenshots for each device class. If you don't upload for a device class, the default page's screenshots for that class are used.
- Optionally add app preview videos (up to 3 per device class).
- Write promotional text (up to 170 characters).
- Repeat per locale if you're localizing.
- Click Submit for Review. The CPP goes through App Review — typically under 24 hours. During review, the page exists but is not live. After approval, the unique URL becomes active.
- Copy the URL from the CPP detail page and use it in your ad campaign.
AppConsul's CPP manager (Pro tier) lets you edit all 35 pages in one workspace, duplicate an existing page as a starting point for a new variant, and upload assets across all locales without bouncing between tabs.
Attaching to Apple Search Ads
Apple Search Ads (ASA) has first-class support for CPPs. In the ASA campaign creation flow, when you reach the creative step, you'll see a selector for Product Pages. You can select your default page or any custom product page.
The typical ASA pattern with CPPs:
- One CPP per keyword group. If you bid on photo editor and photo collage keywords, the creative that converts for the collage keyword group probably differs from the editing keyword group.
- One CPP per audience tier. Apple Search Ads can target by audience age, gender, location. A fitness app can serve different screenshots to the 25-34 women segment versus the 18-24 men segment.
- One CPP per discovery campaign type. Search Match (where Apple picks keywords) versus broad-match versus exact-match campaigns benefit from different creative framing.
Attaching to Meta, TikTok, Google, and other platforms
CPP URLs are standard App Store URLs. Any ad platform that lets you specify an App Store URL as the destination accepts a CPP URL.
- Meta Ads (Facebook, Instagram): in the campaign's destination URL, paste the CPP URL. The ad objective must be App Installs or App Engagement.
- TikTok Ads: same pattern. The App Store URL field accepts the CPP URL.
- Google Ads: Universal App Campaigns (UAC) have an iOS app destination; the tracking URL can be the CPP URL.
- Email, SMS, QR codes, website CTAs: use the CPP URL directly in the link.
For iOS 14.5+ users, Apple's App Tracking Transparency (ATT) framework governs what attribution data the ad platform receives. CPP-level attribution within App Store Connect is not affected by ATT — Apple always knows which CPP a user landed on — but the ad platform's view of the install may be aggregated via SKAdNetwork (SKAN) rather than deterministic.
Measurement in App Analytics
App Store Connect's App Analytics surfaces a Custom Product Pages section. For each CPP it reports:
- Impressions — how many users saw the CPP URL land them on your product page.
- Page Views — how many users reached the CPP.
- Conversion Rate — downloads divided by page views for this CPP.
- App Units — first-time downloads attributed to this CPP.
- Breakdowns by Source — Apple Search Ads, Web Referrer, App Referrer.
Compare the CPP's conversion rate to the default page's conversion rate for the same period. If the CPP converts 20% better, the campaign creative is pulling its weight. If it converts worse, the CPP is either irrelevant to the audience or the creative is weaker than the default — both are signals to iterate.
For a deeper walk-through of App Analytics metrics, see our reading App Store Connect analytics guide.
A/B testing patterns that work
CPPs are not a controlled A/B test — the traffic to a CPP URL is self-selected (users who clicked that specific ad). To draw valid conclusions:
One variable per CPP
If you launch a CPP with new screenshots and new app preview and new promotional text, you cannot tell which change drove the performance delta. Change one variable at a time. Rotate which variable you're testing over sprints.
Matched audiences
Compare CPPs that target similar audiences. A CPP attached to a fitness-keyword campaign is not comparable to a CPP attached to a general-discovery campaign — the traffic is different quality.
Same time window
Run CPPs in parallel, not sequentially. Seasonality, competitor launches, and App Store algorithm changes move baseline conversion rates by 10-30% over weeks. A July CPP compared to a March CPP tells you nothing.
Sufficient sample size
Aim for at least several hundred installs per CPP before drawing conclusions. Low sample sizes produce noisy results that can mislead campaign decisions.
CPPs versus Product Page Optimization
These are often confused but do different things.
| Custom Product Pages | Product Page Optimization | |
|---|---|---|
| Purpose | Campaign-specific creative | Find a better default product page |
| Traffic | Self-selected (ad clicks or URL referrers) | Random split of App Store traffic |
| How many? | Up to 35 pages per app | Up to 3 treatments against 1 control |
| Statistical test | No, you compare manually | Yes, Apple reports significance |
| What's customizable | Screenshots, app preview, promotional text | Icon, screenshots, app preview |
| Reach | Users who click the CPP URL | Organic App Store traffic |
Use both. Run PPO against your default page to find the best baseline creative. Use CPPs to fork campaign-specific variants off that baseline.
When CPPs win big
Categories and patterns where the effort-to-return is strongest:
- Vertical-specific creative. A productivity app used by freelancers, accountants, and students benefits from three different CPPs — each one surfaces the use case matching the campaign audience.
- Seasonal campaigns. A tax app in tax season, a fitness app in January, a shopping app in November — CPPs with timely creative outperform year-round defaults during their window.
- Language-specific creative in multi-language markets. In Canada, India, Switzerland, where users speak multiple languages, a CPP targeted by language can outperform the default fallback.
- Feature-launch campaigns. When you ship a major new feature, a CPP that leads with screenshots of the new feature attached to launch campaigns converts better than updating the default page (which also serves users not interested in that feature).
- Influencer / creator campaigns. A CPP specifically for "this creator recommended us" traffic can align with the framing the creator used in their content.
How often to refresh CPPs
CPPs don't auto-expire, but the app around them evolves. Refresh cadence:
- Whenever you ship a new major UI release. Screenshots that don't match the current app are a 2.3.3 rejection waiting to happen on the next CPP review.
- When campaign performance degrades. CPP fatigue is real — creative that worked for 3 months can flatline. Swap screenshots or app preview when conversion rate drops more than 15%.
- At least every 6 months. Even if nothing is obviously wrong, refresh to prevent staleness.
Frequently asked questions
What is a custom product page?
An alternate version of your App Store product page — same app, different screenshots, app preview, and promotional text — with its own URL you attach to a specific ad campaign.
How many can I have?
Up to 35 per app. Each can be localized to every supported locale.
What can I customize?
Screenshots (10 per device class), app preview videos (3 per device class), promotional text (170 characters). Not the name, subtitle, description, keywords, or icon.
Do CPPs need App Review?
Yes, each one. Typically under 24 hours.
How do I measure a CPP?
App Store Connect → App Analytics → Custom Product Pages. Impressions, page views, conversion rate, app units, and source breakdowns.
CPP vs PPO?
CPPs serve campaign-specific URLs to self-selected traffic. PPO splits organic traffic across up to 3 treatments and reports the statistical winner. Use CPPs for campaigns; use PPO to improve the default.
Can I use CPPs with Meta, TikTok, Google?
Yes. The CPP URL is a standard Apple URL that any ad platform can use as a destination.
Manage 35 custom product pages without the tab sprawl.
AppConsul Pro surfaces every CPP in one workspace, lets you duplicate existing pages as a starting point, and uploads assets across locales in batch. No more click-through fatigue in the ASC web UI.
Try AppConsul Pro →