> For the complete documentation index, see [llms.txt](https://docs.appstoremanager.net/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.appstoremanager.net/documents/edit-translate-and-upload/screenshot-and-asset-upload.md).

# 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](/documents/access/google-play-console-access.md):

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

**App Store Connect** — a [valid API key must be configured](/documents/access/app-store-connect-access.md) 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       | Screenshots, Icons, Feature Graphics |
| 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.** Available for both App Store Connect and Google Play Console.

For **Google Play**, icon and feature graphic upload is also supported in addition to screenshots.

{% hint style="warning" %}
Google Play requires a **minimum of 2** and allows a **maximum of 8** screenshots per device type.
{% endhint %}

<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&amp;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&amp;token=bd28be27-415c-40b2-bd83-a2b3f464fd62" alt=""><figcaption><p>Position-based slot grid</p></figcaption></figure>

Use the **"Remove all first"** toggle to clear all existing screenshots before uploading, or leave it off to replace only the positions you drop files into.

#### 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&amp;token=ef81288f-57a8-40a0-aa98-541b1b2677be" alt=""><figcaption><p>Auto-detected locals and resolutions after drop</p></figcaption></figure>

The following aliases are recognized:

| Language                 | Apple Locale | Google Locale  | Recognized aliases                                                                    |
| ------------------------ | ------------ | -------------- | ------------------------------------------------------------------------------------- |
| Afrikaans                | —            | `af`           | `afrikaans`                                                                           |
| Albanian                 | —            | `sq`           | `albanian`, `shqip`, `albania`                                                        |
| Amharic                  | —            | `am`           | `amharic`, `አማርኛ`                                                                     |
| Arabic                   | `ar-SA`      | `ar`           | `arabic`, `ar`, `ar-sa`, `ara`, `عربي`, `saudi`                                       |
| Armenian                 | —            | `hy-AM`        | `armenian`, `hy-am`, `հայերեն`                                                        |
| Azerbaijani              | —            | `az-AZ`        | `azerbaijani`, `az-az`, `azərbaycan`                                                  |
| Bangla / Bengali         | `bn`         | `bn-BD`        | `bangla`, `bengali`, `bn`, `bn-bd`, `বাংলা`, `bangladesh`                             |
| Basque                   | —            | `eu-ES`        | `basque`, `eu-es`, `euskara`                                                          |
| Belarusian               | —            | `be`           | `belarusian`, `беларуская`                                                            |
| Bulgarian                | —            | `bg`           | `bulgarian`, `български`                                                              |
| Burmese                  | —            | `my-MM`        | `burmese`, `myanmar`, `my-mm`, `မြန်မာ`                                               |
| Catalan                  | `ca`         | `ca`           | `catalan`, `català`, `catalonia`                                                      |
| Chinese Simplified       | `zh-Hans`    | `zh-CN`        | `chinese`, `zh-hans`, `zh-cn`, `simplified`, `mandarin`, `chinese-simplified`, `简体中文` |
| Chinese Traditional (HK) | —            | `zh-HK`        | `zh-hk`, `chinese hong kong`, `chinese traditional hk`                                |
| Chinese Traditional (TW) | `zh-Hant`    | `zh-TW`        | `zh-hant`, `zh-tw`, `traditional`, `chinese-traditional`, `taiwan`, `繁體中文`            |
| Croatian                 | `hr`         | `hr`           | `croatian`, `hrvatski`, `croatia`                                                     |
| Czech                    | `cs`         | `cs-CZ`        | `czech`, `cz`, `cesky`, `čeština`, `czechia`, `cs-cz`                                 |
| Danish                   | `da`         | `da-DK`        | `danish`, `dk`, `dansk`, `denmark`, `da-dk`                                           |
| Dutch                    | `nl-NL`      | `nl-NL`        | `dutch`, `nl`, `nl-nl`, `nederlands`, `holland`, `netherlands`                        |
| English (Australia)      | `en-AU`      | `en-AU`        | `en-au`, `australian`, `australia`                                                    |
| English (Canada)         | `en-CA`      | `en-CA`        | `en-ca`, `canadian-english`, `english canada`                                         |
| English (GB)             | `en-GB`      | `en-GB`        | `en-gb`, `british`, `uk`, `england`, `united-kingdom`                                 |
| English (India)          | —            | `en-IN`        | `en-in`, `english india`                                                              |
| English (Singapore)      | —            | `en-SG`        | `en-sg`, `english singapore`                                                          |
| English (South Africa)   | —            | `en-ZA`        | `en-za`, `english south africa`                                                       |
| English (US)             | `en-US`      | `en-US`        | `english`, `en`, `en-us`, `eng`, `us`, `american`                                     |
| Estonian                 | —            | `et`           | `estonian`, `eesti`, `estonia`                                                        |
| Filipino                 | —            | `fil`          | `filipino`, `tagalog`, `philippines`                                                  |
| Finnish                  | `fi`         | `fi-FI`        | `finnish`, `suomi`, `finland`, `fi-fi`                                                |
| French                   | `fr-FR`      | `fr-FR`        | `french`, `français`, `francais`, `fr`, `fr-fr`, `fra`                                |
| French (Canada)          | `fr-CA`      | `fr-CA`        | `fr-ca`, `quebec`, `canadian-french`                                                  |
| Galician                 | —            | `gl-ES`        | `galician`, `gl-es`, `galego`                                                         |
| Georgian                 | —            | `ka-GE`        | `georgian`, `ka-ge`, `ქართული`                                                        |
| German                   | `de-DE`      | `de-DE`        | `german`, `deutsch`, `de`, `de-de`, `deu`, `ger`, `deutschland`                       |
| Greek                    | `el`         | `el-GR`        | `greek`, `gr`, `ελληνικά`, `greece`, `el-gr`                                          |
| Gujarati                 | `gu`         | `gu`           | `gujarati`, `gu`, `gujarat`, `ગુજરાતી`                                                |
| Hebrew                   | `he`         | `iw-IL`        | `hebrew`, `il`, `עברית`, `israel`, `iw-il`                                            |
| Hindi                    | `hi`         | `hi-IN`        | `hindi`, `हिन्दी`, `india`, `hi-in`                                                   |
| Hungarian                | `hu`         | `hu-HU`        | `hungarian`, `magyar`, `hungary`, `hu-hu`                                             |
| Icelandic                | —            | `is-IS`        | `icelandic`, `is-is`, `íslenska`, `iceland`                                           |
| Indonesian               | `id`         | `id`           | `indonesian`, `bahasa`, `indonesia`                                                   |
| Italian                  | `it`         | `it-IT`        | `italian`, `italiano`, `ita`, `it-it`                                                 |
| Japanese                 | `ja`         | `ja-JP`        | `japanese`, `jp`, `jpn`, `nihongo`, `ja-jp`, `日本語`                                    |
| Kannada                  | `kn`         | `kn-IN`        | `kannada`, `kn-in`, `ಕನ್ನಡ`, `karnataka`                                              |
| Kazakh                   | —            | `kk`           | `kazakh`, `қазақ`, `kazakhstan`                                                       |
| Khmer                    | —            | `km-KH`        | `khmer`, `km-kh`, `cambodian`, `ខ្មែរ`                                                |
| Korean                   | `ko`         | `ko-KR`        | `korean`, `kr`, `kor`, `hangul`, `ko-kr`, `한국어`, `korea`                              |
| Kyrgyz                   | —            | `ky-KG`        | `kyrgyz`, `ky-kg`, `кыргызча`                                                         |
| Lao                      | —            | `lo-LA`        | `lao`, `lo-la`, `laos`, `ລາວ`                                                         |
| Latvian                  | —            | `lv`           | `latvian`, `latviešu`, `latvia`                                                       |
| Lithuanian               | —            | `lt`           | `lithuanian`, `lietuvių`, `lithuania`                                                 |
| Macedonian               | —            | `mk-MK`        | `macedonian`, `mk-mk`, `македонски`, `macedonia`                                      |
| Malay                    | `ms`         | `ms` / `ms-MY` | `malay`, `melayu`, `malaysia`, `ms-my`, `bahasa`                                      |
| Malayalam                | `ml`         | `ml-IN`        | `malayalam`, `ml-in`, `മലയാളം`, `kerala`                                              |
| Marathi                  | `mr`         | `mr-IN`        | `marathi`, `mr-in`, `मराठी`, `maharashtra`                                            |
| Mongolian                | —            | `mn-MN`        | `mongolian`, `mn-mn`, `монгол`, `mongolia`                                            |
| Nepali                   | —            | `ne-NP`        | `nepali`, `ne-np`, `नेपाली`, `nepal`                                                  |
| Norwegian                | `no`         | `no-NO`        | `norwegian`, `nb`, `norsk`, `norway`, `no-no`                                         |
| Odia                     | `or`         | —              | `odia`, `oriya`, `ଓଡ଼ିଆ`, `odisha`                                                    |
| Persian                  | —            | `fa`           | `persian`, `farsi`, `فارسی`                                                           |
| Persian (Afghanistan)    | —            | `fa-AF`        | `fa-af`, `dari`                                                                       |
| Persian (Iran)           | —            | `fa-IR`        | `fa-ir`, `persian iran`                                                               |
| Persian (UAE)            | —            | `fa-AE`        | `fa-ae`, `persian uae`                                                                |
| Polish                   | `pl`         | `pl-PL`        | `polish`, `polski`, `poland`, `pl-pl`                                                 |
| Portuguese (Brazil)      | `pt-BR`      | `pt-BR`        | `portuguese`, `português`, `pt`, `pt-br`, `brazilian`, `brazil`                       |
| Portuguese (Portugal)    | `pt-PT`      | `pt-PT`        | `pt-pt`, `portugal`                                                                   |
| Punjabi                  | `pa`         | `pa`           | `punjabi`, `ਪੰਜਾਬੀ`, `پنجابی`, `punjab`, `panjabi`                                    |
| Romanian                 | `ro`         | `ro`           | `romanian`, `română`, `romania`                                                       |
| Romansh                  | —            | `rm`           | `romansh`, `rumantsch`                                                                |
| Russian                  | `ru`         | `ru-RU`        | `russian`, `rus`, `русский`, `ru-ru`, `russia`                                        |
| Serbian                  | —            | `sr`           | `serbian`, `српски`, `serbia`                                                         |
| Sinhala                  | —            | `si-LK`        | `sinhala`, `si-lk`, `සිංහල`, `sri lanka`                                              |
| Slovak                   | `sk`         | `sk`           | `slovak`, `slovenčina`, `slovakia`                                                    |
| Slovenian                | `sl`         | `sl`           | `slovenian`, `slovenščina`, `slovenia`                                                |
| Spanish                  | `es-ES`      | `es-ES`        | `spanish`, `español`, `espanol`, `es`, `es-es`, `spa`, `castilian`, `spain`           |
| Spanish (Latin America)  | —            | `es-419`       | `es-419`, `latin america`, `spanish latin america`                                    |
| Spanish (Mexico)         | `es-MX`      | —              | `es-mx`, `mexican`, `mexico`                                                          |
| Spanish (US)             | —            | `es-US`        | `es-us`, `spanish us`, `spanish united states`                                        |
| Swahili                  | —            | `sw`           | `swahili`, `kiswahili`                                                                |
| Swedish                  | `sv`         | `sv-SE`        | `swedish`, `se`, `svenska`, `sweden`, `sv-se`                                         |
| Tamil                    | `ta`         | `ta-IN`        | `tamil`, `தமிழ்`, `tamilnadu`, `ta-in`                                                |
| Telugu                   | `te`         | `te-IN`        | `telugu`, `తెలుగు`, `telangana`, `andhra`, `te-in`                                    |
| Thai                     | `th`         | `th`           | `thai`, `ไทย`, `thailand`                                                             |
| Turkish                  | `tr`         | `tr-TR`        | `turkish`, `türkçe`, `turkey`, `tr-tr`                                                |
| Ukrainian                | `uk`         | `uk`           | `ukrainian`, `ua`, `українська`, `ukraine`                                            |
| Urdu                     | `ur`         | `ur`           | `urdu`, `اردو`, `pakistan`                                                            |
| Vietnamese               | `vi`         | `vi`           | `vietnamese`, `vn`, `tiếng việt`, `vietnam`                                           |
| Zulu                     | —            | `zu`           | `zulu`, `isizulu`                                                                     |

**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&amp;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&amp;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 from the [File Templates](/documents/import-and-export/file-templates.md) page before preparing your archive.

**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&amp;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 or Android template from the [File Templates](/documents/import-and-export/file-templates.md) page.
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&amp;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                        |
