TapCub is live — analytics, insights and live chat, free on one platform

Free tool Deep link generator for App Store and Google Play

An app download link is really several links: an App Store URL whose campaign token shows up in App Analytics, a Google Play URL whose referrer reaches your app after install, a deep link that opens the right screen, and the files your domain must serve for universal links and App Links. Fill in your IDs once and get all of them, checked against Apple’s and Google’s rules, plus a QR code.

  • ct / pt per App Store Connect help
  • referrer per Google Play docs
  • Runs locally
Generator

Build store links and deep links

Leave out what you do not need: an iOS-only app can skip the package name, a link without a domain skips the association files.

The number after id in your App Store URL (Apple ID in App Store Connect). Pasting the whole URL works too.

Two-letter code such as us or gb. Leave empty to let the App Store pick the visitor’s storefront.

Fixed for your developer account. You get it the first time you create a campaign link in App Store Connect; it cannot be made up.

Your campaign name: up to 30 letters, digits, spaces and the listed punctuation; no space at the start or end.

The applicationId, for example com.example.shop.

Goes into the Google Play referrer, and into the deep links if the box below is ticked.

For example email, social, cpc.

For example spring_sale.

To tell creatives or placements apart.

Your app’s URL scheme without ://, for example exampleshop.

The HTTPS domain for universal links / App Links, for example link.example.com.

The screen to open, for example product/1024. Extra parameters can follow after ?.

10 characters, from your Apple developer account. Used in apple-app-site-association.

Leave empty if it is the same as the Android package name.

From the signing key (with Play App Signing, the app signing key in Play Console). Colons optional.

A printed code can only hold one link. The universal link opens the app if installed and your web page otherwise.

App Store link
https://apps.apple.com/app/id123456789?pt=123456&ct=spring_sale&mt=8

Campaign results appear in App Store Connect › Analytics › Campaigns, no sooner than 24 hours after launch.

Google Play link
https://play.google.com/store/apps/details?id=com.example.shop&referrer=utm_source%3Dnewsletter%26utm_medium%3Demail%26utm_campaign%3Dspring_sale

The referrer is passed to the app after install; read it once with the Play Install Referrer library.

Checks

  • OKApp Store campaign “spring_sale”: both tokens present and within Apple’s rules.
  • OKReferrer encoded once more inside the link, 73 / 512 characters.
  • NoteTeam ID or SHA-256 fingerprint missing: the association files show placeholders to replace before publishing.

QR code

Download SVG for print, PNG for slides and chats.

https://link.example.com/product/1024?utm_source=newsletter&utm_medium=email&utm_campaign=spring_sale

Version 6 · 41 × 41 modules · error correction M · 4-module quiet zone included

Chinese Android app stores

Only formats each store publishes in its own developer documentation. App-internal schemes open the store app; set the store’s package on the Intent so the right store opens.

StoreLinkHow to use it
Huawei AppGallery (Android)appmarket://details?id=com.example.shopFormat given in Huawei’s quick app FAQ. Campaign attribution uses links generated in AppGallery Connect; no hand-built parameter is documented.
Huawei AppGallery (HarmonyOS app)store://appgallery.huawei.com/app/detail?id=com.example.shopInside a HarmonyOS app, with action ohos.want.action.appdetail. The id is the bundleName (the package name is used here).
Huawei AppGallery (HarmonyOS web link)https://appgallery.huawei.com/app/detail?id=com.example.shopHarmonyOS App Linking URL; the id is the bundleName. Opens AppGallery on HarmonyOS devices.
Honor App Markethonormarket://details?id=com.example.shopFrom Honor’s developer docs. setPackage("com.hihonor.appmarket") to go straight to Honor.
OPPO App Marketmarket://details?id=com.example.shopFrom OPPO’s self-update docs (optional caller, m and other parameters). setPackage com.oppo.market, falling back to com.heytap.market.
vivo App Storemarket://details?id=com.example.shopFrom vivo’s docs. setPackage("com.bbk.appstore") to open vivo’s store.
Xiaomi GetAppsmarket://details?id=com.example.shopXiaomi documents this only for an app opening its own page (self-update). Ad-delivery mimarket:// links must be signed and generated server-side.
Meizu App Storemstore://details?package_name=com.example.shopInside an app, setPackage("com.meizu.mstore"); add source_apkname with your own package name.
Meizu (web page)http://app.meizu.com/apps/public/detail?package_name=com.example.shopWeb page from Meizu’s docs; Meizu notes it may need the Meizu browser to open the store.
Tencent MyApp (Yingyongbao)https://a.app.qq.com/o/simple.jsp?pkgname=com.example.shopMyApp “micro download” link, generated in the MyApp console for apps already listed there.
Universal link / App Link
https://link.example.com/product/1024?utm_source=newsletter&utm_medium=email&utm_campaign=spring_sale

Opens the app when it is installed and the domain is verified; otherwise the page loads in the browser.

Custom-scheme deep link
exampleshop://product/1024?utm_source=newsletter&utm_medium=email&utm_campaign=spring_sale

Works only when the app is installed. Use it inside your own app, in push payloads or as a fallback.

Web page code
<!-- Smart App Banner for iOS Safari, inside <head> -->
<meta name="apple-itunes-app" content="app-id=123456789, app-argument=https://link.example.com/product/1024?utm_source=newsletter&amp;utm_medium=email&amp;utm_campaign=spring_sale">

<!-- Download links. Get store badges from the official Apple / Google badge pages and follow their guidelines -->
<a href="https://apps.apple.com/app/id123456789?pt=123456&amp;ct=spring_sale&amp;mt=8" rel="noopener">App Store</a>
<a href="https://play.google.com/store/apps/details?id=com.example.shop&amp;referrer=utm_source%3Dnewsletter%26utm_medium%3Demail%26utm_campaign%3Dspring_sale" rel="noopener">Google Play</a>

Smart App Banner for iOS Safari and plain download links. Get badge artwork from the official pages linked below.

apple-app-site-association
{
  "applinks": {
    "details": [
      {
        "appIDs": [
          "TEAM_ID.com.example.shop"
        ],
        "components": [
          {
            "/": "/product/*",
            "comment": "Open links under /product/*"
          }
        ]
      }
    ]
  }
}

Serve at https://<domain>/.well-known/apple-app-site-association: no file extension, HTTPS, no redirects.

assetlinks.json
[
  {
    "relation": [
      "delegate_permission/common.handle_all_urls"
    ],
    "target": {
      "namespace": "android_app",
      "package_name": "com.example.shop",
      "sha256_cert_fingerprints": [
        "REPLACE_WITH_SHA256_CERT_FINGERPRINT"
      ]
    }
  }
]

Serve at https://<domain>/.well-known/assetlinks.json and add android:autoVerify="true" to the intent filter.

Runs entirely in your browser. Nothing you type here is uploaded or stored by TapCub.

Share these inputs: the values go after the # in the link, so they never reach a server.

Version v1.0Updated Update history

Read the result

What each link does after the tap

Store links decide where the install is credited; deep links decide which screen opens. Most campaigns need both.

App Store link

Opens the product page. When the person downloads within 24 hours, App Store Connect counts it as a first-time download for that campaign token; if they clicked several campaign links, the latest gets the credit. Apple does not pass ct to your app.

Google Play link

The referrer value is stored by Google Play and handed to the app through the Install Referrer API after install (kept for 90 days). Read it once on first launch and send the utm_* values to your analytics.

Universal link / App Link

An HTTPS URL on your own domain. With the association file in place and verified, the system opens the app directly; without the app, the browser shows the page, where you can offer the store links.

Chinese stores

Android in mainland China has no Google Play, and each phone brand runs its own store. market://details without a target package makes Android show a chooser of every installed store, so set the store’s package on the Intent.

None of these links match a click to a specific install on their own. For paid campaigns across many networks you still need an attribution provider or each network’s SDK.

How to use it

Four steps

Test every link on a real device, once with the app installed and once without.

  1. 1

    Fill in your IDs

    App Store ID and provider token from App Store Connect, package name from your Android build.

  2. 2

    Name the campaign

    One campaign token for Apple and the utm_* values for Google Play and your deep links. Keep the names the same across platforms.

  3. 3

    Publish the association files

    Upload apple-app-site-association and assetlinks.json to /.well-known/ on the link domain, then add the domain to your app’s entitlements and intent filter.

  4. 4

    Place the links

    Store links in emails and ads, the Smart App Banner on your site, the universal link in a QR code for print.

Formats

Link formats and where they come from

Checked against Apple, Google and the Chinese stores’ developer documentation on 2026-11-10. Only formats the platform itself publishes are generated.

  • App Store: https://apps.apple.com/[storefront/]app/id<ID>?pt=<provider>&ct=<campaign>&mt=8; links copied from App Store Connect also have the app name before id, which does not change the page
  • Google Play: https://play.google.com/store/apps/details?id=<package>&referrer=<encoded utm string>; the referrer is encoded as a whole, e.g. utm_source%3Dsearch%26utm_medium%3Dcpc
  • Universal links: applinks with appIDs = Team ID + bundle ID and components path patterns; Android App Links: delegate_permission/common.handle_all_urls with package name and SHA-256 fingerprint
  • Not published, so not generated: OPPO oppomarket://, MyApp tmast://, web detail pages for Xiaomi, OPPO, vivo and Honor, and hand-built attribution parameters for Huawei and Xiaomi
Rules this tool checks
ItemRuleSource
Campaign token ctUp to 30 letters, digits, spaces and listed punctuation; no leading or trailing spaceApp Store Connect help
Provider token ptFixed per developer account, issued by App Store ConnectApp Store Connect help
Play referrerURL-encoded, 512 characters or lessAndroid developers
apple-app-site-associationAt /.well-known/, no extension, HTTPS, no redirectsApple developer docs
assetlinks.jsonAt /.well-known/, SHA-256 of the signing certificateAndroid developers
Worked example

One spring sale email, both stores

A shop app sends a spring sale newsletter with one button per store and a deep link to the sale screen.

App Store ID 123456789, provider 123456, package com.example.shop
LinkResult
App Storehttps://apps.apple.com/app/id123456789?pt=123456&ct=spring_sale&mt=8
Google Play…details?id=com.example.shop&referrer=utm_source%3Dnewsletter%26utm_medium%3Demail%26utm_campaign%3Dspring_sale
Universal linkhttps://link.example.com/sale?utm_source=newsletter&utm_medium=email&utm_campaign=spring_sale

Installs from the email show up under campaign spring_sale in App Store Connect and, through the install referrer, as utm_source=newsletter in the app’s own analytics. Existing users tap the universal link and land on the sale screen with the same utm values.

Common mistakes

Why app links lose their attribution

Most problems are an encoding slip or a file the system cannot fetch.

Unencoded referrer

&referrer=utm_source=a&utm_medium=b leaves utm_medium as a separate Play parameter. Encode the whole referrer so it stays one value.

Inventing a provider token

pt comes from App Store Connect and is tied to your account. A made-up number means the campaign never appears in App Analytics.

Association file behind a redirect

Apple fetches apple-app-site-association over HTTPS with no redirects, and the file has no .json extension. A CDN or login redirect silently breaks universal links.

Only testing with the app installed

The path without the app (store page, then first launch) is where attribution happens. Test on a clean device or after deleting the app.

FAQ

Deep link and store link questions

Still have a question?

Chat with the team behind TapCub — we usually reply within a few hours on business days.

What does a deep link generator do?

It builds the links that send people to your app: store links with campaign parameters, deep links that open a specific screen, and the domain files that let HTTPS links open the app. This one also checks each against Apple’s and Google’s rules.

How do I track App Store downloads from a campaign?

Create a campaign link in App Store Connect once to get your provider token (pt), then add ct=<campaign> to your App Store URL. Downloads within 24 hours of a click are counted in App Analytics › Campaigns, visible after at least 24 hours.

How do I add UTM parameters to a Google Play link?

Put the utm string in the referrer parameter and URL-encode it as a whole: &referrer=utm_source%3Dnewsletter%26utm_medium%3Demail. The app reads it after install with the Play Install Referrer library.

What is the difference between a custom scheme and a universal link?

A custom scheme (exampleshop://product/1024) only works if the app is installed and any app can register the same scheme. A universal link / App Link is an HTTPS URL on your domain, verified by a file you host, that falls back to your web page.

Can one QR code send iPhone users to the App Store and Android users to Google Play?

Not by itself: a QR code holds one fixed link. Use a universal link to your own page that shows both store buttons (or redirects by device on your server), or print two codes.

Which Chinese Android stores publish link formats?

Huawei (Android and HarmonyOS), Honor, OPPO, vivo, Xiaomi (self-update only), Meizu and Tencent MyApp document the formats listed in the tool. Formats seen only on blogs, such as oppomarket:// or tmast://, are left out.

Can I use the App Store and Google Play badges?

Yes, under each company’s guidelines. Download the artwork from Apple’s marketing guidelines and Google Play’s badge page rather than redrawing it; this tool only gives plain links.

Is anything uploaded?

No. Links, files and the QR code are built in your browser. The share link keeps inputs after # in the URL, which browsers do not send to servers.

Changelog

Update history

New features, fixes and data refreshes for this tool, newest first.

  1. · v1.0

    LaunchedFirst release.

Missing something or found an error? Tell us — requests that come up often go into the next update. All tool updates

Next step

See what installs do after day one

TapCub puts app retention, crashes and attribution results in the same project as your website and mini programs.

See your data clearly. Find your growth.

Every click, backed by data. Install one line of code and see your first numbers in a minute.

No credit card · Free plans for analytics and chat · Cookieless analytics