# Screenshot and asset upload

Use App Store Manager to upload and transfer screenshots, icons, and feature graphics to **App Store Connect** (Standard & CPP) and **Google Play Console** — across all your supported languages and device sizes.

<figure><img src="https://3157999510-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FC766X4IlgRAg3uNFiRyW%2Fuploads%2Fgit-blob-4d4e108ec77af7c6853313bcc0ed30398eecedea%2Fapp-store-manager-screenshot-upload-main.png?alt=media" alt=""><figcaption><p>App Store Manager - Screenshot Upload</p></figcaption></figure>

### 1. Before you start

Assets are stored for **180 days** on Basic and Premium plans before automatic deletion. This does not affect your live store listings. Uploads can take up to 1 **hour** to complete (full upload with all resolutions and all languages).

#### Required permissions

Before you can transfer assets, make sure the following API access is in place.

**Google Play Console** — your API user needs [these three permissions](https://docs.appstoremanager.net/documents/access/google-play-console-access):

* View app information
* Edit and delete draft apps
* Manage store presence

**App Store Connect** — a [valid API key must be configured](https://docs.appstoremanager.net/documents/access/app-store-connect-access) in your App Store Manager account settings.

### 2. Upload methods

There are three ways to provide your assets. The **Screenshot Manager** (drag & drop) is recommended for most users. ZIP upload and Google Drive provisioning are better suited for automated or bulk workflows.

| Method             | Best for                                 | Uses Smart Recognition | App Store Connect | Google Play                          |
| ------------------ | ---------------------------------------- | ---------------------- | ----------------- | ------------------------------------ |
| Screenshot Manager | Day-to-day management, real-time control | Yes                    | Screenshots       | Not available                        |
| Direct ZIP upload  | Automated bulk processing                | No                     | Screenshots       | Screenshots, Icons, Feature Graphics |
| Google Drive       | Sharing or storing archives externally   | No                     | Screenshots       | Screenshots, Icons, Feature Graphics |

### 3. Screenshot Manager (drag & drop)

The Screenshot Manager gives you real-time control over your assets and is the only method powered by the **Smart Recognition Engine.**

**This Drag & Drop option is currently available only in App Store Connect.**\
**Google Play will follow in Spring 2026.**

<figure><img src="https://3157999510-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FC766X4IlgRAg3uNFiRyW%2Fuploads%2FoWtG3y4UeutVVJgYoyC7%2FAsm-screenshot-upload-example.png?alt=media&#x26;token=7b528cdf-b2cd-44d8-a999-c360ce6d45ce" alt=""><figcaption><p>Screenshot Manager - main view</p></figcaption></figure>

**What you can do:**

* Drag in single files, multiple files, or entire folder structures
* Reorder screenshots by dragging within a slot
* Manually assign any unrecognized files that land in "Uncategorized"
* Replace individual positions — uploading to Position 4 only affects that slot; all others stay as-is

<figure><img src="https://3157999510-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FC766X4IlgRAg3uNFiRyW%2Fuploads%2FEepePGqhMKqRYfILNRDZ%2FAsm-screenshot-slots.png?alt=media&#x26;token=bd28be27-415c-40b2-bd83-a2b3f464fd62" alt=""><figcaption><p>Position-based slot grid</p></figcaption></figure>

A **"Remove all first"** toggle is currently in development. For now, replacement is position-based only.

#### How the Smart Recognition Engine works

When you drop files, the engine runs three checks in order:

**Step 1 — Language detection**

The engine first tries to identify the locale from your folder structure, then falls back to the filename if no match is found.

**Folder path scan (primary):** Every folder segment in the path is checked left to right. The first segment that matches a known locale code or alias is used.

**Filename fallback:** If no folder matches, the filename is split at `-`, `_`, or spaces and checked against the same alias list.

<figure><img src="https://3157999510-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FC766X4IlgRAg3uNFiRyW%2Fuploads%2FmE0noJbzfXsgQ13nLn7O%2FAsm-recognition.png?alt=media&#x26;token=ef81288f-57a8-40a0-aa98-541b1b2677be" alt=""><figcaption><p>Auto-detected locals and resolutions after drop</p></figcaption></figure>

The following aliases are recognized:

| Locale    | Recognized aliases                                                            |
| --------- | ----------------------------------------------------------------------------- |
| `ar-SA`   | `arabic`, `ar`, `ar-sa`, `ara`, `عربي`, `saudi`                               |
| `ca`      | `catalan`, `català`, `catalonia`                                              |
| `cs`      | `czech`, `cz`, `cesky`, `čeština`, `czechia`                                  |
| `da`      | `danish`, `dk`, `dansk`, `denmark`                                            |
| `de-DE`   | `german`, `deutsch`, `de`, `de-de`, `deu`, `ger`                              |
| `el`      | `greek`, `gr`, `ελληνικά`, `greece`                                           |
| `en-AU`   | `en-au`, `australian`, `australia`                                            |
| `en-CA`   | `en-ca`, `canadian-english`                                                   |
| `en-GB`   | `en-gb`, `british`, `uk`, `england`, `united-kingdom`                         |
| `en-US`   | `english`, `en`, `en-us`, `eng`, `us`, `american`                             |
| `es-ES`   | `spanish`, `español`, `espanol`, `es`, `es-es`, `spa`, `castilian`            |
| `es-MX`   | `es-mx`, `mexican`, `mexico`                                                  |
| `fi`      | `finnish`, `suomi`, `finland`                                                 |
| `fr-CA`   | `fr-ca`, `quebec`, `canadian-french`                                          |
| `fr-FR`   | `french`, `français`, `francais`, `fr`, `fr-fr`, `fra`                        |
| `he`      | `hebrew`, `il`, `עברית`, `israel`                                             |
| `hi`      | `hindi`, `हिन्दी`, `india`                                                    |
| `hr`      | `croatian`, `hrvatski`, `croatia`                                             |
| `hu`      | `hungarian`, `magyar`, `hungary`                                              |
| `id`      | `indonesian`, `bahasa`, `indonesia`                                           |
| `it`      | `italian`, `italiano`, `ita`                                                  |
| `ja`      | `japanese`, `jp`, `jpn`, `nihongo`                                            |
| `ko`      | `korean`, `kr`, `kor`, `hangul`                                               |
| `ms`      | `malay`, `my`, `melayu`, `malaysia`                                           |
| `nl-NL`   | `dutch`, `nl`, `nl-nl`, `nederlands`, `holland`, `netherlands`                |
| `no`      | `norwegian`, `nb`, `norsk`, `norway`                                          |
| `pl`      | `polish`, `polski`, `poland`                                                  |
| `pt-BR`   | `portuguese`, `português`, `pt`, `pt-br`, `brazilian`, `brazil`               |
| `pt-PT`   | `pt-pt`, `portugal`                                                           |
| `ro`      | `romanian`, `română`, `romania`                                               |
| `ru`      | `russian`, `rus`, `русский`                                                   |
| `sk`      | `slovak`, `slovenčina`, `slovakia`                                            |
| `sv`      | `swedish`, `se`, `svenska`, `sweden`                                          |
| `th`      | `thai`, `ไทย`, `thailand`                                                     |
| `tr`      | `turkish`, `türkçe`, `turkey`                                                 |
| `uk`      | `ukrainian`, `ua`, `українська`, `ukraine`                                    |
| `vi`      | `vietnamese`, `vn`, `tiếng việt`, `vietnam`                                   |
| `zh-Hans` | `chinese`, `zh-hans`, `zh-cn`, `simplified`, `mandarin`, `chinese-simplified` |
| `zh-Hant` | `zh-hant`, `zh-tw`, `traditional`, `chinese-traditional`, `taiwan`            |

**Step 2 — Slot order**

The display position is read from numbers in the filename:

* **Numbers between underscores** — `en-US_3_1290x2796.png` is placed in Slot 3
* **Direct numeric names** — `1.png` through `10.png` are placed in the corresponding slot

<figure><img src="https://3157999510-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FC766X4IlgRAg3uNFiRyW%2Fuploads%2FSsQfbCdQ2I6Z0dTFK7cU%2FAsm-order.png?alt=media&#x26;token=4f378ee2-fc37-42a6-ad71-a8197a8f5492" alt=""><figcaption><p>Slot assignment from filename</p></figcaption></figure>

**Step 3 — Resolution detection**

The target device is identified **exclusively** by the actual pixel dimensions of the image file. Folder names like "iPhone 15" are ignored. See [Technical specifications](#6-technical-specifications) below for the full list of supported dimensions.

<figure><img src="https://3157999510-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FC766X4IlgRAg3uNFiRyW%2Fuploads%2FCg5enEfNk0iUDhzOzyyW%2FAsm-resolution.png?alt=media&#x26;token=793485de-dbf4-4eb5-93b3-2158e48eb685" alt=""><figcaption><p>Auto-assigned device resolutions</p></figcaption></figure>

### 4. Direct ZIP upload

Use this method for automated bulk processing. Files must be placed in the correct folders within the archive — the Smart Recognition Engine is not used here.

You must use the official templates. The folder hierarchy must be maintained exactly or the upload will fail.

Download the template for your platform before preparing your archive:

[Download iOS Template](https://appstoremanager.net/assets/fileImportTemplates/AppStoreManager-iOS-Screenshot-Template.zip) | [Download Android Template](https://appstoremanager.net/assets/fileImportTemplates/AppStoreManager-Android-Screenshot-Template.zip)

**File naming and minimums:**

| Platform | File naming        | Minimum images per resolution |
| -------- | ------------------ | ----------------------------- |
| iOS      | `1.png` – `10.png` | 3                             |
| Android  | `1.png` – `8.png`  | 2                             |

<figure><img src="https://3157999510-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FC766X4IlgRAg3uNFiRyW%2Fuploads%2F4fh9VdtO9GCPaDdquQbx%2FASM-ZIP-Upload.png?alt=media&#x26;token=d4d0e7c9-9348-494a-8443-6e1749a39c6e" alt=""><figcaption><p>Direct ZIP/ Archive upload panel</p></figcaption></figure>

### 5. Google Drive provisioning

This is an alternative to uploading a ZIP directly — useful if you want to store your asset archive externally or share it with a team member.

1. Create a ZIP archive using the [iOS](https://appstoremanager.net/assets/fileImportTemplates/AppStoreManager-iOS-Screenshot-Template.zip) or [Android](https://appstoremanager.net/assets/fileImportTemplates/AppStoreManager-Android-Screenshot-Template.zip) template.
2. Upload the ZIP to Google Drive.
3. Set the sharing permission to **Viewer**.
4. Paste the share link into the **App Assets** field in App Store Manager.

<figure><img src="https://3157999510-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FC766X4IlgRAg3uNFiRyW%2Fuploads%2FMqnCczmNaw111iDqmkwY%2FASM-ZIP-Google-Upload.png?alt=media&#x26;token=a9945b3a-7781-4767-b273-c174e439c3f2" alt=""><figcaption><p>Google Drive link - Drive ZIP upload</p></figcaption></figure>

### 6. Technical specifications

The system matches image files to their target device based on exact pixel dimensions. The values below are the only ones recognized — no rounding or approximation is applied.

#### iOS — App Store Connect

| Device         | Portrait (W × H) | Landscape (W × H) |
| -------------- | ---------------- | ----------------- |
| iPhone 6.9"    | 1320 × 2868      | 2868 × 1320       |
| iPhone 6.7"    | 1290 × 2796      | 2796 × 1290       |
| iPhone 6.5"    | 1242 × 2688      | 2688 × 1242       |
| iPhone 5.5"    | 1242 × 2208      | 2208 × 1242       |
| iPad Pro 13"   | 2064 × 2752      | 2752 × 2064       |
| iPad Pro 12.9" | 2048 × 2732      | 2732 × 2048       |

#### Android — Google Play Console

| Asset type      | Requirements                                            |
| --------------- | ------------------------------------------------------- |
| Phone / Tablet  | Min 320px, max 3840px — 9:16 portrait or 16:9 landscape |
| App Icon        | 512 × 512 px, 32-bit PNG                                |
| Feature Graphic | 1024 × 500 px, JPG or 24-bit PNG                        |
