custom-product-pages
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.
What this skill does
# 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 1. Check for `app-marketing-context.md` 2. Ask: **What traffic source(s)** will route to the CPP? (ASA campaign, Meta/TikTok ad, influencer link, email, web banner, QR code) 3. Ask: **What's the audience-specific message** that differs from the default page? 4. Ask: **How many variants** are realistic? (Start with 2–3, scale up only if you have volume) 5. 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: 1. Create your CPP in App Store Connect first 2. In ASA → Ad Group → Creative Sets, **assign the CPP URL** to the ad group 3. 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`
Related in Ads & Marketing
ads
IncludedMulti-platform paid advertising audit and optimization skill. Analyzes Google, Meta, YouTube, LinkedIn, TikTok, Microsoft, and Apple Ads. 250+ checks with scoring, parallel agents, industry templates, and AI creative generation.
banana
IncludedAI image generation Creative Director powered by Google Gemini Nano Banana models. Use this skill for ANY request involving image creation, editing, visual asset production, or creative direction. Triggers on: generate an image, create a photo, edit this picture, design a logo, make a banner, visual for my anything, and all /banana commands. Handles text-to-image, image editing, multi-turn creative sessions, batch workflows, and brand presets.
rpg-migration-analyzer
IncludedAnalyzes legacy RPG (Report Program Generator) programs from AS/400 and IBM i systems for migration to modern Java applications. Extracts business logic from RPG III/IV/ILE source code, identifies data structures (D-specs), file operations (F-specs), program dependencies (CALLB/CALLP), and converts RPG constructs to Java equivalents. Generates migration reports, complexity estimates, and Java implementation strategies with POJO classes, JPA entities, and service methods. Use when modernizing AS/400 or IBM i legacy systems, analyzing RPG source files (.rpg, .rpgle, .RPGLE), converting RPG to Java, mapping data specifications to Java classes, planning legacy system migration, or when user mentions RPG analysis, Report Program Generator, RPG III/IV/ILE, AS/400 modernization, IBM i migration, packed decimal conversion, or mainframe application rewrite.
brand-library-architect
IncludedBuild a complete brand library for a product — visual asset render pipeline, brand documentation set (BRAND, COPY, MANIFESTO, BIOS, FAQ, GLOSSARY, TONE, PRICING), open-source convention files (README, CONTRIBUTING, SECURITY, CODE_OF_CONDUCT), and a self-contained press kit. This skill should be used when the user asks to "build a brand library / brand kit / press kit / brand assets" for a product, "set up a brand library workflow," "create a positioning manifesto plus visual identity," or any combination of brand documentation + visual asset pipeline. Apply phase-by-phase or run end-to-end. Templates are product-agnostic and use {{TOKEN}} placeholders the skill prompts the user to fill.
writing-tech-post
IncludedAuthors engineering blog posts end-to-end: launch deep-dives, incident postmortems, architecture migrations, performance case studies, tutorials, AI/agent system writeups, security disclosures, and research-to-product translations. Picks the correct archetype, plans the abstraction ladder, enforces an evidence cadence (diagrams, benchmarks, profiles, traces, code, ablations), tunes voice against publisher house styles (Datadog, Vercel, GitHub, AWS, Meta, Cloudflare, Jane Street), and runs a pre-publish gate for narrative momentum and disclosure ethics. Use when drafting a new engineering post, restructuring a draft that feels flat, deciding which evidence form belongs where, validating that depth and product context are balanced, or preparing a postmortem, migration, or performance narrative for external publication. Do not use for API reference documentation, README authoring, marketing copy, release notes, generic SEO content, ghost-written executive thought leadership, or non-engineering long-form essays.
blog-google
IncludedGoogle API integration for blog performance: PageSpeed Insights, CrUX Core Web Vitals with 25-week history, Search Console performance, URL Inspection, Indexing API, GA4 organic traffic, NLP entity analysis for E-E-A-T, YouTube video search for embedding, and Google Ads Keyword Planner. Progressive feature availability based on credential tier (API key, OAuth/service account, GA4, Ads). Shares config with claude-seo at ~/.config/claude-seo/google-api.json. Use when user says "google data", "page speed", "core web vitals", "search console", "indexation", "GA4", "keyword research", "nlp entities", "blog performance", "youtube search", "google api setup".