Shop Storefront Brief · Issue 8

Apple Search Ads is your paid routing layer. Assign the right Custom Product Page before you scale spend.

2026-08-28 · Fortune Insight, LLC · Operator intel for indie iOS teams. This page covers Apple Search Ads (ASA) → Custom Product Page (CPP) routing — ad variations, campaign and ad-group product-page choice, ad→landing creative congruence, geo and language constraints, and how paid routing differs from PPO and In-App Events — not a commission or IAP rate change. If you only track fee worksheets, Connect rules did not change because of this note.

What happened / why this follows Issues 5–7

Issue 5 showed how to build Custom Product Pages and localize screenshot sets in Connect. Issue 6 added the time-boxed In-App Event campaign layer. Issue 7 covered Product Page Optimization (PPO) as Connect's organic A/B test on the default page only.

This issue is the paid-traffic chapter: once a CPP exists and is App Review–approved, Apple Search Ads lets you create ad variations that pull creative from that CPP and send taps to the same page. The ad screenshot the buyer sees in search should match the CPP screenshot set they land on — not your generic default listing.

Operator framing: Issues 5–7 gave you storefront surfaces. Issue 8 wires which surface ASA clicks hit. If you shipped one CPP from Issue 5 and run ASA without an ad variation, you are still paying to send most taps to the default page.

Paid routing map — default vs CPP vs PPO vs In-App Event

Four Connect/ASA tools. ASA only controls the first tap — what happens after depends on which product page you assigned.

Surface What ASA can route to it Who sees it Paid-traffic rule
Default product page Yes — default ad when no ad variation is active Organic search, browse, and ASA taps with no CPP ad variation Keep for brand ad groups, Search Match discovery, and low-spend tests. PPO may be running experiments here — ASA traffic does not enter PPO splits.
Custom Product Page (CPP) Yes — via ASA ad variations linked to an approved CPP ASA taps on ad groups where you created a custom ad from that CPP; shareable ?ppid= URLs for non-ASA campaigns Primary paid landing. One CPP per keyword intent or audience theme — exact-match and high-spend ad groups first (Issue 5).
Product Page Optimization (PPO) No — Connect assigns organic traffic only Random sample of organic App Store visitors on the default page Do not expect PPO treatments on ASA-assigned CPP traffic. Run PPO after paid routing is stable (Issue 7).
In-App Event page No direct ASA assignment — event card sits on the product page the buyer already opened Product page visitors, search event cards, editorial surfaces during the event window Time-boxed layer on top of default or CPP. If an event is live, ASA taps still land on your assigned CPP or default — the event card appears on that page (Issue 6).

Rule of thumb: ASA ad variation = paid router. CPP = landing page. PPO = organic experiment on default only. In-App Event = timed campaign card layered on whichever page the visitor opened.

How ASA attaches to a CPP — campaigns, ad groups, ad variations

Apple Search Ads integrates with Connect-approved Custom Product Pages through ad variations (replacing the deprecated Creative Sets workflow for iOS 15.2+). When you create an ad variation, ASA uses the CPP's app preview videos and screenshots as the search ad creative, and the tap opens that same CPP — not the default listing.

Operator catches: up to 70 ad variations per ad group in ASA, but most indie teams need one custom ad per ad group — not seventy. CPP analytics in Connect are separate from default-page metrics; compare ASA tap-through and CPP conversion in both dashboards.

When to route ASA to CPP vs default vs PPO

Scenario Route ASA to Why
Exact-match ad group on a high-intent keyword ("budget tracker", "habit journal") CPP with screenshot overlays matching that intent Ad creative and landing screenshots echo the search term — highest conversion lift per Apple's published case studies
Brand ad group (your app name) Default page or a brand CPP with core value prop Brand searchers often convert on default; a CPP is optional protection against competitor ads sending traffic to a generic page
Search Match or broad discovery Default page Keyword intent is unknown — a mismatched CPP hurts tap-through. Add CPP routing after you promote terms to exact-match ad groups
Active PPO test on default screenshots CPP on paid ad groups; leave PPO on organic default PPO never affects CPP-assigned ASA traffic — paid and organic experiments stay independent (Issue 7)
Live In-App Event promoting a limited-time offer CPP aligned with event copy, or default if event card carries the message Event card appears on whichever page ASA opens — do not assign a CPP whose screenshots contradict the event card (Issue 6)
zh-Hans or other localized storefront ASA campaign CPP with localized screenshot matrix for that locale ASA serves assets from the CPP locale matching the buyer's storefront — English overlays on a China campaign kill congruence (Issue 5)

Creative and asset constraints — ad→page match

ASA ad variations inherit CPP assets. You cannot upload separate ad-only screenshots — the search ad is the CPP preview. That makes creative congruence a Connect asset job, not an ASA upload job.

Geo and language routing checklist

Step ASA / Connect action
1 · Match campaign storefront to CPP locale China ASA campaign → CPP with complete zh-Hans screenshot matrix. US campaign → en-US CPP or default with en-US assets. Do not route China spend to an English-only CPP.
2 · Verify CPP state in Connect Connect → your app → Custom Product Pages → confirm status is approved and not disabled. ASA will not list deleted or pending CPPs.
3 · Create ad variation in ASA Ad Group → Ads → Create Ad → name internally (e.g. asa-budget-cpp1) → select CPP → preview on iPhone and iPad → Save.
4 · Test the ?ppid= URL on device Open the CPP link in the target storefront locale before scaling bids. Confirm subtitle, promotional text, and screenshots match the ad preview.
5 · Leave Search Match on default Discovery traffic with unknown intent stays on default until you promote winning keywords to exact-match ad groups with dedicated CPPs.
6 · Monitor ASA and Connect separately ASA: impressions, taps, CPT, conversion. Connect → Analytics → filter by CPP name for product-page impressions and downloads attributed to that page.
7 · Pause before conflicting surface changes Do not swap CPP screenshots mid-flight while an In-App Event or PPO test promotes conflicting copy on the same intent — pause the ad variation, finish the other surface, then reactivate.

Operator catches: duplicating an ad group or campaign to a new country does not automatically carry compatible ad variations — localized CPP assets may be required for the destination storefront. ASA API exposes CPP creatives as type CUSTOM_PRODUCT_PAGE with a productPageId if you automate later; most indie teams should wire manually first.

What this is not

Launch pricing snapshot (GetAppNiche prepaid median vs new apps)

GetAppNiche published a prepaid-app pricing median estimate of about $2.99 on 2026-07-16. The table below is observed listing prices this week — snapshots, not revenue or download promises.

App Observed price
CloudGear $1.99/mo · $14.99/yr · $39.99 (lifetime tier)
Frankensketch IAP ~$2.99 (estimate)
Optic Illusion Free
Stonegate $7.99 unlock

The median is a reference line, not a guarantee that you should price at $2.99. ASA and CPP routing decisions are independent of IAP tier — do not reprice because of this table.

Calendar recap (already covered — not new this issue)

These items appeared in prior issues or Apple announcements. Listed here for cross-check only — not new scoops.

What an indie can do this week

Sources: Apple Search Ads · Create ad variations · Apple Search Ads · Ad variations troubleshooting · Apple · Custom Product Pages · Apple · Find Creatives (ASA API) · Apple · Make the most of custom product pages (Tech Talk)

Subscribe to Storefront Brief

$12/month. One English note a week on App Store and indie storefront changes. Not trading signals. Not legal advice. No ranking guarantees.

$12 / mo

Subscribe Storefront Brief

AppLocale listing rewrite

Optional: one-time $79 rewrite of one live App Store listing into English and Simplified Chinese. Delivered within 24 hours to your Stripe receipt email. No ranking promises.

$79 one-time

Buy AppLocale on Stripe