Guide to Deep Linking

2024-08-28 08:49:15 UTC

Deep Linking

The feature “Deep Linking” allows you to link through your website, push notifications, or your newsletter into the app on Android or iOS. This is an opportunity for you to drive potential new readers into the app, but while the feature sounds simple it has a lot of limitations and requires a lot of work on your side to get the most out of it. The instructions below will provide you with the information needed in order to start using the Deep Linking feature.

The creation of Deep Links requires knowledge of URL structure and web development, so we recommend that Deep Links to be implemented by a web developer or similar within your organization.

Disclaimer 

Deep Linking has a lot of restrictions, not because it's difficult to improve on the feature, but because it's impossible. 

  • The links are structured differently on the different devices, meaning that an Android link will look vastly different than an iOS link.
  • It is not a "smart" feature, meaning the links point to a destination, but the link doesn't know anything about the user's device. This means that if you are on an Android device, but click on an iOS link, the device doesn't recognize the destination and will show an error. 
  • Apple and Google implement security in different ways. Apple doesn't allow a webpage to know if a specific app is installed or not. This means that a link on an Android device to an Android app can open either the app or Google Play Store if the app is not installed. This is not possible on iOS (unless you use a Smart Banner, see the chapter further down this article).  
  • Most email apps and programs have a restriction to only allow secure types of links. This means that Deep Links into apps aren't allowed. We have ways to get around that, but that also requires some work. 
  • Podcast deeplinking is only possible if you have the Audio Universe and you can only link to a podcast channel, not a specific podcast episode. If your app only consists of parts of the Audio Universe (ie. only frontpage module), it will not work. ID need to be provided by Visiolink.

 

How to

Deep Linking is a custom link designed depending on platform and what it should link to. Here is an overview and then a more detailed description below. The process can be simpler depending on how you wish to use Deep Linking. 

  • Create Deep Links
    1. Android
    2. iOS (installed)
    3. iOS (not installed)
    4. Web
  • Restructure Link
  • Redirect page
  • Smart Banner
  • Test
  • Publish

Create Deep Links:

You need 4 different links to reach all relevant devices.

One link for web, pointing to your login page.

One link for Android. When the link is activated from an Android device, the script will figure out whether or not the app is installed on the reader’s device. If the app is installed, the app will open. If the app is not installed, Google Play will open with the opportunity to download the app.

Two links on iOS, because we are not allowed to ask the device, if a certain app is installed. This means that the user must actively choose between 2 links, to open the app or open App Store. It is possible to merge these 2 links in a Smart Banner (see Smart Banner). 

 

1 - Android:

Specific parameters are required depending on usage:

[URL_SCHEME] – URL scheme of your app. Will be provided to you by Visiolink.

[PREFIX_TITLE] – Prefix for specific title in your app. Can be found in Visiolink Publishing Hub.

[FOLDER_ID] - Folder ID for specific folder in your app. Usually a folder is a region. Can be found in Visiolink Publishing Hub.

 

prefix_folder_id_hub.png

 

[PACKAGE] – APP ID. Can be found in Google Play Console. Can also be provided to you by Visiolink.

[USER] – Username of user if you intend to log in with credentials. 

[PASS] - Password of user if you intend to log in with credentials.

[DATE] – Date of issue you want to link. If none specified, then latest issue is shown. Format: YYYY-MM-DD (example: 2023-08-29)

[PAGE] – Page of issue you want to link. If none specified, then front page is shown. Format: Integer

[VOUCHER] – Voucher code to login with the given voucher.

[KIOSKCONTAINER] – Used to specify tab at top tab bar. Will be numbers in ascending order, starting from 0 (which means 0 will open first item and 3 will open 4th item). Format: Integer

[VIEW] – Used to specify tab at bottom tab bar. Will be numbers in ascending order, starting from 0 (which means 0 will open first item and 3 will open 4th item). Format: Integer

 

was_android_items.jpg

 

[PODCAST_ID] – ID of the podcast channel you want to link to. Will be provided to you by Visiolink. You can not link to a specific podcast episode. 

 

Deep Link categories

There are three categories of Android deep links depending on the use case scenario. Pros and cons for each category are listed in the sections below.

 

1) <intent> Deep Links

Work on Android News Modules (all versions) and Android Classic (all versions)

 

Pros: 

  • Work in push
  • Can be used with newsletters: If you link from a newsletter or a website and the app is not installed they will go to Play Store

 

Cons: 

  • On a website they only work outside the app

 

 

To open the app

intent://reader/#Intent;scheme=[URL_SCHEME];package=[PACKAGE];end

Example:

intent://reader/#Intent;scheme=vlqa1;package=dk.visiolink.areader;end

 

To open the app and login with credentials

intent://reader/#Intent;scheme=[URL_SCHEME];package=[PACKAGE];S.username=[USER];S.password=[PASS];end

Example:

intent://reader/#Intent;scheme=vlqa1;package=dk.visiolink.areader;S.username= test@visiolink.com;S.password=guest;end

 

To open the app and login with voucher on specific title

intent://reader/#Intent;scheme=[URL_SCHEME];package=[PACKAGE];S.title=[PREFIX_TITLE]/[FOLDER_ID];S.catalog=[CATALOG];S.voucher=[VOUCHER];S.argument=open;end

Example:

intent://reader/#Intent;scheme=vlqa1;package=dk.visiolink.areader;S.title=visiolink/12345;S.catalog=1234;S.voucher=freeaccess;S.argument=open;end

Note: Voucher in deeplink only works on Android News Modules.

 

To open the latest issue of your publication

intent://reader/#Intent;scheme=[URL_SCHEME];package=[PACKAGE];S.argument=open;end

Example:

intent://reader/#Intent;scheme=vlqa1;package=dk.visiolink.areader;S.argument=open;end

 

To open the latest issue if more titles are in the app

intent://reader/#Intent;scheme=[URL_SCHEME];package=[PACKAGE];S.title=[PREFIX_TITLE]/[FOLDER_ID];S.argument=open;end

Example:

intent://reader/#Intent;scheme=vlqa1;package=dk.visiolink.areader;S.title=visiolink/12345;S.argument=open;end

 

To open a certain issue on a certain page

intent://reader/#Intent;scheme=[URL_SCHEME];package=[PACKAGE];S.date=[DATE];S.page=[PAGE];S.argument=open;end

Example:

intent://reader/#Intent;scheme=vlqa1;package=dk.visiolink.areader;S.date=2023-08-29;S.page=8;S.argument=open;end

 

To open a certain issue on a certain page if more titles in the app

intent://reader/#Intent;scheme=[URL_SCHEME];package=[PACKAGE];S.title=[PREFIX_TITLE]/[FOLDER_ID];S.date=[DATE];S.page=[PAGE];S.argument=open;end

Example:

intent://reader/#Intent;scheme=vlqa1;package=dk.visiolink.areader;S.title=visiolink/12345;S.date=2023-08-29;S.page=5;S.argument=open;end

 

To open app on a specific top bar item

intent://reader/#Intent;scheme=[URL_SCHEME];package=[PACKAGE];S.kioskcontainer=[KIOSKCONTAINER];end 

Example:

intent://reader/#Intent;scheme=vlqa1;package=dk.visiolink.areader;S.kioskcontainer=2;end 

Note: Deep linking to top bar items only works on Android News Modules.

 

To open app on a specific bottom bar item

intent://reader/#Intent;scheme=[URL_SCHEME];package=[PACKAGE];S.view=[VIEW];end 

Example:

intent://reader/#Intent;scheme=vlqa1;package=dk.visiolink.areader;S.view=2;end 

Note: Deep linking to bottom bar items only works on Android News Modules.

 

To open a specific podcast

intent://reader/#Intent;scheme=[URL_SCHEME];package=[PACKAGE];S.podcast=[PODCAST_ID];end

Example:

intent://reader/#Intent;scheme=vlqa1;package=dk.visiolink.areader;S.podcast=podcast2023;end

 

 

2) [URL_SCHEME] Deep Links

Work on Android News Modules (all versions) and Android Classic (all versions)

 

Pros:

  • Work in push
  • Work on a website inside the app (Including Google Ads)

 

Cons:

  • When deep linking within the app the app will reopen and show splash screen again



To open latest issue

[URL_SCHEME]://open/latest

Example:

vlqa1://open/latest

 

To open specific title

[URL_SCHEME]://open?argument=open&title=[PREFIX_TITLE]/[FOLDER_ID]

Example:

vlqa1://open?argument=open&title=visiolink/12345

 

To open latest issue on a specific prefix

[URL_SCHEME]://open/latest?customer=[PREFIX_TITLE]

Example:

vlqa1://open/latest?customer=visiolink

 

To open latest issue on a specific title

[URL_SCHEME]://open/latest?argument=open&title=[PREFIX_TITLE]/[FOLDER_ID]

Example:

vlqa1://open/latest?argument=open&title=visiolink/12345

 

To open issue on date and page

[URL_SCHEME]://open/?argument=open&title=[PREFIX_TITLE]/[FOLDER_ID]&date=[DATE]&page=[PAGE]

Example:

vlqa1://open/?argument=open&title=visiolink/12345&date=2023-08-29&page=6

 

To open issue on date and page with voucher

[URL_SCHEME]://open/?argument=open&title=[PREFIX_TITLE]/[FOLDER_ID]&date=[DATE]&page=[PAGE]&voucher=[VOUCHER]

Example: 

vlqa1://open?argument=open&title=visiolink/12345&date=2023-08-29&page=5&voucher=FreePaper

 

To open latest issue with credentials

[URL_SCHEME]://open/latest?username=[USER]&password=[PASS]

Example:

vlqa1://open/latest?username=steve&password=hunter2

 

To open podcast overview

[URL_SCHEME]://open?podcast=

Example:

vlqa1://open?podcast=


To open specific podcast channel

[URL_SCHEME]://open?podcast=[PODCAST_ID]

Example:

vlqa1://open?podcast=podcast2023

 

To open app on a specific top bar item

[URL_SCHEME]://open?kioskcontainer=[KIOSKCONTAINER]

Example:

vlqa1://open?kioskcontainer=2

Note: Deep linking to top bar items only works on Android News Modules.

 

To open app on a specific bottom bar item

[URL_SCHEME]://open?view=[VIEW]

Example:

vlqa1://open?view=2

Note: Deep linking to bottom bar items only works on Android News Modules.

 

 

3) [URL_SCHEME]internal Deep Links

Work on Android News Modules v.  3.22.04.13 and higher; do not work on Android Classic

 

Pros: 

  • Work in push
  • Work on a website inside the app (Including Google Ads)
  • When deep linking within the app the app will not reopen and show splash screen again

 

Cons:

  • Only work on Android News Modules v.  3.22.04.13 and higher; do not work on Android Classic

 

 

To open latest issue

[URL_SCHEME]internal://open/latest

Example:

vlqa1internal://open/latest

 

To open specific title

[URL_SCHEME]internal://open?argument=open&title=[PREFIX_TITLE]/[FOLDER_ID]

Example:

vlqa1internal://open?argument=open&title=visiolink/12345

 

To open latest issue on a specific prefix

[URL_SCHEME]internal://open/latest?customer=[PREFIX_TITLE]

Example:

vlqa1internal://open/latest?customer=visiolink

 

To open latest issue on a specific title

[URL_SCHEME]internal://open/latest?argument=open&title=[PREFIX_TITLE]/[FOLDER_ID]

Example:

vlqa1internal://open/latest?argument=open&title=visiolink/12345

 

To open issue on date and page

[URL_SCHEME]internal://open/?argument=open&title=[PREFIX_TITLE]/[FOLDER_ID]&date=[DATE]&page=[PAGE]

Example:

vlqa1internal://open/?argument=open&title=visiolink/12345&date=2023-08-29&page=6

 

To open issue on date and page with voucher

[URL_SCHEME]internal://open/?argument=open&title=[PREFIX_TITLE]/[FOLDER_ID]&date=[DATE]&page=[PAGE]&voucher=[VOUCHER]

Example:

vlqa1internal://open?argument=open&title=visiolink/12345&date=2023-08-29&page=5&voucher=FreePaper

 

To open latest issue with credentials

[URL_SCHEME]internal://open/latest?username=[USER]&password=[PASS]

Example:

vlqa1internal://open/latest?username=steve&password=hunter2

 

To open podcast overview

[URL_SCHEME]internal://open?podcast=

Example:

vlqa1internal://open?podcast=

 

To open specific podcast channel

[URL_SCHEME]internal://open?podcast=[PODCAST_ID]

Example:

vlqa1internal://open?podcast=podcast2023

 

To open app on a specific top bar item

[URL_SCHEME]internal://open?kioskcontainer=[KIOSKCONTAINER]

Example:

vlqa1internal://open?kioskcontainer=2

Note: Deep linking to top bar items only works on Android News Modules.

 

To open app on a specific bottom bar item

[URL_SCHEME]internal://open?view=[VIEW]

Example:

vlqa1internal://open?view=2

Note: Deep linking to bottom bar items only works on Android News Modules.

 

 

2 – iOS (installed):

Examples of links below. You need to fill in parameters unique for your app. Specific parameters are required depending on usage:

[URL_SCHEME] – URL scheme of your app. Will be provided to you by Visiolink.

[PREFIX_TITLE] – Prefix for specific title in your app. Can be found in Visiolink Publishing Hub.

[FOLDER_ID] - Folder ID for specific folder in your app. Usually a folder is a region. Can be found in Visiolink Publishing Hub.

 

prefix_folder_id_hub.png

 

[VOUCHER] - Voucher you want to login with.

[DATE] – Date of issue you want to link to. If none specified, then latest issue is shown. Format: YYYY-MM-DD (example: 2023-08-29)

[PAGE] – Page of issue you want to link to. If none specified, then front page is shown. Format: Integer

[KIOSKCONTAINER]- Used to specify tab at top tab bar. Will be numbers in ascending order, starting from 0 (which means 0 will open first item and 3 will open 4th item)..

[VIEW] - Used to specify tab at bottom tab bar. Will be numbers in ascending order, starting from 0 (which means 0 will open first item and 3 will open 4th item).

 

waz_ios_items.jpeg

 

[PODCAST_ID] – ID of the podcast channel you want to link to. Will be provided to you by Visiolink. You can not link to a specific podcast episode.

 

To open the app

[URL_SCHEME]://

Example

vlqa1://

 

To open the latest issue of your publication

[URL_SCHEME]://open

Example

vlqa1://open

  

To login with voucher and open the latest issue of your publication

[URL_SCHEME]://open?savedvoucher=[VOUCHER]

Example

vlqa1://open?savedvoucher=guest

 

To open the latest issue if more titles in the app

[URL_SCHEME]://open?title=[PREFIX_TITLE]/[FOLDER_ID]

Example

vlqa1://open?title=visiolink/12345

 

To open a certain issue on a certain page

[URL_SCHEME]://open?date=[DATE]&page=[PAGE]

Example

vlqa1://open?date=2023-08-29&page=8

 

Open a certain issue on a certain page if more titles in the app

[URL_SCHEME]://open?title=[PREFIX_TITLE]/[FOLDER_ID]&date=[DATE]&page=[PAGE]

Example

vlqa1://open?title=visiolink/12345&date=2023-08-29&page=8

 

To open app on a specific top bar item

[URL_SCHEME]://kioskcontainer?index=[KIOSKCONTAINER]

example

vlqa1://kioskcontainer?index=2

 

To open app on a specific bottom bar item

[URL_SCHEME]://view?index=[VIEW]

example

vlqa1://view?index=2

 

To open a specific podcast

[URL_SCHEME]://podcast?podcast=[PODCAST_ID]

example

vlqa1://podcast?podcast=podcast2023

 

 

 

3 – iOS (not installed):

Link to your app in App Store.

On iOS, we are not allowed to ask the device, if a certain app is installed. This means that the user must actively choose to open the app or open App Store. Visiolink will provide you with the correct link.

4 – Web:

Link to your login page.

Deep linking is not supported on Web so there aren’t the same functionalities as on Android and iOS. You still need to guide your users in the right direction, so we recommend adding a link to your login page.

Restructure link:

Most e-mail clients don’t allow complex links, so Deep Linking directly from an e-mail to an app isn’t possible (or is dependent on which e-mail client the user is using). To get around that limitation, you need to restructure the link to appear like a normal http link.

We recommend using an online tool to restructure the links, example: tinyurl.com. It's easy to use and solve the problem. 

Example: intent://reader/#Intent;scheme=vlqa1;package=dk.visiolink.areader; S.argument=open;end

Will get restructured to this: http://tinyurl.com/zsj743c

This isn’t necessary if you publish your Deep Link by other means than e-mail, like on your website or through push messages.

Redirect page:

If you don't want to use 3rd party tool, you can also create your own HTML redirect page which contain the Deep Link and link from e-mail to redirect page. This requires webhosting and a bit more work, but also create more possibilities with scripting. 

Here is an example of what a redirect page could look like:

  

A redirect page can also be smart and recognize what type of device you are on, redirecting you to a different link depending on your device. This will allow you to only show one link to the reader (the link to the redirect page) and the page will then forward the reader to the link being relevant. 

Here is an example of what a smart redirect page could look like:

a9251eb7a1c748102c53282aaeed07a1.png

Smart Banner

You can merge the two links on iOS (1 to the app, 1 to App Store) through a Smart Banner. This is only available through the Safari browser on an iOS device. The Smart Banner will link to the app or to App Store depending on the app is installed or not. Though it's a banner at the top of the website and not really a link.

Read more here: https://developer.apple.com/library/content/documentation/AppleApplications/Reference/SafariWebContent/PromotingAppswithAppBanners/PromotingAppswithAppBanners.html

 

IMG_1035.PNG

Test

It’s important to test Deep Links before you publish them. When writing code manually, a single typing error means that the link won’t work. Test the redirect page as well.

It’s easy to test Deep Links by writing the URL in a browser on the specific device. Android links will only work on android and iOS links will only work on iOS. 

Publish

You can now publish your Deep Links. If you publish through mail, remember to link to the redirect page instead of the Deep Link directly. You can also publish through push messages by following the guide here.

 

Was this article helpful?
0 out of 0 found this helpful
Have more questions? Submit a request

Comments