Deep links overview

Deep links are short links such as https://acme.<link domain>/spring that you put in emails, ads, QR codes and social posts. Each visitor is sent where they can continue: iPhone users to your app's App Store page or your iOS web page, Android users to Google Play or your Android web page, and everyone else to your website.

Opening the installed app straight from a link, and counting clicks, come in later updates. Today a link always lands on a store page or a web page you chose.

On your workspace's Products page, turn on Deep links. The project then has a Deep links page.

2. Register your apps

A link sends phones to your apps' store pages, so register the apps first: on the project's Overview page, under Apps, add an iOS app with its numeric App Store ID and an Android app with its Application ID (and its Play package if it differs). See Workspaces and projects.

A project with no iOS or Android app can still have links, as long as each one has a web fallback (step 5).

On Deep links, open Settings and enter a Subdomain under Link host, such as acme, then Save. Your links live on acme.<link domain>. Only owners and admins can change it.

Choose carefully: once the project has a link, the subdomain is locked, because changing it would break every link you already shared or printed.

On Deep links, choose New link. Enter the Path in the app the link stands for, such as /products/42. Optionally give it a Slug (the part after the host; leave it empty and Mocco makes a short one), a Label, a Campaign, Params and an expiry date (Expires). Then choose Create link.

The link's short URL is shown with a copy button. The slug can't change later, so a printed QR code keeps working.

Params whose names start with utm_ (such as utm_source=qr) are added to your web fallback URLs when someone is sent there, so your analytics see where visitors came from.

5. Send people without the app to your website (optional)

Under Web fallbacks (optional) a link can name a page for iOS, a page for Android, and a page for everyone else. To keep links from sending people to sites that aren't yours, a web fallback must be on a web destination you have proven you own: in Settings → Web destinations, add the exact host (such as www.acme.com), publish the TXT record it shows, and verify it.

Where each visitor goes

VisitorGoes to the first of
iPhone and iPadthe iOS web fallback, your App Store page, the web fallback
Androidthe Android web fallback, your Google Play page, the web fallback
Computers and anything elsethe web fallback

When none of these is set, the visitor gets a small page instead of being redirected: your link's label (or project name), a button for each store page you have, and on a computer the short URL to open on a phone.

The page a computer gets for a link with no web fallback: open it on a phone, or go to a store

  • An iPad in its default desktop mode is treated as a computer.

  • Link previews (Slack, KakaoTalk, X and others) are treated as computers.

  • Nothing in the address someone types after the slug changes where they go, so nobody can reuse your link to send people elsewhere.

A link can't be deleted, so its slug never comes back pointing somewhere else. On a link's page, Disable link stops it: visitors see "This link has ended". Enable link turns it back on. A link past its expiry date shows the same page.

A change takes effect within a minute everywhere.

Every page a link host shows for a link ends with Report this link, so anyone who finds a link used for phishing, malware or spam can tell you. Reports wait under Deep links → Reports, with the reason, what the person wrote and an email if they left one. Any member can:

  • Dismiss a report that needs nothing done.

  • Disable link to stop the reported link. Every other open report on that link is resolved with it, and the link's page says it was disabled from a report.

To be told when a link is reported, add a notification rule for links.abuse.reported on one of your channels. It arrives once a day per link, however many reports come in.

If many links are being abused at once, owners and admins can stop all of them: in Deep links → Settings, choose Pause all links and, if you like, write a reason only your team sees. Every link then shows "This link is temporarily unavailable" until you choose Resume links. People can still report links while they are paused.