Introduction


Deferred deep linking refers to the ability to direct a user to a specific view within a mobile app after downloading from an App Store. As an example, a user is checking their Facebook news feed when they see an ad to buy a pair of Air Jordans from the Zappos mobile app. They click on the ad, but they do not have the Zappos app installed on their phone. They are automatically redirected to the App Store to download the Zappos app. They open the app after installation and are greeted with the home screen of the app ... and that's it. Where are those Air Jordans they want? They would now have to go looking for that pair that caught their eye on Facebook. At this point Zappos is in danger of losing a conversion because the user may give up before finding those shoes. 


Enter deferred deep linking. With deferred deep linking enabled, the user is redirected to the exact pair of shoes they were interested in immediately after downloading and opening the app. The conversion is saved! Deferred deep linking is all about giving the user the best possible chance of converting by getting them closer to their goal as quickly as possible. 


Getting Deferred Deep Linking Setup in CAKE


Open a support ticket asking for deferred deep linking to be enabled in your instance. You will need to specify two things in this ticket:


1. Pick an "S" parameter in the CAKE tracking link that you will use to pass the name of your app views. You can choose from S2, S3, S4 or S5.

2. The name of the XML element that will contain the app views returned to the mobile app by CAKE upon install.


We will enable deferred deep linking in your CAKE instance and you will be able to start using this feature right away.


Example of Usage


Continuing with the Zappos example, let's say that they have specified passing the deep link view name in S5 on the click, and the view name returned in the XML element <dlink> to the app upon successful attribution.


Zappos runs a campaign on Facebook for Mens White Air Jordans. They are tracking their Facebook campaigns with CAKE and the ads are embedded with CAKE tracking links that would look like:


http://zaptrk.com/?a=10&c=235&s5=jordan-aj1-mid-mens-white

 


The user clicks this link, but because they don’t have the Zappos app installed yet, the OS will take them to the App Store to download the app. Once the user opens the app, the install event will fire to CAKE. CAKE will attempt to attribute this event to a click. If positive attribution is made, CAKE will return the following XML to the mobile app:


 

<?xml version="1.0" encoding="utf-8"?>
<result>
	<code>0</code>
	<msg>RECEIVED</msg>
	<dlink>jordan-aj1-mid-mens-white</dlink>
</result>

 


If using the CAKE SDK, it will perform a callback to a function specified by the developer responsible for redirecting the user to the referenced view. Please note, it is the responsibility of the app developer to physically move the user to the new view — we are simply making that view available to the main application.


Also note, our SDK is not required to leverage CAKE’s deferred deep linking capabilities. As usual, our SDKs are simply helper files that assist the app in communicating with CAKE. Developers are certainly free to author their own communication scripts however they would like. 


If you want to go even deeper with continuity of the user experience, you can pass additional attributes in the specified S parameter in a caret (^) separated list.


For instance, Zappos is running an ad for those Air Jordans, but the ad also contains a coupon code. They can just pass it along with the view like so: 


 

s5=jordan-aj1-mid-mens-white^JUMPMAN23

 


CAKE then responds to the install event sent from the app with: 


 

<dlink>jordan-aj1-mid-mens-white^JUMPMAN23</dlink>

 


Which can be separated out in an array (list) and pushed to the main application. 


 

["jordan-aj1-mid-mens-white”, “JUMPMAN23”]

 


Now the redirect function in the main application knows to take the user to the white Air Jordans and load the coupon code JUMPMAN23 on checkout.