Overview

Deferred Deep Linking lets you safely use other marketing and communication channels such as email, SMS or social channels to target your users and direct them to relevant content or offers within your app. For example to send an SMS saying their order is out for delivery with a link to track the delivery in your app. Or, to send an email campaign with a time-limited special offer with a link to the product in your app.

The difference between a Deferred Deep Link and a regular deep link is that it handles the scenario where your user opens the link on a device that does not have your app installed. For example if they open your email on their laptop, no problem - they will be redirected to your web store. Or if they don't have your app installed when they open your SMS, no problem - they will be redirected to the App Store to download your app. Then when they open your app, they can be taken straight to the page to track their delivery. Thus, deferred deep links are a great way to promote and acquire new users for your app.


Getting Started

To use Deferred Deep Linking, you need to enable the messaging feature for your app. You then need to configure three things:

  1. The subdomain you want to use for your Deferred Deep Links? E.g. cloudburger.lnk.click
  2. The URLs for your app listing in the App Store and Play Store (if your app is not installed)
  3. iOS and Android platform specific settings (so the operating system will open your app)

Select your app, expand 'Messaging', click 'Configuration' and then the 'Deep Linking' tab to start.

Subdomain

Enter the subdomain (of the lnk.click domain) that you want to use for your Deferred Deep Links. This must match the domain you set in the Associated Domains capability in your Xcode project.

Subdomain

iOS Platform Settings

To use Deferred Deep Links with your iOS app, toggle the switch next to iOS Config on. Enter the URL to your app in the App Store, the Bundle ID for your app and your Apple Developer Account Team ID (which can be found in the Apple Membership Section).

iOS Config

Android Platform Settings

To use Deferred Deep Links with your Android app, toggle the switch next to Android Config on. Enter the URL to your app in the Play Store, the Package for your app and the colon separated, SHA256 signing certificate fingerprint(s).

Android Config

Click 'Configure' once done.

SDK Integration

Now follow the instructions in the iOS and Android SDK integration guides to implement deferred deep linking in your app.


Creating a Deferred Deep Link

To create a deferred deep link, select your app, expand 'Messaging', select 'Deep Links' and then click the primary action button.

First, enter a title for your link. This will be used as the friendly name in the UI, the title of the landing page, and as the basis of the slug which you can override.

Deep Link Title and Slug

Next, enter the fallback URLs that should be offered to a user who clicks the link on a desktop/laptop computer. You can optionally provide a different URL to offer to users who click the link on a mobile device that does not have your app installed (should they choose not to install it).

Deep Link Fallback URLs

Enter any data that should be made available to the app when a user clicks the link. For example: which screen to open, product to display, discount code etc.

Deep Link Data

Add a description to the landing page for users who follow the link but don’t yet have the app installed.

Deep Link Description

Optionally, you can add an image to display on social media cards. click 'Choose Image' to open your Media Library. Here, you can upload a new image, select an image you have previously uploaded or search the Unsplash stock image library.

To upload a new image, click the upload primary action button. Click 'Choose File' to browse your computer and find the image. Select any tags to help you find the image later or to add a new tag, just start typing and click 'Create new tag'. Click 'Upload' to add the image to your media library.

To use an image you have previously uploaded, simply select the image and click the tick primary action button. You can either scroll through your library or filter by the tags you have added previously.

To use an image from the Unsplash stock image library, click the 'Stock' tab and enter one or more keywords in the search box. Scroll through the results and select an image to see more information about it. Once you have found the image, click the camera primary action button to add this image to your media library.

To remove the image from your social media card, click 'Clear Image'.

Deep Link Social Media Card Image

If your deferred deep link is for a limited promotion (e.g. first 500 users to respond or for the month of August only), you can enter the limit and/or expiry date and time here. Your deep link will still work but will report that the link is expired for your app developer to handle appropriately.

Deep Link Limits and Expiry

When done, click 'Add' to create your deferred deep link.

Create a Deferred Deep Link

Click the share icon to copy your newly created link to the clipboard for use in an email, SMS or social campaign.

Copy Deferred Deep Link

We do not recommend sending your deep link via any service that applies click tracking as this may prevent the deep link from functioning correctly.


Testing a Deferred Deep Link

To view the landing page that users will see if the click the link on a device that does not have your app installed, simply open the link in the browser on a device that does not have your app installed.

Deep Link

Please contact support if you want to apply your own brand assets to your landing page.

Attribution

If you then install the app from the store, you can check that the install has been attributed to the link in the install explorer. Select the app and then click on the 'Installs' tab. This will show the most recent installs of your app. Expand the details of your new install and verify it is your device (model, location, timezone etc).

Now click on the user tab to see the acquisition source for the install.

Deep Link Acquisition Source


Viewing Opens and New Users

To see how many users have clicked on your deep link, select your app, expand 'Messaging' and select 'Deep Links'. Your Deferred Deep Links are grouped into 'Promotional Links' created via the console and 'Transactional Links' created via API.

View Deferred Deep Link

For each link, you can see how many times the landing page has been viewed (if a user opened the link on desktop/laptop computer or a device that does not have the app installed), how many times the link has been opened (in the app) and of these, how many new users did you acquire for your app from this link, which will be listed as the acquisition source for each new user in the Install Explorer .

Expand the link to see the data and content (title, description and social media card image). Click the share icon to copy your newly created link to the clipboard for use in an email, SMS or social campaign. Click the trashcan icon to delete your link.


Deferred Deep Linking API

Kumulos has a RESTful API that allows you to create deferred deep links from any other backend system.

Headers

Please ensure that you set the following headers in your request:

Content-Type: application/json
Accept: application/json

Authentication

The Kumulos Messaging API authenticates other back-end services via HTTP Basic Auth using your app's API Key as the username and your Server Key as the password (in the Authorization header). Both of these are available from the App Dashboard in your Agency Console.

POST https://links.kumulos.com/v1/deep-links

You can create upto 500 deferred deep links per API request.

Payload

[{
  linkData: {
    Required, an object of arbitrary data about this deep link that will be returned to your app when the deep link is matched.
  }
  desktopWebFallbackUrl: Required, a fallback url for the landing page when consuming a deferred deep link, allowing the user to view the content without installing the app.
  mobileWebFallbackUrl: Required, a mobile friendly fallback url for the landing page when consuming a deferred deep link, allowing the user to view the content without installing the app.
  slug: Optional, the url path to use for the deeplink, if provided this must be globally unique for your app, if not provided Kumulos will generate one.
  content: { Optional
    title: Optional, used as the title used on the jump page.
    description: Optional, used to provide context on the jump page
  }
  reportingMeta: {
    Optional object of arbitrary meta-data about this deep link
  }
  expiresAt: Optional, datetime that the link will expire at, this should be provided in UTC time or with its UTC offset in the ISO 8601 format, for example 2020-10-27T07:00:00+00:00
  lookupLimit: Optional, number of times the link can be matched before being reported as having exceeded its limit.
}]

Expiry and limits will both still allow users to follow the link and download your app, but will be reported to the SDK as either expired or limit exceeded so that your app can handle this.

Sample cURL

curl -X POST
    -H "Content-Type: application/json"
    -H "Accept: application/json"
    -u API_KEY:SERVER_KEY
    -d '[{
  "slug": "my-deep-link",
  "linkData": {"my":"data"},
  "desktopWebFallbackUrl": "https://www.kumulos.com/my-deep-link",
  "mobileWebFallbackUrl": "https://m.kumulos.com/my-deep-link"
},{
  "linkData": {"key":"value"},
  "desktopWebFallbackUrl": "https://www.kumulos.com/deep-link-2",
  "mobileWebFallbackUrl": "https://m.kumulos.com/deep-link-2"
}]' "http://links.kumulos.com/v1/deep-links"

Responses

401 Unauthorized

Your request was rejected because the authorization header was not provided or poorly formed. Check your API Key, Server Key and that you have followed the HTTP Basic authentication strategy.

422 Unprocessable Entity

Your request was either unparsable / invalid JSON, was missing required fields, or had provided invalid values for a given key.

The response body will return a JSON object describing what keys were not present or had invalid values.

200 OK

Your request was accepted and processed.

The response body will contain a JSON array reflecting each deep link that was created as a result.

    [{
      "id": 1,
      "url": "https://deeplinks.lnk.click/my-deep-link"
    },{
      "id": 2,
      "url": "https://deeplinks.lnk.click/6b06b0153d291512fdc5bbc8f6e64e86"
    }]

Reporting Meta-Data

When creating a deep link, you may wish to associate meaningful meta-data with it. This meta-data will be reflected in the data field of any events generated as a result a user's interaction with the link.

For example, if you wanted to send a campaign identifier, you could add the following to the request:

{
  ...
  "reportingMeta": {
    "campaign": "Summer Promotion"
  }
}