Aug 9, 2017

There's a problem with iOS 10.3 redirects: And Adjust has a fix for it

A new security feature introduced in iOS 10.3 has created a fractured user experience. Below we take a brief look at the problem, and how we've worked to solve it.

What's happened to iOS 10.3?

In a bid to add an additional layer of security, Apple introduced a mechanism which developers should be aware of. The process looks like this: if a user clicks on a link that points to the App Store, and is then redirected to Safari (this issue does not affect other browsers), a dialogue box is prompted:

Before the update, the browser would immediately send users to the App Store without confirmation. The modal above slows that smooth journey, with the intention of making users think twice about the link they just clicked.

A larger problem comes up if a user clicks 'Cancel'. If they do, they are not sent back to the previous page, but are stuck on a blank web page, and aren’t redirected elsewhere.

Later, if they click Cancel, then back, and click the link again, Safari will show an error message with no way to return to the App Store.

Adjust's solution

We’ve previously addressed this problem by redirecting to a fallback landing page using JavaScript, which then redirects to store automatically. In case a user clicks Cancel, we also render a download button pointing to App Store. This worked with clicks outside of Safari, and on versions on and above iOS 10.3.

Now, we’ve created an additional solution that goes beyond Adjust’s landing page. If you want the fallback to point to a specific landing page, then you can append `fallback_lp=xxxx` within the tracking URL. For example, this is what the link would look like with only the fallback parameter (assume your tracker token is “abc123” and your custom landing page is

(You’d need to encode your landing page url.)

You can still work with Adjust’s fallback as before. However, this fix provides extra customizability.

Additional information

Here’s how the solution works with regards to the different versions of iOS:

  • If the OS is lower than iOS 10.3, the store redirect functions correctly without a fix.
  • If the OS is on 10.3 and above, and if the click happens within safari (no matter if it has `fallback_lp` parameter), the user is redirected to store.
  • If the OS is on 10.3 and above, and if click happens outside of safari with no `fallback_lp` parameter included, Adjust renders the current landing page.
  • If the OS is on 10.3 and above, and if click happens outside of safari with the `fallback_lp` parameter included, then the click redirects to `fallback_lp`.

If you also want to redirect your users automatically to the app store you need to add the following JavaScript in your landing page, replacing `""` with your own store URL: