TikTok link opens the App Store, or nothing at all

Two complaints, opposite causes, same wording in search. One is a broken universal link, the other is TikTok's browser refusing to hand the tap over. Telling them apart takes about ten seconds.

5 August 2026 by PAD team. Failure rates measured on 730 routed taps.

Which of the two problems you have

Open your link in Safari, typed by hand, on an iPhone that has your app installed.

If Safari opens your app, the link is fine and TikTok is the problem. If Safari also lands on the App Store listing rather than the app, your universal links are broken and TikTok is not involved at all. That single test saves an afternoon.

The rest of this covers the first case. The second one is a different fix, and it lives in the universal links write-up.

What TikTok's browser does

Like Instagram and Facebook, TikTok opens links in a WebView it controls rather than in Safari. That WebView renders pages normally, and fails at the one thing a store link needs: handing a custom URL scheme to another app.

When anything requests https://apps.apple.com/app/id123456789, Apple answers with a redirect:

→ 302 Found
  Location: itms-appss://apps.apple.com/app/id123456789

Safari closes the page and opens the App Store. TikTok's WebView has no handler for itms-appss:// and no permission to pass it on, so navigation stops. Nothing reports an error, because from the browser's side nothing failed.

TikTok is stricter than Instagram, by the numbers

Every route out of a WebView is undocumented, so the only honest way to compare platforms is to try all of them and count what got through. Our routing does that on every tap and reports when every automatic route was blocked and the visitor had to be shown a button.

SourceTapsEvery route blockedRate
Instagram24231.2%
TikTok20315.0%
Facebook1623521.6%
Regular browser30600%

Twenty TikTok taps is a small sample and we are not going to pretend otherwise. The ordering, though, matches what the platforms do elsewhere: Instagram exposes an escape scheme, TikTok and Facebook do not, and the numbers follow.

The practical read is that on TikTok you should plan for the fallback rather than treat it as an edge case. One tap in six or seven is going to see a button, so that button needs to look deliberate.

The routes worth trying, in order

1. The store scheme, requested directly

Rather than waiting for Apple to redirect you into itms-appss://, navigate to it yourself. Some WebView builds refuse the https URL and pass the custom scheme through.

itms-appss://apps.apple.com/app/id123456789

2. Android, where the mechanism actually exists

An intent:// URL names the target package and carries a fallback if it is missing. Android WebViews honour it, which is why this problem is overwhelmingly an iOS one.

intent://details?id=com.example.app#Intent;scheme=market;
package=com.android.vending;
S.browser_fallback_url=https%3A%2F%2Fplay.google.com%2Fstore%2Fapps%2Fdetails%3Fid%3Dcom.example.app;
end

3. A button, shown early

TikTok has no published equivalent of instagram://extbrowser. When the scheme hand-off does not fire, the only remaining move is to ask the visitor to open the page in their browser, through the three-dot menu.

Show it fast. Our own routing waits about 1.4 seconds on the strict platforms before rendering the button, and that is already at the edge of what people will sit through. A spinner that runs for four seconds converts worse than a button that appears in one.

Campaign tags: put them in the path

TikTok rewrites links it considers trackable, and query strings are where that happens. A parameter after the question mark can arrive stripped, doubled or reordered, particularly from a bio link.

The reliable pattern is to carry the campaign in the path and let your own server translate it into store parameters at the end:

https://gotoapp.store/yourapp/tiktok-summer
   ↓ your side turns the path segment into
https://apps.apple.com/app/id123456789?ct=tiktok-summer&pt=PROVIDER

Apple reads ct and reports it as the campaign in App Store Connect. Google Play reads referrer. Both survive the hand-off to the external browser, so escaping the WebView does not cost you attribution as long as the parameters are attached at the last step rather than the first.

What to do today

Our links do the routing above and report which taps escaped and which got stuck, so the failure rate stops being a guess. Free for three apps.

Create a link

Related