App Store, Google Play, and AppGallery Link Formats: The Reference
Every canonical, legacy, and scheme URL for the three major app stores — what each form does, where each one dies, and the encoding mistakes that silently eat campaign data. Built to be bookmarked.
Why link formats bite
Each store maintains at least three URL forms for the same listing: a canonical https URL, a legacy form kept alive by redirects, and a device scheme that skips the browser entirely. They look interchangeable. They are not. The schemes are dead links on the wrong OS, the legacy forms depend on redirects you do not control, and the canonical forms hide options — country codes, referrer parameters — that quietly change behavior.
This page lists all of them with placeholder values, what each form is for, and exactly where each one fails. The formats are constants; only the campaigns around them change.
Apple App Store
One rule sorts out every Apple link: resolution is keyed to the numeric id. The {app-name} slug in the path is cosmetic — misspell it, swap it, drop it, and the link still lands on the same listing as long as id{appId} is intact.
https://apps.apple.com/{country}/app/{app-name}/id{appId}https://apps.apple.com/app/id{appId}https://itunes.apple.com/app/id{appId}itms-apps://itunes.apple.com/app/id{appId}- The country code is a lowercase two-letter code (us, tr, de). It pins the link to one storefront — an account registered elsewhere gets an availability error even when the app is live in its own store.
- Omitting the country segment lets Apple resolve the storefront from the visitor. For anything global, this is the correct default, not a fallback.
- Legacy itunes.apple.com URLs still redirect to apps.apple.com. Old links keep working; do not mint new ones.
- itms-apps:// opens the App Store app directly, skipping the browser hop. On iOS that removes a visible redirect; on Android or desktop it is a dead link. Use it only where you control the platform.
Google Play
Play resolution is keyed to the package name — the id parameter. There is no country segment; Play picks the storefront from the signed-in account. The optional parameters do the interesting work.
https://play.google.com/store/apps/details?id={package}https://play.google.com/store/apps/details?id={package}&hl={lang}https://play.google.com/store/apps/details?id={package}&referrer=utm_source%3Dqr%26utm_campaign%3Dlaunchmarket://details?id={package}- &hl={lang} forces the listing language regardless of device settings. Useful for a screenshot in documentation; usually wrong in a campaign — leave it off and let the device decide.
- market:// opens the Play app directly with no browser hop. Android only; everywhere else it is a dead link.
The referrer parameter: free attribution most teams forget
Anything you put in &referrer= is carried through the install and handed to your app by the Play Install Referrer API on first launch. That is install attribution without an attribution SDK: tag a QR poster with utm_source%3Dqr%26utm_campaign%3Dlaunch and your app knows which poster drove the install.
The value must be URL-encoded as a whole: = becomes %3D, & becomes %26. Left raw, the first & inside your referrer string ends the parameter — Play silently keeps utm_source and drops everything after it, and the data loss only surfaces weeks later in reports.
Huawei AppGallery
AppGallery matters where Google services are absent: Huawei and Honor devices that ship without Play. The app id is numeric with a C prefix, taken from the AppGallery Connect console. An appmarket:// scheme exists on HMS devices — same caveat as every scheme: dead off-device.
https://appgallery.huawei.com/app/C{appId}appmarket://details?id={package}Common mistakes
Five failure modes cover almost every broken store link in the wild.
Forcing a country code on a global campaign
Accounts registered in other storefronts hit wrong-storefront errors. Drop the segment and let Apple geo-resolve.
Unencoded referrer values
A raw & ends the parameter; Play silently truncates after the first pair. Encode the whole value: = becomes %3D, & becomes %26.
market:// or itms-apps:// in email, QR codes, or social bios
Schemes resolve only on their own OS — a 404 for everyone else. On any cross-platform surface, use https or a link that routes per device.
http:// instead of https://
An extra redirect at best; broken in-app browsers and dropped referrer data at worst. Both stores are https — write it that way.
Linking a store search results page
Search URLs re-rank; the first result today may not be your app tomorrow. Link the canonical listing keyed to the id.
2026: distribution rules tighten, formats do not
Per Google’s Android developer announcements, a verified-developer requirement is rolling out: early access since October 2025, broadly available March 2026, and mandatory for apps installed outside Play in Brazil, Indonesia, Singapore, and Thailand from September 2026. None of it changes the URL formats above — it changes who may distribute Android apps outside Play. Links to Play listings behave exactly as before.
When one link must serve every store
Hand-assembling these formats is fine when you target one platform. An iOS-only push to iOS users needs one canonical Apple URL and nothing else.
The matrix breaks the moment a single surface serves everyone — a bio link, a printed QR, an email footer. Then you need the Apple URL for iPhones, the Play URL for most Androids, the AppGallery URL for Huawei devices, and a web fallback for desktops, all behind one link. That device-routing step is what a smart link does, and it is what Appy’s free tier is for: one URL, each device sent to its own store.
Frequently asked questions
Should my App Store links include a country code?
Only when you genuinely target one storefront — a promotion valid only in the US store, say. Otherwise omit it and let Apple resolve the storefront; a pinned code turns into an error for accounts registered elsewhere.
How do I add campaign data to a store link?
Google Play: the &referrer parameter, URL-encoded, read by your app through the Install Referrer API. Apple: the App Store URL carries no campaign parameter for third parties — put UTM parameters on an intermediate link you control and measure the click. AppGallery has no equivalent public channel; the same intermediate-link approach applies.
Do QR codes need a special store link format?
No — a QR encodes whatever URL you give it. But it inherits the single-OS problem: a QR of a Play URL is a dead end for every iPhone that scans it. Encode a device-routing link instead of a raw store URL.
Are itms-apps:// and market:// links faster?
On the right device, yes — one hop faster, straight into the store app without the browser flash. Off the device they are dead links. Use them where the platform is guaranteed, like inside your own iOS app; use https everywhere audiences mix.
Continue exploring
Deferred Deep Linking Without an SDK: How It Actually Works Under the Hood
You can carry link intent across an app install without embedding an attribution SDK. What actually survives the store boundary on Android and iOS, what breaks, and what each workaround costs in privacy.
Deferred Deep Linking: How It Works and When to Use It
Understand how deferred deep linking carries the original link intent across install so new users land on the right in-app screen, not a generic home tab.
Mobile Attribution in 2026: What Still Works After Privacy Sandbox Died
Privacy Sandbox for Android is cancelled, ATT opt-in sits near 14%, and Safari strips click IDs by default. An honest map of the measurement mechanisms that still function in 2026 — and the order in which to rely on them.
Looking for something else? Browse all topics on the blog.
One link for every store
Create a free smart link that routes iPhones to the App Store, Androids to Google Play, Huawei devices to AppGallery, and desktops to your site.
Create a free smart link