Measuring link delivery rate
Every platform counts clicks. None of them counts arrivals, which is the number that decides whether the click was worth anything.
6 August 2026 by PAD team
The gap
A click is recorded when the tap happens. An install is recorded when the store transaction completes. Between them is a stretch nobody measures: whether the store opened at all.
In a normal browser that stretch is uneventful. Inside an in-app browser it is where a share of your traffic disappears.
How to instrument it
The escape either fires or it does not, and the page knows which. Report that back with a beacon before navigating away:
// after every automatic route has been tried and failed
navigator.sendBeacon('/hit/stuck', JSON.stringify({ token }));
// if the visitor then uses the manual button
navigator.sendBeacon('/hit/stuck', JSON.stringify({ token, recovered: 1 }));
Use sendBeacon rather than fetch, since the page is about to be replaced and a normal request gets cancelled.
What the numbers mean
| Reading | Interpretation |
|---|---|
| High escape rate, low install rate | the funnel or the product page, not the link |
| Low escape rate on one source | that platform's browser is blocking the hand-off |
| Escape rate falling over time | a platform changed something, usually silently |
The third row is the reason to keep measuring rather than checking once. Platforms change these behaviours without announcements, and the iOS 26 Facebook user agent change is a recent example.
What is normal
In our own traffic, Instagram taps escape automatically almost always, while Facebook needs the manual button several times more often, and TikTok sits in between. Those ratios move, which is exactly why the number belongs on a dashboard rather than in a document.
Our links report this automatically, split by source, so the gap stops being invisible.