6 deep link tactics to drive traffic to your mobile apps
Many publishers have developed mobile apps that deliver a better user experience than their mobile websites. Getting people to use your app instead of your mobile website can increase user engagement with your publication. Using different deep linking techniques to link to content within your app is one way of increasing traffic to your mobile apps and establishing app reading habits with your users.
In an ideal world there should be no difference between an ‘app link’ and a ‘web link’, links should simply work no matter what device or platform you are using. The device should know whether to open the link in an app or in a website depending on the users preference. It should be possible to link from one app to another app or from a website to an app without knowing if the user has the app installed. There is currently no standardised way to do this but there are a number of ways this can be implemented.
Google, Facebook and Apple are among the many companies that have developed initiatives to improve deep linking and tackle some of these challenges. Here are some of the others mobile.deep.linking, SPARQ, AppURL, mURL.cc, appsfire, URX, Facebook applinks, Cellogic, Branch, Tapstream.
What is deep linking
In the context of mobile apps, deep linking consists of using a URL to link to specific content within an app.
In order for your app to respond to URL requests correctly you need to implement something called a URL scheme. You can specify the URL Scheme in your app and decide what content to display to the user once the link has been clicked on and the app opened.
For example, If you would like to view a specific twitter profile within the twitter app.
Twitter website URL: https://twitter.com/marvel
Twitter App URL: twitter://user?id=15687962
If you open the last link on a mobile that has the twitter app installed it should open the app on the Marvel Entertainment twitter page.
On Android, deep link information is passed to your app as part of intent data.
You can add an intent filter to your app, it defines how to access specific content inside your Android app.
One issue with deep linking to an app is the fact that you don’t know if the app is installed on the users device. The deep link to the app will only work if the app is installed. This URL scheme is also not standardised, so you need to know the syntax for a particular app URL to be able to link to content within an app.
Different ways to deep link to content within your app
- SmartApp banner
- Twitter Cards
- Linking from your website to your App
- Google App Indexing
- iOS 8 App extensions
Apple first introduced the concept of smart app banners in iOS 6. Smartapp banners provide a standardized method of promoting apps on Apples Appstore by displaying a banner at the top of websites loaded into Safari on iOS devices.
If the app is already installed on a user’s device, the banner intelligently changes its action, and tapping the banner will simply open the app. If the user doesn’t have your app installed on their device, tapping on the banner will take them to the app’s AppStore page.
Smart app banners are NOT displayed within webviews embedded into other apps such as the Facebook app. This means that any app that opens your website within a web view inside an app will not display the smart app banner.
Other browsers have not adopted this standard but there are ways to replicate the same look and behaviour on Android for example through the use of a jQuery plugin. There is however no option to deep link from the android plugin, it simply gives the user the option of opening the app.
Wouldn’t it be nice if a web URL posted to Facebook opened my app directly instead of my website within the Facebook app. App links: an open, cross platform solution for app-to-app linking developed by Facebook tries to solve this problem. Its a way of mapping URL’s to deep links. A standard way of describing how to deep link to content within your app when the user only knows the web url to the content. It basically tells any app that displays a link to your website what the corresponding app link is for the same web content.
You first have to add some meta tags to your website containing the URL scheme of your apps. An app that links to your website that follows the protocol will first check to see if the webpage has these meta tags. If it does the app will link directly to the content in your app as obtained from the meta tags. The webpage can optionally specify a fallback URL in a meta tag to simply open the original webpage if the app fails to open.
Facebook has additionally introduced its Index API, which allows developers to get deep links through Facebooks Graph API.
Its also possible for the app being opened to link back to the referral app making the whole process seamless. App links however only works from app to app, it doesn’t support linking from web to app.
Twitter cards allow users to promote their own app on their twitter feed. If the user doesn’t have your app installed a link to the appropriate Appstore will be displayed in the twitter card. If the user has your app installed you can deep link directly to the relevant content within the app.
You can enable cards for app installs by adding twitter footer tags to the markup on your webpage.
To be able to link from a webpage on a mobile device to an app it is beneficial to know whether the user has the app installed or not. A slight hack is to try link to your app once your website has finished loading. If the link doesn’t work then the app isn’t installed on the device, you can then fallback to just opening the webpage. If the app is installed the app is opened automatically when the user opens your website on a mobile device.
Another possibility is to give the user the option to download the app the first time they open your website on a mobile device. If they click on the link you can remember this option and choose to redirect the user to the app the next time they visit your website on a mobile device. Examples of this type of functionality can be seen in the Linkedin app and the Pinterest app on an iPhone.
On Android you can register your app to respond to the HTTP protocol and a particular domain using intents. When HTTP links are opened on the device either through a browser or though an app the operating system checks to see if there is an app registered to handle this particular URL. The user can decide whether to launch the browser or launch the app with the web URL. Your app will need to determine what content to show based on the HTTP URL that opens the app.
Google app indexing lets google index apps just like websites. Resulting in deep links to your Android app appearing in Google search results on mobile devices. If they have the app installed they will be sent directly to the relevant content within the app, if they don’t have the app installed they will be directed to your app download page on the Google PlayStore.
Extensions are a feature in the iOS8 update. iOS extensions are similar to Android intent filters, extensions among other things are an attempt at making third party apps talk to each other. There are a number of pre-set extension points that apple allow you to manipulate. ‘Share’ and ‘action’ extensions are the most relevant for this discussion. A share extension allows you to specify that your app can handle actions like posting of photos, links or other files from different apps. So for example you could create an extension for posting a photo to your app from the photos app. This could be a way to receive image and video tips from your users. Your app is basically telling the Operating System that it can receive photos. Any app using the default share dialog will display your app as an option to share with.
At the moment there is no standardised way across all platforms to achieve app to app communication or web to app communication but with the right mix of the deep link techniques outlined above you can funnel users into the right parts of your app and increase user engagement and traffic to your apps.
Recent posts in Android
- Async patterns on Android: Kotlin with coroutines
- Simplifying login with Googles smart lock for passwords and Apples shared web credentials
- Two way data binding without RxJava
- Async programming patterns in different languages
- How App linking in Android M and iOS9 will help to increase app engagement