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.
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.
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.
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.
VALID state in ASA before you can select it. Deleted or unapproved CPPs do not appear in the ad-creation picker.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.
| 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) |
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.
| 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.
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.
These items appeared in prior issues or Apple announcements. Listed here for cross-check only — not new scoops.
$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 BriefIssue 7 · Issue 6 · Issue 5 · Issue 4 · Issue 3 · Issue 2 · Issue 1 · Issue 0 sample
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