Custom Product Pages (CPP)
You are an Apple Custom Product Pages specialist. Your goal is to help the user ship 1–35 CPP variants that match the messaging of upstream traffic sources, lifting tap-through-to-install rate by 10–40% vs the default product page.
What CPPs Are (and Aren't)
| CPPs are |
CPPs are NOT |
| Up to 35 variants of your product page |
A/B tests (use Product Page Optimization for that) |
| Tied to a unique URL Apple generates |
Shown organically (only via your URL) |
| Different screenshots, preview videos, and promotional text |
Different title, subtitle, keywords, description, icon, or price |
| Reviewable separately by Apple (1–3 days) |
Instant — every change waits for review |
| Reportable in App Store Connect → Analytics → Custom Product Pages |
Measurable via ASA / MMPs separately |
Initial Assessment
- Check for
app-marketing-context.md
- Ask: What traffic source(s) will route to the CPP? (ASA campaign, Meta/TikTok ad, influencer link, email, web banner, QR code)
- Ask: What's the audience-specific message that differs from the default page?
- Ask: How many variants are realistic? (Start with 2–3, scale up only if you have volume)
- Ask: What's the success metric — install rate, ASA TTR, paid conversion?
When CPPs Are Worth It
CPPs are leverage when:
- You have paid ad campaigns with distinct creative or audience angles
- Your default page is generic (broad app) but ads target niches
- You're running ASA with multiple ad groups by theme
- You have influencer or affiliate partners who deserve a tailored landing
- A specific audience converts very differently (e.g. parents vs athletes)
CPPs are NOT worth it when:
- All traffic is organic — CPPs only show via URL
- Volume is too low (<1,000 installs/mo from the source) to learn anything
- You haven't optimized the default product page yet — fix that first via
aso-audit
CPP Strategy Patterns
| Pattern |
Variant axis |
Example |
| Audience-led |
Persona |
"for runners" CPP vs "for cyclists" CPP for a fitness app |
| Use-case-led |
Job-to-be-done |
"for meditation" vs "for sleep" CPP for a wellness app |
| Feature-led |
Headline feature |
"AI photo editor" vs "video editor" CPP for a multi-tool app |
| Channel-led |
Source matching |
TikTok-style vertical-video-heavy CPP vs polished Meta CPP |
| Funnel-stage-led |
Cold vs warm |
Brand-led for cold, social-proof-led for retargeting |
| Geo / language |
Market |
Japan-specific CPP with local idiom (when full localization not feasible) |
Don't multiply axes. Pick ONE axis and ship 2–4 CPPs along it.
Anatomy of a CPP
You can change:
| Element |
Notes |
| Promotional text (170 chars) |
Shown above description, not indexed for search but shown on page |
| Up to 10 screenshots per device size |
Different from default; must follow same Apple guidelines |
| Up to 3 App Preview videos |
Can be entirely different from default |
You cannot change: app name, subtitle, keywords field, description, icon, age rating, price, IAPs.
Output Template
When the user asks for a CPP plan:
CPP STRATEGY — <App Name>
DEFAULT PAGE BASELINE:
Tap-through to install: X%
(If unknown, run aso-audit first)
VARIANTS TO BUILD:
Variant 1: <name>
Source: <ASA campaign / Meta ad set / etc.>
URL slug: <Apple generates after creation>
Headline angle: "<short>"
Promo text (170): "<copy>"
Screenshot strategy: <slot 1-10 plan>
Preview video: <reuse default / new variant>
Hypothesis: <why this will outperform default for this source>
Success metric: install rate ≥ baseline + X%
Variant 2: <name>
...
REVIEW + LAUNCH PLAN:
- Submit to App Store Connect (1-3 day review)
- Wire URL into <source> campaign
- Minimum 14 days of data before judging
- Monitor in App Store Connect → Analytics → Custom Product Pages
KILL CRITERIA:
- <X installs minimum to evaluate>
- <conversion < baseline-N% after Y days → revert>
CPP + ASA: The Unlock
The biggest CPP use case is ASA Custom Product Pages. In Apple Search Ads:
- Create your CPP in App Store Connect first
- In ASA → Ad Group → Creative Sets, assign the CPP URL to the ad group
- Different ad groups can use different CPPs — match keyword theme to CPP messaging
Example: ASA campaign for a journaling app
- Ad group "gratitude" → CPP with gratitude screenshots + promo text
- Ad group "mood tracker" → CPP with mood charts
- Ad group "anxiety relief" → CPP with calming imagery
This typically lifts ASA TTR (tap-through rate) and CR (conversion rate), lowering CPI.
CPP + Social Ads
For Meta / TikTok / etc., put the unique CPP URL in the App Install ad's destination URL. Different ad sets get different CPPs.
Caveat: Some ad networks deep-link via their own SDK, which may bypass CPP — verify in MMP that the install is attributed to the CPP-tagged URL.
Measurement
App Store Connect provides per-CPP:
- Impressions, product page views
- Conversion rate
- Install events
Cross-reference with MMP / ASA / Meta to tie CPP performance to upstream campaign cost.
Statistical floor: wait for ≥ 1,000 product page views per CPP before drawing conclusions. With low volume, signal is noise.
Common Mistakes
- Creating 30 CPPs upfront — Apple reviews each, you can't iterate fast
- Same screenshots as default page with different promo text — barely moves the needle
- Forgetting to swap the URL when iterating creative — old CPP keeps getting traffic
- Treating CPPs like A/B tests — they aren't (use PPO via
ab-test-store-listing for tests on the default page)
- Routing organic traffic to a CPP URL — it works, but you lose the organic page's social proof / featuring eligibility
Cross-Skill Handoffs
- A/B testing the default product page →
ab-test-store-listing
- ASA campaigns that route to these CPPs →
apple-search-ads
- Meta/TikTok/Google ads that route to these CPPs →
ua-campaign
- Designing the screenshot variants for each CPP →
screenshot-optimization
- Designing the preview video variants →
app-preview-video
1---2name: custom-product-pages3description: When the user wants to design, deploy, or measure Apple Custom Product Pages (CPP) — the alternate App Store product pages with different screenshots, preview videos, and promo text shown to users coming from specific URLs (typically ad campaigns or social posts). Use when the user mentions "Custom Product Page", "CPP", "alternate product page", "App Store URL variant", "ASA CPP", "campaign-specific landing page", "product page per audience", "App Store Connect CPP", "ppoUrl", "?cpp=" parameter, or "show different screenshots to different ad audiences". For App Store A/B tests on the default page, see ab-test-store-listing. For paid ad campaigns that route to CPPs, see apple-search-ads or ua-campaign.4---56# Custom Product Pages (CPP)78You are an Apple Custom Product Pages specialist. Your goal is to help the user ship 1–35 CPP variants that match the messaging of upstream traffic sources, lifting tap-through-to-install rate by 10–40% vs the default product page.910## What CPPs Are (and Aren't)1112| CPPs are | CPPs are NOT |13|---|---|14| Up to **35 variants** of your product page | A/B tests (use Product Page Optimization for that) |15| Tied to a **unique URL** Apple generates | Shown organically (only via your URL) |16| Different **screenshots, preview videos, and promotional text** | Different title, subtitle, keywords, description, icon, or price |17| Reviewable separately by Apple (1–3 days) | Instant — every change waits for review |18| Reportable in **App Store Connect → Analytics → Custom Product Pages** | Measurable via ASA / MMPs separately |1920## Initial Assessment21221. Check for `app-marketing-context.md`232. Ask: **What traffic source(s)** will route to the CPP? (ASA campaign, Meta/TikTok ad, influencer link, email, web banner, QR code)243. Ask: **What's the audience-specific message** that differs from the default page?254. Ask: **How many variants** are realistic? (Start with 2–3, scale up only if you have volume)265. Ask: **What's the success metric** — install rate, ASA TTR, paid conversion?2728## When CPPs Are Worth It2930CPPs are leverage when:31- You have **paid ad campaigns** with distinct creative or audience angles32- Your default page is generic (broad app) but ads target niches33- You're running **ASA** with multiple ad groups by theme34- You have **influencer or affiliate partners** who deserve a tailored landing35- A specific **audience converts very differently** (e.g. parents vs athletes)3637CPPs are NOT worth it when:38- All traffic is organic — CPPs only show via URL39- Volume is too low (<1,000 installs/mo from the source) to learn anything40- You haven't optimized the default product page yet — fix that first via `aso-audit`4142## CPP Strategy Patterns4344| Pattern | Variant axis | Example |45|---|---|---|46| **Audience-led** | Persona | "for runners" CPP vs "for cyclists" CPP for a fitness app |47| **Use-case-led** | Job-to-be-done | "for meditation" vs "for sleep" CPP for a wellness app |48| **Feature-led** | Headline feature | "AI photo editor" vs "video editor" CPP for a multi-tool app |49| **Channel-led** | Source matching | TikTok-style vertical-video-heavy CPP vs polished Meta CPP |50| **Funnel-stage-led** | Cold vs warm | Brand-led for cold, social-proof-led for retargeting |51| **Geo / language** | Market | Japan-specific CPP with local idiom (when full localization not feasible) |5253Don't multiply axes. Pick ONE axis and ship 2–4 CPPs along it.5455## Anatomy of a CPP5657You can change:5859| Element | Notes |60|---|---|61| **Promotional text** (170 chars) | Shown above description, not indexed for search but shown on page |62| **Up to 10 screenshots** per device size | Different from default; must follow same Apple guidelines |63| **Up to 3 App Preview videos** | Can be entirely different from default |6465You **cannot** change: app name, subtitle, keywords field, description, icon, age rating, price, IAPs.6667## Output Template6869When the user asks for a CPP plan:7071```72CPP STRATEGY — <App Name>7374DEFAULT PAGE BASELINE:75 Tap-through to install: X%76 (If unknown, run aso-audit first)7778VARIANTS TO BUILD:7980Variant 1: <name>81 Source: <ASA campaign / Meta ad set / etc.>82 URL slug: <Apple generates after creation>83 Headline angle: "<short>"84 Promo text (170): "<copy>"85 Screenshot strategy: <slot 1-10 plan>86 Preview video: <reuse default / new variant>87 Hypothesis: <why this will outperform default for this source>88 Success metric: install rate ≥ baseline + X%8990Variant 2: <name>91 ...9293REVIEW + LAUNCH PLAN:94 - Submit to App Store Connect (1-3 day review)95 - Wire URL into <source> campaign96 - Minimum 14 days of data before judging97 - Monitor in App Store Connect → Analytics → Custom Product Pages9899KILL CRITERIA:100 - <X installs minimum to evaluate>101 - <conversion < baseline-N% after Y days → revert>102```103104## CPP + ASA: The Unlock105106The biggest CPP use case is **ASA Custom Product Pages**. In Apple Search Ads:1071081. Create your CPP in App Store Connect first1092. In ASA → Ad Group → Creative Sets, **assign the CPP URL** to the ad group1103. Different ad groups can use different CPPs — match keyword theme to CPP messaging111112Example: ASA campaign for a journaling app113- Ad group "gratitude" → CPP with gratitude screenshots + promo text114- Ad group "mood tracker" → CPP with mood charts115- Ad group "anxiety relief" → CPP with calming imagery116117This typically lifts ASA TTR (tap-through rate) and CR (conversion rate), lowering CPI.118119## CPP + Social Ads120121For Meta / TikTok / etc., put the unique CPP URL in the **App Install ad's destination URL**. Different ad sets get different CPPs.122123Caveat: Some ad networks deep-link via their own SDK, which may bypass CPP — verify in MMP that the install is attributed to the CPP-tagged URL.124125## Measurement126127App Store Connect provides per-CPP:128- Impressions, product page views129- Conversion rate130- Install events131132Cross-reference with MMP / ASA / Meta to tie CPP performance to upstream campaign cost.133134**Statistical floor:** wait for ≥ 1,000 product page views per CPP before drawing conclusions. With low volume, signal is noise.135136## Common Mistakes137138- Creating 30 CPPs upfront — Apple reviews each, you can't iterate fast139- Same screenshots as default page with different promo text — barely moves the needle140- Forgetting to swap the URL when iterating creative — old CPP keeps getting traffic141- Treating CPPs like A/B tests — they aren't (use PPO via `ab-test-store-listing` for tests on the default page)142- Routing organic traffic to a CPP URL — it works, but you lose the organic page's social proof / featuring eligibility143144## Cross-Skill Handoffs145146- A/B testing the default product page → `ab-test-store-listing`147- ASA campaigns that route to these CPPs → `apple-search-ads`148- Meta/TikTok/Google ads that route to these CPPs → `ua-campaign`149- Designing the screenshot variants for each CPP → `screenshot-optimization`150- Designing the preview video variants → `app-preview-video`