Back to Blog

Deep Links: Open Short Links in Native Apps

A mobile user who lands in Safari instead of the YouTube app is a user who won't subscribe, comment, or watch to the end. Deep links fix that, here's how Flyn implements them, what works on iOS vs Android, and how to enable them in a single toggle.

Karan Bhakuni
Karan Bhakuni
Founder, Flyn
GuideApr 1, 202613 min readUpdated May 5, 2026
Deep Links: Open Short Links in Native Apps

Supported Platforms (and How Each One Routes)

Flyn ships with first-class deep-link routing for 16+ platforms. Each one has its own URI scheme handling, fallback behavior, and platform quirks, but you don't need to know any of them.

The full list

PlatformiOS URI schemeAndroid handlingSibling shortener
YouTubeyoutube://com.google.android.youtube intentYouTube
Instagraminstagram://com.instagram.android intentInstagram
TikToksnssdk1233:// + universal linkcom.zhiliaoapp.musically intentTikTok
Twitter / Xtwitter://com.twitter.android intentTwitter/X
Spotifyspotify://com.spotify.music intentSpotify
LinkedInlinkedin://com.linkedin.android intentLinkedIn
Facebookfb://com.facebook.katana intentFacebook
Redditreddit://com.reddit.frontpage intentReddit
Pinterestpinterest://com.pinterest intentPinterest
WhatsAppwhatsapp://com.whatsapp intentWhatsApp
Telegramtg://org.telegram.messenger intentTelegram
Discorddiscord://com.discord intentDiscord
Twitchtwitch://tv.twitch.android.app intentTwitch
Amazonamzn://com.amazon.mShop.android.shopping intentAmazon
GitHubuniversal linkcom.github.android intentGitHub
Snapchatsnapchat://com.snapchat.android intentSnapchat

Need a platform that isn't listed? Email the team, most new platforms ship within a release cycle. The same redirect engine that powers the listed platforms is fully data-driven, so adding a new one is a config change, not a code release.

Platform-shortener pairing

Every Flyn short link can deep-link, but the experience is sharpest when you combine deep linking with a platform-specific shortener. The Spotify shortener, for instance, pre-validates that your destination is a real Spotify URL before creating the link, so the deep-link redirect never fails silently. Same for the YouTube shortener and the Instagram shortener.

iOS vs Android: The Differences That Actually Matter

From a Flyn user's perspective, deep linking is one toggle. From the implementation side, iOS and Android behave differently in ways that occasionally surface to the user. Understanding the differences helps you debug edge cases.

The behavior matrix

ScenarioiOSAndroid
App installedOpens app via universal link (silent)Opens app via intent URL (silent)
App not installed (URI scheme attempt)Shows "Cannot open page" error briefly, then falls backFalls back silently via browser_fallback_url
App not installed (universal link)Opens web URL in Safari directlyN/A, Android uses intent URLs
In-app browser (Instagram, Twitter, LinkedIn)Native app routing often blocked, falls back to webSame, in-app browsers intercept
Private/incognito modeUniversal links still work; URI schemes workIntent URLs still work
Search engine crawlerPlain 302 to web URLPlain 302 to web URL

The in-app browser problem

The single most common deep-link complaint is: "I tapped the link inside Instagram and it didn't open the YouTube app, it opened YouTube in Instagram's in-app browser." This isn't a Flyn bug; it's Instagram's in-app browser intercepting the link. Most major social apps do the same on both iOS and Android, and there's no reliable client-side workaround.

The mitigation: Flyn detects the in-app browser via User-Agent and serves the plain web URL directly, so users at least get the mobile web experience instead of a confusing redirect chain. When the user later opens the same link in a real browser (e.g. by tapping "open in Safari" from Instagram's menu), the deep-link logic kicks in normally.

iPad and tablet handling

iPad and Android tablets count as mobile devices for routing purposes. Universal links work on iPad if the iPad version of the app is installed. Some apps (like Instagram) don't ship an iPad-native build, so the universal-link miss falls back to the web URL. Again, no client-side workaround, but the fallback is graceful.

The 1.5-second fallback timer

For platforms using URI schemes (rather than universal links), Flyn's redirect page tries the URI scheme immediately and starts a 1.5-second JavaScript timer. If the app opens, the user is taken there and the timer never fires. If the app isn't installed, the timer redirects to the web URL. 1.5 seconds is long enough that the OS has time to launch the app even on a slow device, but short enough that an uninstalled-app user doesn't feel the wait. To route the same link by country as well as device, see our guide to geo-targeting links by country.

How It Works Under the Hood

When a request hits a deep-linked Flyn short link, the redirect server runs a five-step decision tree. Understanding it makes debugging trivial.

Step 1: User-Agent classification

The server parses the User-Agent header and classifies the request as one of: iOS mobile, iPadOS, Android mobile, Android tablet, desktop browser, in-app browser (Instagram, Facebook, LinkedIn, TikTok), or crawler (Twitterbot, facebookexternalhit, LinkedInBot, Googlebot, etc.).

Step 2: Crawler short-circuit

If the request is from a crawler, the server returns a plain 302 Found to the destination URL. This ensures social link previews, Open Graph tags, and SEO crawlers see the canonical destination, exactly the same content they'd see for a non-deep-linked short link. Verify with the Open Graph checker if you're paranoid.

Step 3: Desktop short-circuit

Desktop browsers get a plain 302 too. There's no native app to route to on macOS or Windows, opening the link in Chrome or Safari is the right behavior.

Step 4: Mobile routing

For real mobile users (not in-app browsers), the server returns a lightweight HTML page (~3KB, no external resources, inline CSS). The page contains:

  • A <meta http-equiv="refresh"> tag with the URI scheme URL, fires immediately
  • A small inline <script> that also attempts window.location = 'youtube://...' as a belt-and-suspenders
  • A 1.5-second setTimeout that redirects to the web URL if the app didn't open
  • A visible "Opening app..." spinner so users who do see the page briefly understand what's happening

Step 5: In-app browser fallback

If User-Agent matches a known in-app browser, the server skips the URI scheme entirely and serves a 302 to the destination web URL. Trying to deep-link from inside Instagram's in-app browser only confuses users and breaks the flow.

The best deep-link implementation is the one users never notice. If your subscriber taps a link in Slack and the YouTube app opens to your video, that's the goal. No "did this work?" moment, no fallback page, no spinner. Just the native app, ready to play.

Compatibility with Other Flyn Features

Deep linking composes with everything else Flyn does. The redirect engine evaluates features in a deterministic order, so there's no surprise interaction.

The evaluation order

  1. Bot detection, bot requests get a clean 410 Gone; they're excluded from analytics (see click fraud prevention)
  2. Geo / device routing rules, if you've set up region-specific destinations, the matching destination is picked first
  3. A/B testing splits, the traffic split is applied to the destination, picking variant A or B
  4. Password gate, if a password is set, the user sees the prompt; on success, the redirect continues
  5. Expiration check, if expires_at has passed, the user sees the "link expired" page; otherwise, continue
  6. Deep link routing, the final destination URL feeds into the deep-link logic described above

Analytics behavior

Every click on a deep-linked short link is recorded in Flyn analytics with the same fidelity as any other click: geo, device, OS, browser, referrer, UTM. You see exactly which deep-link opens are from iOS vs Android, which platforms get the most native-app traffic, and which links have unusually high in-app browser ratios (a signal the link is getting shared inside social apps).

Custom OG previews still work

Because crawlers get a plain redirect, your destination URL's Open Graph tags (title, description, image) are what social platforms render in preview cards. The deep-link redirect is invisible to them. If you want to validate that your previews look right, run the destination URL through the Open Graph checker. It tests the exact response Facebook, Twitter, and LinkedIn see.

Watch out

Don't combine deep linking with link cloaking on the same short link, the cloaker frames the destination in an iframe, which prevents URI schemes and universal links from firing. Deep linking is for native-app routing; cloaking is for white-labeling display. They're mutually exclusive. If you need both, use two short links pointing at the same destination.

What is deep linking?

Deep linking is sending someone to a specific place inside an app instead of to a website or the app's home screen. A normal link opens a browser. A deep link opens the YouTube app on the exact video, the Instagram app on the right profile, or your own app on the screen the user expected. The "deep" part means it reaches a precise destination, not just the front door.

The three flavors

  • URI scheme links such as instagram://user?username=flynlinks: the oldest method, fast but they fail silently when the app is not installed.
  • Universal Links (iOS) and App Links (Android): standard https:// URLs the operating system routes into the app when it is installed, and to the web when it is not. The modern default.
  • Deferred deep linking: the intended destination survives an app install, so a brand-new user still lands on the right screen after downloading.

You do not have to hand-write any of this. Build one with the deep link generator, confirm exactly where it lands with the deep link tester, and see the routing details in the deep links docs.

Frequently Asked Questions

What happens if the user does not have the native app installed?
Flyn's deep-link redirect tries the native app's URI scheme first, then falls back to the web URL after ~1.5 seconds if the app didn't open. On Android, the intent URL's built-in browser_fallback_url handles this silently; on iOS, a JavaScript timer fires the fallback. No broken experience, no error page, just the mobile web version of the destination, which is the same thing the user would have seen without deep linking enabled.
Do Deep Links affect my click analytics?
No. Every click on a deep-linked short link is recorded with the same data Flyn captures for any other click, country, region, city, device, OS, browser, referrer, UTM. You see the same dashboard. The only difference is you can now segment by "user landed in native app vs mobile web" via the User-Agent breakdown, which often reveals which platforms drive the most engaged audience.
Do Deep Links work on desktop browsers?
No, by design. Desktop users always receive a standard 302 redirect to the destination web URL, there's no native app to route to on macOS, Windows, or Linux. Search engine crawlers (Googlebot, Bingbot) and social media crawlers (Twitterbot, facebookexternalhit, LinkedInBot) are also served plain redirects, so SEO and link previews are completely unaffected.
Can I use Deep Links with A/B testing or password protection?
Yes, Flyn evaluates features in a fixed order. Traffic-split A/B tests run first, so the winning variant's destination feeds into the deep-link logic. Password gates fire before the redirect, so users still see the password prompt; on success, the deep-link redirect continues. Expiration is also checked before deep-link routing. The one combination to avoid is deep linking with link cloaking, cloaking frames the destination in an iframe, which blocks URI schemes from firing.
Which platforms support Flyn Deep Links?
YouTube, Instagram, TikTok, Twitter/X, Spotify, LinkedIn, Facebook, Reddit, Pinterest, WhatsApp, Telegram, Discord, Twitch, Amazon, GitHub, and Snapchat, 16+ at time of writing. Each pairs naturally with its dedicated platform shortener (YouTube, Spotify, TikTok, Instagram) for pre-validated destination handling. New platforms ship regularly based on user feedback, email the team if you need a specific one.
Do social media link previews still render correctly with Deep Links?
Yes. Flyn's redirect server detects social crawlers (Twitterbot, facebookexternalhit, LinkedInBot, Slackbot, Discord, etc.) by User-Agent and serves them a plain 302 redirect to the destination web URL. The crawler reads the destination's Open Graph and Twitter Card meta tags and renders the preview just as it would for a non-deep-linked URL. You can verify previews with the Open Graph checker or the redirect checker before publishing.
Why does my deep link sometimes open in the Instagram in-app browser instead of the YouTube app?
Instagram, Facebook, LinkedIn, TikTok, and several other social apps include their own in-app browser that intercepts taps on outbound links. The OS never gets a chance to route the URL to a different app. The in-app browser handles it directly. Flyn detects these in-app browsers via User-Agent and skips the URI scheme step entirely (it would only confuse users), serving a plain mobile web redirect instead. To work around this on Instagram, users can tap the menu (three dots) and choose "Open in browser" or "Open in Safari", which then triggers the deep-link routing normally.
How do I test what my deep-linked short link will actually do on different devices?
Use the deep link tester, paste your Flyn short link and it shows exactly what response the server returns for iOS Safari, Android Chrome, desktop Chrome, and major in-app browsers. It also surfaces the URI scheme being attempted, the fallback URL, and any bot-detection or crawler-handling logic. Catches misconfigured links before you publish them. For a deeper analytics view, the redirect checker traces the full redirect chain step by step.
What is deep linking?
Deep linking sends a user to a specific location inside an app rather than to a website or the app home screen. A deep link can open the YouTube app on an exact video, Instagram on a profile, or your own app on a particular screen. There are three kinds: URI scheme links (app://...), Universal Links on iOS and App Links on Android (standard https URLs the OS routes into the app), and deferred deep links that survive an app install so a new user still lands in the right place. Flyn can wrap any short link with deep-link routing so mobile users skip the browser.

Ready to try Flyn?

Free plan includes 25 links/month, full analytics, and access to all 30+ free tools above. No credit card required.

Already a member? Log in

Karan Bhakuni
Karan Bhakuni· Founder, Flyn

Karan Bhakuni is the founder of Flyn. He writes about branded links, click analytics, and the link-management tooling growth teams and creators actually need, drawn from building Flyn and reading a lot of user feedback.