Observers often con­tem­plate the night sky with the unaided eye, through tele­scopes, or by view­ing pic­tures or video; but some­times only a fully immer­sive expe­ri­ence will do. In these cases, we launch peo­ple into space with a rocket.  The NASA Space Shut­tle fleet (retired 2011) uti­lized 2.2 Mil­lion pounds of solid fuel AND 1.6 Mil­lion pounds of liq­uid fuel per launch to attain low-Earth orbit.  That’s a lot of bang for a space buck!

Just like view­ing space, some dig­i­tal expe­ri­ences are best accessed from the incred­i­bly rich, immer­sive plat­form pro­vided by mobile appli­ca­tions.  For­tu­nately for mobile mar­keters, there’s an equiv­a­lent rocket fuel for launch­ing users into low-App orbit.  Through app down­load and app launch cam­paigns, users can eas­ily be directed into an immer­sive app expe­ri­ence with a bit less than 3.8 mil­lion pounds of mar­ket­ing fuel.  For today’s post, I’ll be focus­ing specif­i­cally on app launch campaigns—directing users who have already installed your app to launch your app.

Why App Launch Cam­paigns?
At this point, you’re prob­a­bly won­der­ing why you would want to expend effort launch­ing users back into your appli­ca­tion once they’ve installed.  App launch cam­paigns may be appeal­ing for sev­eral rea­sons includ­ing the following:

  1. Increase in-app engage­ment for semi-loyal app users
  2. Pro­mote new app capa­bil­i­ties which improve user expe­ri­ence and value
  3. Seam­lessly move users between chan­nels as part of an inte­grated experience

Adobe Analytics app launch campaign

Let’s take a look at how Adobe uses app launch cam­paigns to re-engage app users (#1 above).  When users access Adobe Ana­lyt­ics from an iOS device, a ban­ner is dis­played prompt­ing users to launch the Adobe Ana­lyt­ics app if it’s already installed and to down­load the app if it’s not.

We’re using the Apple Smart App Ban­ner but I’ll also cover how to accom­plish a sim­i­lar effect using cus­tom url schemes as there are use cases smart app ban­ners won’t cover (e.g. email, push mes­sag­ing).  Prop­erly imple­mented, you can send users to a spe­cific loca­tion in your app as well as mea­sure the num­ber of app launches (and down­stream app engage­ment) that result from the campaign.

Steps to set up your app cam­paign
Let’s walk through the steps required to get your app launch cam­paign up and run­ning. Our exam­ple is sim­pli­fied so you may wish to ref­er­ence Apple doc­u­men­ta­tion on cus­tom url schemes and smart app ban­ners for more advanced deployments.

Note: while I haven’t included exam­ples for Android, a sim­i­lar effect may be achieved in Android appli­ca­tions by fol­low­ing the steps below (actual code will be slightly dif­fer­ent of course).

Step 1: Define a cus­tom URL scheme
If you’ll only be using Apple’s smart ban­ners, you can skip this step as cus­tom url schemes aren’t required.  Unfor­tu­nately, as of this writ­ing,  iOS 7 has an issue pass­ing through val­ues to your app when using smart ban­ners.  While you can still launch your appli­ca­tion from a smart ban­ner on an iOS 7 device, the app-argument value won’t be passed through, pre­vent­ing you from col­lect­ing cam­paign infor­ma­tion and push­ing users to a pre-defined loca­tion in your app. Depend­ing on your par­tic­u­lar use case, you may opt to use smart ban­ners for iOS 6 devices and cus­tom URL schemes for iOS 7 devices until Apple cor­rects the issue.

Work with your devel­oper to define a cus­tom url scheme and query string para­me­ters for your app launch cam­paign.  For this exam­ple, we’re using adobeanalytics://homescreen?campaign=app_launch.

The first part of the scheme [adobe­an­a­lyt­ics] noti­fies iOS which app to launch.  The [home­screen] por­tion allows you to pass addi­tional instruc­tions to the app about what to do after launch­ing, and the query string [campaign=app_launch] pro­vides the detail for attribut­ing app launches back to spe­cific cam­paigns in analytics.

Your devel­oper will now set up the ana­lyt­ics con­fig­u­ra­tion in the app to han­dle the cus­tom url scheme by select­ing the top-level project within Xcode > Info tab (in the main pane) > expand url types sec­tion > spec­ify url scheme.  The url scheme in the exam­ple [adobe­an­a­lyt­ics] tells iOS which app to launch.  You should be aware the cus­tom url scheme must be unique across all apps on the device, so it’s safest to use the bun­dle name.  The iden­ti­fier field is optional.


Step 2: Con­fig­ure your appli­ca­tion
Next, your devel­oper will add the appli­ca­tion open url method in your app del­e­gate so your app knows what to do when it sees the cus­tom url scheme or the smart ban­ner app-argument.  In this code we’re col­lect­ing the cam­paign query param and putting the value it holds into Con­text Data. You will also want to take some action in your app to adjust the in-app user expe­ri­ence based on the app launch cam­paign, but I’m not cov­er­ing that here.

Here’s our sam­ple code:

- (BOOL)application:(UIApplication *)application
          openURL:(NSURL *)url
sourceApplication:(NSString *)sourceApplication
       annotation:(id)annotation {

NSError *error = nil;
NSRegularExpression *regex = [NSRegularExpression 

NSString *campaignID = [regex 
  stringByReplacingMatchesInString:[url query]
                             range:NSMakeRange(0,[[url query] length])

   if ([campaignID length]) {
       [ADBMobile trackAction:@"app_launch" 
   return YES;

Step 3. Con­fig­ure & Val­i­date
In the admin con­sole, cre­ate a pro­cess­ing rule to pass the con­text data value you defined in step 2 into a vari­able for report­ing.  You can ver­ify the app is send­ing the data using Blood­hound; and you’ll also want to review the cor­re­spond­ing ana­lyt­ics report to val­i­date the desired report is receiv­ing data. I rec­om­mend enabling Cur­rent Data (if you haven’t already) to reduce the time it takes for  your test­ing data to appear in the report.

Example Processing Rule

Exam­ple Pro­cess­ing Rule

Bloodhound Validation

Blood­hound Validation

Reporting Validation

Report­ing Validation

Step 4: Set up your cam­paign links
Now you’re ready to add the cam­paign url any place you want users to be able to launch your appli­ca­tion (web, email, sms, QR).  Be sure to also pro­vide a way to down­load your app for users who don’t cur­rently have the app installed–this is done for you auto­mat­i­cally when using Apple’s smart app ban­ners.  Here’s sev­eral examples:

Sim­ple Web Link:
<a href="adobeanalytics://homescreen?campaign=app_launch_link">Launch Adobe Analytics</a>

Smart App Ban­ner:
<meta name="apple-itunes-app" content="app-id=673437000, app-argument=adobeanalytics://homescreen?campaign=app_launch_smart_banner">

QR Code:

In prac­tice, you’ll likely want to use a weblink that only redi­rects to the cus­tom url scheme if the app is installed rather than use the pure cus­tom url scheme in your web link, email, or QR code.  This will allow you to bet­ter sup­port cases where the reader does not have the app installed, is not read­ing the email in the native client, or is not view­ing the link from a mobile device.

What About More Advanced Use Case?
For those of you already using cus­tom url schemes and smart ban­ners, here are a cou­ple  con­cepts to con­sider for your next release:

  • deliver users into rel­e­vant con­tent within the app instead of drop­ping them on the homescreen
  • uti­lize Adobe Tar­get to cus­tomize and test app expe­ri­ences based on campaign
  • build app launch cam­paigns into social shar­ing workflows

For our Ana­lyt­ics app, we’re look­ing at ways to fur­ther uti­lize app launch cam­paigns from report links, emailed reports, alerts, and push mes­sages. A cou­ple use cases we’re explor­ing include (1) using the web client for deep-dive analy­sis and then push­ing the result­ing report into the ana­lyt­ics app on your iPad to present in a meet­ing (2) allow­ing users to add an emailed report directly into their app dashboard.

Remem­ber, while you can still see space with a tele­scope, sit­ting in the shut­tle is an immer­sive experience—there’s really no com­par­i­son. The same is true for apps—it’s time to launch your users into low-app orbit!


Wonderful article, Ed! It gave me the perfect balance of technical guidance and business insight! THANK YOU :)