One link for iOS and Android

Two store links in a bio is a small thing that quietly costs installs. Merging them is easy; doing it without losing attribution is the part worth getting right.

6 August 2026 by PAD team

The naive version

Detect the platform, redirect accordingly. Twenty lines and it mostly works:

const ua = navigator.userAgent;
if (/iPhone|iPad|iPod/.test(ua))      go(APP_STORE);
else if (/Android/.test(ua))         go(PLAY);
else                                 go(WEBSITE);

This handles the majority of traffic and fails on exactly the visitors you paid the most for.

Why it fails

Redirecting an iPhone visitor to apps.apple.com from inside Instagram does nothing, because Apple's redirect into itms-appss:// cannot be followed by a WebView. Your platform detection was correct and the tap still died.

So the branch has to be two-dimensional: which platform, and which browser.

The version that works

Fire the escape on page load rather than on a click, keep the fallback under a second, and show a manual button by about a second and a half.

Keeping attribution

Attach campaign parameters at the last step: ct for App Store Connect, referrer for Play. If you already run a tracker, point the escape at the tracker link instead of the raw store URL, and it keeps working as before.

Build or use

The logic above is maybe eighty lines. The reason we turned it into a service is not complexity but maintenance: the escape schemes are undocumented, platforms change them without notice, and the iOS 26 Facebook change broke detection for everyone who wrote this once and left it.

That is exactly what our links do, with a per-source breakdown of which taps arrived.

Create a link

Related