GuideMay 5, 20265 min read

Custom Product Pages: a different audience for every link

CPP gives you up to 70 alternate App Store pages, each with its own URL. Use them for ad creatives, segments, and seasonal pushes.

Custom Product Pages (CPP) are alternate App Store listings, each with its own URL. Apple lets you publish up to 70 of them per app. They are always on. They do not split traffic with your default page — visitors only see a CPP if they arrive through that page's specific URL.

How they look in the URL

A CPP URL is your normal App Store URL with an extra ppid query parameter — the product page ID. Send a campaign to that URL and the visitor lands on the alternate page. Send any other traffic to the bare URL and the default page renders.

What you can change

  • Promotional text.
  • Screenshots, per device class.
  • App preview videos.

You cannot change the app name, subtitle, icon, description, keywords, or category. CPP is for the visual sell, not the metadata sell.

CPP vs PPO

PPO is an A/B test against your default page; it runs for up to 90 days and you cannot pick who sees what. CPP is a permanent alternate page with a unique URL; you decide which traffic source lands there.

Use both. Run PPO to find the best default. Use CPPs to ship audience-specific variants you know are wrong for the default but right for a specific channel.

Practical use cases

  • Match the ad creative. If your TikTok ad is about one feature, link it to a CPP whose screenshots lead with that feature.
  • Seasonal pushes. Holiday or back-to-school campaigns on a separate page so the default never has to change.
  • Audience segments. A "for parents" page and a "for students" page, with the same app underneath.

The localization angle

CPP screenshots are uploaded per locale, like the default. So a single CPP can serve a German feature-specific variant alongside your German default. That multiplies fast: 70 CPPs × 30 locales is a lot of screenshots. lokal exists for this reason.

Y

Written by Yassine

Indie dev. Built lokal because translating App Store screenshots by hand was eating my launches. Reach out at hi@lokall.app.

Try lokal on your screenshots.

Translate into every language in seconds.