<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[sukuji blog]]></title><description><![CDATA[Practical notes on App Store screenshots, header images, ASO and localization from the maker of sukuji, plus what I learn shipping apps as a solo developer.]]></description><link>https://sukuji.hashnode.dev</link><image><url>https://cdn.hashnode.com/uploads/logos/6ac7d01cb4313d79a22a1d05/7932ae44-e0e4-44ab-90a8-50c202699c45.png</url><title>sukuji blog</title><link>https://sukuji.hashnode.dev</link></image><generator>RSS for Node</generator><lastBuildDate>Wed, 14 Oct 2026 09:59:43 GMT</lastBuildDate><atom:link href="https://sukuji.hashnode.dev/rss.xml" rel="self" type="application/rss+xml"/><language><![CDATA[en]]></language><ttl>60</ttl><item><title><![CDATA[App Store Connect just added header images. Here's everything you need to know]]></title><description><![CDATA[Since early October, App Store Connect has a new tab on the version page: Header and Search Results. Apple calls what goes there creative assets, and they change two things people see before they ever]]></description><link>https://sukuji.hashnode.dev/app-store-connect-just-added-header-images-here-s-everything-you-need-to-know</link><guid isPermaLink="true">https://sukuji.hashnode.dev/app-store-connect-just-added-header-images-here-s-everything-you-need-to-know</guid><category><![CDATA[iOS]]></category><category><![CDATA[app store]]></category><category><![CDATA[ASO]]></category><category><![CDATA[indie-hacker]]></category><category><![CDATA[buildinpublic]]></category><dc:creator><![CDATA[oshio]]></dc:creator><pubDate>Thu, 08 Oct 2026 18:31:55 GMT</pubDate><enclosure url="https://cdn.hashnode.com/uploads/covers/6ac7d01cb4313d79a22a1d05/dfdf9fe2-3411-40ec-a189-daf0631f8d15.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Since early October, App Store Connect has a new tab on the version page: <strong>Header and Search Results</strong>. Apple calls what goes there <em>creative assets</em>, and they change two things people see before they ever tap Get.</p>
<p>I build a tool for App Store screenshots, so I went through Apple's docs and templates line by line. Here's what matters if you ship apps on your own.</p>
<h2>The two new placements</h2>
<p><strong>Product page header.</strong> A wide image (or video) above your icon and app name. Until now the top of a product page was just the icon and the name, so this is the biggest change to first impressions in years.</p>
<p><strong>Search results.</strong> When your app appears in a search, you can show one wide image or video instead of the usual row of screenshots. Leave it empty and search looks the same as before: In-App Events, previews and screenshots.</p>
<p>Two things to know up front:</p>
<ul>
<li><p>They only show on iOS 27 and iPadOS 27 or later. Everyone else sees your old page.</p>
</li>
<li><p>Both are optional. Skipping them won't affect review.</p>
</li>
</ul>
<h2>Sizes, straight from Apple's spec page</h2>
<table>
<thead>
<tr>
<th>Placement</th>
<th>Ratio</th>
<th>Size</th>
<th>Format</th>
</tr>
</thead>
<tbody><tr>
<td>Header</td>
<td>21:9</td>
<td>3840 × 1646</td>
<td>JPEG, PNG</td>
</tr>
<tr>
<td>Search results</td>
<td>3:2</td>
<td>1920 × 1280 up to 3840 × 2560</td>
<td>JPEG, PNG</td>
</tr>
<tr>
<td>Universal (fills both)</td>
<td>16:9</td>
<td>5244 × 2950</td>
<td>PNG only</td>
</tr>
</tbody></table>
<p>Source: <a href="https://developer.apple.com/help/app-store-connect/reference/app-information/creative-assets-specifications">Creative assets specifications</a>.</p>
<p>A few posts going around call 5244 × 2950 "the header size." It's the universal asset. A header-only image is 3840 × 1646.</p>
<p>No transparency is allowed in any of them, so flatten your background before exporting a PNG.</p>
<p>Video uses the same sizes: 30 or 60 fps, 5 to 30 seconds, mov, m4v or mp4. It loops in both places. In search it stays muted with no way to unmute; on the product page it starts muted and people can turn sound on.</p>
<h2>The universal asset and where it gets cut</h2>
<p>One 5244 × 2950 PNG can fill both slots. The checkbox to reuse it in search only appears when the asset is universal.</p>
<p>The trade-off: a 16:9 image squeezed into 21:9 and 3:2 loses something either way. Assuming a center crop, the header loses the top and bottom, and search results lose the sides.</p>
<p>Here's the math for a 5244 × 2950 universal asset:</p>
<table>
<thead>
<tr>
<th>Crop</th>
<th>What's kept</th>
</tr>
</thead>
<tbody><tr>
<td>Header (21:9)</td>
<td>5244 × 2248, top and bottom cut</td>
</tr>
<tr>
<td>Search results (3:2)</td>
<td>4425 × 2950, left and right cut</td>
</tr>
<tr>
<td>Kept in both</td>
<td>about 4425 × 2248 in the middle</td>
</tr>
</tbody></table>
<p>So roughly the middle 4425 × 2248 survives both. Apple doesn't publish an exact crop rule, only "keep the focal point centered," so use this as a guide, not a guarantee. Keep text and anything important well inside the middle, and check App Store Connect's Preview on iPhone and iPad in both orientations.</p>
<h2>Header vs. search: different jobs</h2>
<p>Apple's <a href="https://developer.apple.com/app-store/asset-best-practices/">asset best practices</a> give the header and the search asset different advice, and it makes sense once you think about where people are.</p>
<ul>
<li><p><strong>Header:</strong> the person already opened your page. Your icon, name and Get button sit right below. You don't need to explain features here. Show the feeling or the moment the app is used in.</p>
</li>
<li><p><strong>Search:</strong> your app is next to competitors. If it isn't obvious what it does, people scroll. Show the real app screen and one short line that adds to the picture.</p>
</li>
</ul>
<p>What you can't include:</p>
<ul>
<li><p>specific prices or discounts</p>
</li>
<li><p>URLs or copyright symbols</p>
</li>
<li><p>awards you didn't win, or Apple recognitions like Editor's Choice</p>
</li>
<li><p>other platforms' logos</p>
</li>
</ul>
<p>And even if your app is rated 17+, these images must meet a <strong>4+</strong> rating.</p>
<h2>Uploading and review</h2>
<p>There are two ways in.</p>
<ol>
<li><p><strong>Version page:</strong> open the Header and Search Results tab, pick a slot, and drop in a file. It goes live when that version is approved and released.</p>
</li>
<li><p><strong>Asset Library</strong> (sidebar): upload creative assets and submit them on their own. No new build needed. Apple reviews them against your current live version.</p>
</li>
</ol>
<p>The second path is the useful one. Once an asset is approved, you can swap it in later without another review. Get a holiday header approved in November and turn it on in December.</p>
<p>Other details:</p>
<ul>
<li><p>You need the Account Holder, Admin, App Manager or Marketing role.</p>
</li>
<li><p>Assets are per localization. If your image has text, you need one per language.</p>
</li>
<li><p>Each custom product page (up to 70 per app) can have its own header.</p>
</li>
<li><p>For video, choose the poster frame carefully. You can't change it after approval.</p>
</li>
</ul>
<h2>Where I'd start as a solo developer</h2>
<p>Adding a search asset hides the first three screenshots people used to see in search. If your screenshots already convert, it's fine to leave search empty and start with the header.</p>
<p>The lightest first step: make one universal PNG, submit it alone through Asset Library, and once it's approved, put it in the header and check the crop in Preview. Then decide whether search should use it too.</p>
<p>If you want data, product page optimization lets you test up to three versions against your current page for up to 90 days. Results appear after five first-time downloads per test.</p>
<hr />
<p>I built a free tool that makes all three sizes from your app screens and keeps your real UI untouched inside the device frame: <a href="https://sukuji.com/header">sukuji.com/header</a>. Two free runs, no sign-up.</p>
]]></content:encoded></item></channel></rss>