Highlight
Apple adds a new Header area to App Store product pages, supports custom images and videos in search results, and introduces Asset Library to decouple marketing asset review from app releases. Developers can upload, review, and replace assets independently.
Core Ideas
Visual upgrades for product pages and search results
Previously, when users discovered your app on the App Store, the first things they saw were screenshots and preview videos. Those assets can show functionality, but they struggle to communicate brand tone or marketing messages.
(00:56) Apple now adds Product Page Header to product pages. This is the first visual element users see after entering the product page. It can use an image or video to present brand visuals, campaigns, or core selling points. The Header works together with the app icon and screenshots, helping users understand the app’s value faster.
(01:48) Search results also change. Previously they showed app screenshots by default. Now you can upload a more striking image or a video so the app stands out in the search results list.
Asset review decoupled from app releases
(05:16) The biggest change is Asset Library. Previously, replacing a product page banner had to be submitted for review together with a new app version, so operations were constrained by engineering release cycles. Asset Library now centralizes screenshots, preview videos, In-App Event media, and new marketing materials called Creative Assets. You can upload Header and search result assets directly and submit them for review separately, without updating the app version.
After approval, these assets can be switched between the product page and search results without another review. For example, you might use a hiking asset as the Header in summer, then switch to a winter version inside Asset Library and publish it directly when winter arrives.
(07:16) This flow also supports automated upload and submission through the App Store Connect API, while the Apple Ads Platform API can automate ad delivery.
Working with Custom Product Pages
(02:30) New assets work even better with Custom Product Pages, or CPPs. Suppose your yoga app promotes a “Summer Yoga Challenge” on the official website, and users click through to the corresponding CPP. You can configure dedicated Header assets for that CPP, keeping the visual language consistent between your website and the App Store. After users download the app, a Deep Link takes them directly to the yoga campaign page, creating a complete path from ad to download to in-app experience.
(03:17) You can also configure different search result assets for different search keywords. Users searching for “yoga” see one visual set, while users searching for “meditation” see another, making search results better match user intent.
Details
Two ways to submit for review
Option 1: Submit through the version page
(04:30) Upload assets on the App Store Connect version page, use the new Preview tool to inspect how the product page looks on iPhone and iPad, in different orientations, and in different languages, then submit them together with the app version after confirming everything looks correct. When the version is approved, the assets go live as well.
Option 2: Submit independently through Asset Library
(05:19) Upload Creative Assets directly in Asset Library and submit them for review independently. This flow does not require updating the app version and does not require preselecting where the asset will be used. After approval, the asset enters Asset Library and can be assigned to the product page Header or search results at any time.
Product Page Optimization supports new assets
(03:38) Product Page Optimization (PPO) in App Store Connect now supports A/B testing with Header and search result assets. You can test different visual directions and see which one persuades your target users more effectively.
Code example: handling a Custom Product Page Deep Link
When users enter the app from an external marketing link, you need to identify the CPP parameter and route them to the corresponding page.
func scene(_ scene: UIScene, continue userActivity: NSUserActivity) {
guard userActivity.activityType == NSUserActivityTypeBrowsingWeb,
let url = userActivity.webpageURL,
let components = URLComponents(url: url, resolvingAgainstBaseURL: true) else {
return
}
// Link format: https://yourapp.com/promo/summer-yoga?cpp=summer_challenge
if let cppId = components.queryItems?.first(where: { $0.name == "cpp" })?.value {
Router.shared.navigateToPromoPage(campaignId: cppId)
}
}
Key points:
NSUserActivityTypeBrowsingWebidentifies Universal Link launch scenarios.- Extract the
cppidentifier from the URL query parameters, corresponding to the campaign ID of the Custom Product Page. Routernavigates to the corresponding campaign page inside the app based on the campaign ID.- The corresponding promotional link must be configured for the CPP in App Store Connect for attribution to work correctly.
Code example: showing a StoreKit product page in-app with tracking parameters
When recommending another app inside your app, such as another app in the same portfolio, you can include marketing tracking parameters.
import StoreKit
func presentStoreProductPage(for appID: String, campaign: String) {
let storeVC = SKStoreProductViewController()
storeVC.delegate = self
let parameters: [String: Any] = [
SKStoreProductParameterITunesItemIdentifier: appID,
SKStoreProductParameterCampaignToken: campaign
]
storeVC.loadProduct(withParameters: parameters) { [weak self] success, error in
if success {
self?.present(storeVC, animated: true)
}
}
}
Key points:
SKStoreProductParameterITunesItemIdentifierspecifies the target app’s ID.SKStoreProductParameterCampaignTokenattaches a marketing campaign identifier for tracking conversion source.loadProductloads product page data asynchronously, and the page should be presented only after success.- You can also pass
SKStoreProductParameterProviderTokenandSKStoreProductParameterAdvertisingPartnerTokenfor finer-grained attribution.
Key Takeaways
-
Automate seasonal and holiday marketing: upload and approve a full year’s worth of marketing assets in Asset Library ahead of time, then switch them in App Store Connect when each date arrives, without waiting for a development build. With the App Store Connect API, this can become a fully automated marketing calendar.
-
Create keyword-targeted search assets: configure different search result assets for different search keywords. Users searching for “budgeting” might see a clean productivity style, while users searching for “wealth management” see asset-growth charts. Matching assets to search intent can improve click-through rate.
-
Build a seamless path from website to app: keep the campaign page on your website, the App Store CPP, and the in-app landing page visually consistent. Users stay inside the same brand context from ad to download to usage. Use Universal Links to carry CPP parameters into the app, so new users land directly on the campaign page when they first open it.
-
Build an asset A/B testing pipeline: use Product Page Optimization to test conversion for different Header assets. Test both brand-led assets that emphasize visual tone and feature-led assets that emphasize core selling points, then let data guide design direction.
-
Cross-promote across an app portfolio: recommend other apps in your portfolio from inside your own app with
SKStoreProductViewController, passing a campaign token to track cross-promotion performance. Assets in Asset Library can be reused directly in Apple Ads, making one asset set work across multiple channels.
Related Sessions
- New App Store Connect features — New APIs for In-App Purchase and subscription management
- Custom Product Pages and App Intents — Use App Intents to extend app discoverability
- Apple Ads and marketing optimization — Retention Messaging and user retention strategy
- New StoreKit features — StoreKit API updates and best practices
- SwiftUI and AppKit/UIKit interoperability — The technical foundation for building high-quality app screenshots and preview videos
Comments
GitHub Issues · utterances