Deep linking
Once you have carefully read the article List of Action URLs you will notice that Purple uses the following URL scheme for the internal usage of an action URL: "purple"
A fictitious action URL could therefore look like this: "purple://app/do_something"
At this point, there are two variants of executing a deep link in your Purple App.
The manual variant by the potential app user:
The potential app user taps on a deep link that is integrated into one of your websites, for example. This variant supports the fact that the app does not have to be installed.
The automatic variant delivers a deep link to the device, for example via push or in-app message.
For this variant, the app must already be installed and configured accordingly for the input channel used.
As an introduction, the following figure shows the very rough process of how a deep link is passed to your Purple App after the user tapped a deep link:
This feature relies on registering your Purple App with custom URL schemes in the operating system. This tells the operating system that this app can open deep links for the registered URL scheme.
iOS To read more about the Apple feature in detail, continue reading at official documentation: https://developer.apple.com/documentation/xcode/defining-a-custom-url-scheme-for-your-app
Android To read more about Android's feature in detail, continue reading at official documentation: https://developer.android.com/training/app-links/deep-linking
Create your custom URL scheme
Before we get into the example, let's start with a warning:
If multiple apps register the same scheme, the app the system targets is undefined. There is no mechanism to change the app or to change the order apps appear in a Share sheet.
To avoid this problem, after creating your app in Purple Manager, the default value is: "purple-your_app_package_name".
That way the scheme is unique since the package name is unique.
Example
If the package name of your app is "com.example.my_app", for example, the following scheme results with which your Purple App registers with the operating system: "purple-com.example.my_app"
The fictitious action URL mentioned above can thus be used as a deep link as follows: "purple-com.example.my_app://app/do_something"
Are you migrating your app to Purple and already have a custom URL scheme for your app, or just want to use a different URL scheme as Purple's default one?
You can configure this custom scheme in the Purple Manager:
"Your app" => "Basic Settings" => "General" => "Basic Settings" => "Deeplink Scheme Name"
This feature relies on registering your Purple App to use Universal links. This feature is for use in iOS only.
iOS To read more about the Apple feature in detail, continue reading at official documentation: https://developer.apple.com/documentation/xcode/allowing-apps-and-websites-to-link-to-your-content
Seamlessly link to content in your app or on your website. With universal links, you can always give users the most integrated mobile experience, even when your app isn’t installed on their device.
Quote from: https://developer.apple.com/ios/universal-links/
You can configure this in the Purple Manager:
"Your app" => "Basic Settings" => "iOS" => "Basic Settings" => "Associated Domain Prefix "
"Your app" => "Basic Settings" => "iOS" => "Basic Settings" => "Apple App ID Prefix"
"Your app" => "Basic Settings" => "iOS" => "Basic Settings" => "Deferred Deep Linking"
Do not be confused that one setting takes place under "Deferred Deep Linking".
Within your Apple Developer Account you have to configure your app to enable the capability:
"Associated domains"
Theoretically, content from your Purple App can be linked to your website using deep links. If a user clicks on such a deep link and the corresponding Purple App is installed, the content addressed opens. If the potential app user has not installed this app, this is usually a "dead end". With the deferred deep link feature, the deep link can still be evaluated after installing your Purple App and the app user opens it for the first time. This mechanism is currently supported by Purple itself and by Firebase Dynamic Links.
It is not recommended to use Firebase DL as it is deprecated and the service will be discontinued soon. There will be no replacement by Firebase itself.
Purple Manager
You can configure this in the Purple Manager.
Settings location
"Your app" => "Basic Settings" => "iOS" => "Basic Settings" => "Deferred Deep Linking"
Apple Developer Account
Within your Apple Developer Account you have to configure your app to enable the capability:
"Associated domains".
If your Purple App is already installed, the following channels for sending deep links can be used:
- Push messages
- In-app messages
These channels can be used but require the use of 3rd party SDKs.
Typically used to notify app users about breaking news articles.
May be used to reach inactive subscribers to make a discount on a subscription.
These 3rd-party SDKs support the input channels for deep links as follows:
SDK | Deep link via Push | Deep link via In-app message |
---|---|---|
Airship | yes | yes (by message center) |
Appboy (Braze) | yes | yes |
Firebase | yes | yes |