Best Practices for iOS 9 Universal Links – Deep Linking, Tracking, and Deepviews

iOS 9.0 brought a lot of really cool features, namely Universal Linking and Core Spotlight Search, that every mobile developer should be aware of and experiment with. However, with new features come complexity and misunderstanding, especially since these new features are rather complicated. Since we see thousands of apps struggling with Universal Links, we thought we’d write a post to provide some best practices when it comes to using Apple’s latest releases.

These best practices are especially important as Apple stopped recognizing URI schemes for deep linking, making Universal Links the standard in iOS 9.2. If you currently use URI Schemes for deep linking on iOS, make sure you understand how to transition to Universal Links so your app deep links properly on the latest iOS update. Don’t know if your domain is properly configured for Universal Links? Try our new Universal Links Validator to test your domain. 

iOS 9 Universal Links Best Practices

Universal Links have the potential to make the link clicking experience much more fluid for the user if they’re on iOS 9. Basically, it will bypass Safari if the app is currently installed. Here’s the flow in each scenario.

Regular Links

Has app: Click -> Safari -> App opens

No app: Click -> Safari -> App store

Universal Links

Has app: Click -> App opens

No app: Click -> Safari -> App store

Setting up Universal Links can be a nightmare, as it requires some complex work involving certification of your server’s domain, etc. However, if you use Branch, it can be simplified greatly. Our blog on how to set up Universal Links will walk you through the process.

Track All Clicks and Installs

While trying to increase app installs or engage your users, it’s critical that you measure the origin of each user. You need to know which channels are working best to drive users to your business so that you can improve and optimize your processes.

Once you’ve turned your Branch links into Universal Links, we provide all the app analytics you need.

set up Universal Links on iOS 9

Now that you’re tracking, let’s make sure you organize your data well. You don’t want the dashboard to turn into a pile of unlabeled clicks and installs. To do so, make sure to properly employ `channel`, `feature` and `campaign` with your own labels while creating links.

For example, to add a sharing feature to your app. You can use Branch’s UIActivityItemProvider which will automatically assign the `channel` after a user clicks on the corresponding channel (Facebook, Twitter, Copy, etc.) in the UIActivityViewController.

In the above example, we’ve configured the `feature` to equal `object_share` and the channel will automatically get the right channel after the user shares through the share view.

Share sheet for iOS 9 Universal Links

Configure Deep Link Routing

There are two ways that a user could enter the app after clicking a Universal Link:

1. If the app is installed, the link will open and call ‘continueUserActivity’ in the App Delegate

2. If the app was not installed, they can install it and ‘didFinishLaunchingWithOptions’

Ideally, if the user clicked your link, you want to route them to the correct page in either case. Out of the box, Universal Links will only handle case one, but you can use Branch to extend to case two and simplify case one.

First, register your deep link handler. This will be called every time the app opens, and will contain deep link data for case one and two when a link was clicked:

Then, make sure Branch receives the Universal Link data when the app is already installed:

It’s as easy as that! Now, when users click your links, you’ll route them to the correct place in the app immediately.

Use A Deepview For Mobile Web

Unless you are Facebook, not every user out in the world has your app installed. In fact, it’s more likely that they don’t. You must consider this user flow since it’s a critical part of user acquisition. Universal Links will automatically open up a mobile website when the app is not installed, so you need to be sure to deliver a high-quality user experience in this case.

You have two options:

1. Build a mobile website and deliver a user there

2. Use a Branch Deepview as a mobile website

We recommend using Branch Deepviews since they are mobile optimized and give you full tracking from click -> view -> install. They also require absolutely zero additional code once you’ve already set up deep linking with Branch. In addition, they’ve been shown to yield very high conversions to new installs. Cole Haan uses Branch Deepviews for their Universal Links – here’s a sample screenshot that the user would see when clicking one if Cole Haan was not installed:

Deepview on iOS 9 with Universal Link

This type of Deepview typically yields click to install conversions of greater than 20%! Whereas, the alternative of taking the user straight to the App Store when the don’t have the app will typically convert at less than 5%.

To enable Deepviews, just head to the Branch dashboard toggle the iOS Deepview template like so:

Set up DeepviewsHappy linking! Use the button below to get started.