> 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
* Choose between **Replace All** and **Selective** upload mode when transferring screenshots and app previews to the store (store listings and custom product pages)

<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>

**Upload modes:**

* **Replace All** — removes all existing screenshots or app previews in the store and uploads the full set from the Screenshot Manager
* **Selective** — only the positions you manage in the Screenshot Manager are replaced; all other store assets stay untouched

#### 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.

{% hint style="success" %}
ZIP files created with the **Mac Finder** are fully supported — hidden macOS system files (e.g. `__MACOSX`, `.DS_Store`) are ignored automatically.
{% endhint %}

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                        |
