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.
| Source | Taps | Every route blocked | Rate |
|---|---|---|---|
| 242 | 3 | 1.2% | |
| TikTok | 20 | 3 | 15.0% |
| 162 | 35 | 21.6% | |
| Regular browser | 306 | 0 | 0% |
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
- Run the Safari test to find out which of the two problems you actually have
- If it is the WebView, stop counting raw clicks: a dead tap counts as a click in every ad dashboard
- Try the store scheme directly, and show a manual button within about a second and a half
- Move campaign identifiers out of the query string and into the path
- Expect roughly one TikTok tap in seven to need the manual route, and design that screen properly
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.