Deferred Deep Linking - Getting the Conversion Data

Introduction

AppsFlyer allows you to access the user attribution data in real time directly at the SDK level. It enables you to customize the landing page a user sees on the very first app open after a fresh app install. This is commonly referred to as “deferred” deep linking. This is very common on the web, however there is a big challenge doing this in the mobile app ecosystem. Luckily, AppsFlyer provides support for all cases and platforms.

Important!

Sending a new app user to a deep link on install is very similar to using app deep linking custom URL Scheme (iOS, Android) for users that have already installed your app.

Example

Consider a user who has just clicked on a HotelTonight’s Google AdWords ad for a "Hotels New York" search. The user is first sent to Google Play/App-Store to download the app and upon first app open the user lands directly on the Hotels in New York page. By accessing the attribution data provided by AppsFlyer, the application will receive the exact campaign and keywords used to drive that user/install.

Besides the enhanced experience and improved conversion, this functionally enables sophisticated context based campaigns such as providing the user with a credit/bonus for installing and using the app. For example: Instead of Click to install campaigns to Install and get $50 credit for booking. These campaigns not only improve the click to install conversion, but also improve the conversion to paying users. These campaigns can improve overall ROI by 2X-5X!

AppsFlyer's NativeTrack™ SDK is performing server side tracking. That means that the conversion track is processed and available on AppsFlyer’s servers. Accessing the attribution data from AppsFlyer's SDK might take few seconds from the first app open.

Notes

According to Facebook's privacy policy, AppsFlyer (or any other 3rd party mobile measurement partner) cannot provide user-level attribution for Facebook installs unless you accept Facebook's Terms of Service. More info here. If you choose not to accept the Terms of Service, Facebook Mobile Ads installs are categorized as ‘Organic’ and you are unable to receive the user level data for Facebook installs. Accessing the attribution data to implement deferred deep linking is applicable for the user's first launch after the install. To implement deep linking for users who already have the app installed, see here.

Conversion data is not the ideal data API for storing users raw data in your backend. Click here for information about selecting the best data APIs for you.

SDK Implementation

Note

Supported by AF Android SDK 2.3.1.6 and AF iOS SDK 2.5.3.8 and above.

AndroidiOSUnity

OnInstallConversionDataLoaded has the attribution data of the install. You can use this function to:

Deferred Deep linking - customize your app’s landing page to user that had entered the app for the first time.

Get install attribution data for different events during the user's lifetime within your app

Example

A user downloads and launches your app for the first time after seeing your ad for red shoes on Facebook. To send the user directly to the red shoes page in your app, use OnInstallConversionDataLoaded

To access AppsFlyer's conversion data from the Android SDK implement the ConversionDataListener:

First Launch

The conversion data is sent from AppsFlyer's servers in real time to the newly installed app upon first launch. The SDK then stores this data in the app's cache memory (shared preference or userDefault).

With any following launch of the app the AppsFlyer's SDK reads the conversion data stored in the cache and doesn't query AppsFlyer's servers. Therefore, the conversion data ALWAYS returns the same values, whether on first launch or not.

To help developers use the conversion data on first launch only, AppsFlyer has added a parameter called is_first_launch in the conversion data response. is_first_launch is true (YES in Objective-C) on the app's first launch, and false (NO in Objective-C) afterwards. It is available on both Android (from SDK version 4.8.4) and iOS SDKs (from SDK version 4.8.2).

If you want to perform deferred deep linking on first launch only, do so after checking if is_first_launch is true.

Note

Since the conversion data is stored in the shared memory of the app, users may delete it if they clean the app's data. This causes is_first_launch to become true again. Therefore, following launches after app's data deletion are handled as first installs.

Available Keys in Attribution Response

The returned conversion data consists of ALL the parameters on the original tracking link and some additional server parameters created on the time of click or install.

Since the conversion data is reliant on the tracking link, it means that different sources and tracking links may produce different conversion data parameters.

The following function is called every time the app is launched:

onInstallConversionDataLoaded for Android

onConversionDataReceived for iOS

There are 3 possible outcomes depending on the type of the install:

Non-Organic Installs

Returns the original attribution data of the install (see the examples below)..

Note

The order of the keys may vary. Additional keys might be added without notice.

Facebook Install Example

Note

There is no tracking link for Facebook campaigns.

Deep Link parameters defined in Facebook campaigns are not available outside of Facebook. This includes the af_dp parameter, which holds the scheme path in the app. Therefore, to implement deferred deep linking, additional logic must be applied for Facebook campaigns. Use the Facebook data in getConversionData response, such as, campaign, adset, adgroup etc. to programmatically redirect your users.