September 21st, 2015
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.
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.
Has app: Click -> Safari -> App opens
No app: Click -> Safari -> App store
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.
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.
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
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.
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.
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:
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:
Happy linking! Use the button below to get started.