In-app browsers in iOS 26

One quiet change broke detection code across the industry, and there was no announcement.

6 August 2026 ยท PAD team

The change

Some Facebook builds on iOS 26 stopped appending FBAV and FBAN to the user agent. Their WebView now presents a string indistinguishable from Safari.

Nothing was documented and no replacement marker was introduced. The first sign for most publishers was a drop in whatever metric depended on recognising that traffic.

Why it matters

Detection code written before the change classifies those visits as a real browser. That means it skips the escape sequence, sends the plain store link, and the tap dies on a blank page. The routing is technically working as written and failing in practice.

What to do instead

Treat an unmarked iOS visit as possibly in-app and run the escape anyway. In a real browser the first hop fails silently and the plain store link opens, so the cost of being wrong is nothing.

// combine signals rather than trusting one
const suspicious =
  typeof navigator.standalone === 'undefined' &&
  !/Version\/[\d.]+ Mobile.*Safari/.test(navigator.userAgent);

The broader lesson

Every escape route and every detection marker in this field is undocumented. They work until a platform decides otherwise, without notice, and the failure is silent on both ends.

That is an argument for measuring delivery continuously rather than testing once. A routing setup that reports how many taps escaped will show a change like this within a day. One that does not will hide it for months.

We track these changes so your links keep working when platforms move things quietly.

Create a link

Related