Observers often contemplate the night sky with the unaided eye, through telescopes, or by viewing pictures or video; but sometimes only a fully immersive experience will do. In these cases, we launch people into space with a rocket.  The NASA Space Shuttle fleet (retired 2011) utilized 2.2 Million pounds of solid fuel AND 1.6 Million pounds of liquid fuel per launch to attain low-Earth orbit.  That’s a lot of bang for a space buck!

Just like viewing space, some digital experiences are best accessed from the incredibly rich, immersive platform provided by mobile applications.  Fortunately for mobile marketers, there’s an equivalent rocket fuel for launching users into low-App orbit.  Through app download and app launch campaigns, users can easily be directed into an immersive app experience with a bit less than 3.8 million pounds of marketing fuel.  For today’s post, I’ll be focusing specifically on app launch campaigns—directing users who have already installed your app to launch your app.

Why App Launch Campaigns?
At this point, you’re probably wondering why you would want to expend effort launching users back into your application once they’ve installed.  App launch campaigns may be appealing for several reasons including the following:

  1. Increase in-app engagement for semi-loyal app users
  2. Promote new app capabilities which improve user experience and value
  3. Seamlessly move users between channels as part of an integrated experience

Adobe Analytics app launch campaign

Let’s take a look at how Adobe uses app launch campaigns to re-engage app users (#1 above).  When users access Adobe Analytics from an iOS device, a banner is displayed prompting users to launch the Adobe Analytics app if it’s already installed and to download the app if it’s not.

We’re using the Apple Smart App Banner but I’ll also cover how to accomplish a similar effect using custom url schemes as there are use cases smart app banners won’t cover (e.g. email, push messaging).  Properly implemented, you can send users to a specific location in your app as well as measure the number of app launches (and downstream app engagement) that result from the campaign.

Steps to set up your app campaign
Let’s walk through the steps required to get your app launch campaign up and running. Our example is simplified so you may wish to reference Apple documentation on custom url schemes and smart app banners for more advanced deployments.

Note: while I haven’t included examples for Android, a similar effect may be achieved in Android applications by following the steps below (actual code will be slightly different of course).

Step 1: Define a custom URL scheme
If you’ll only be using Apple’s smart banners, you can skip this step as custom url schemes aren’t required.  Unfortunately, as of this writing,  iOS 7 has an issue passing through values to your app when using smart banners.  While you can still launch your application from a smart banner on an iOS 7 device, the app-argument value won’t be passed through, preventing you from collecting campaign information and pushing users to a pre-defined location in your app. Depending on your particular use case, you may opt to use smart banners for iOS 6 devices and custom URL schemes for iOS 7 devices until Apple corrects the issue.

Work with your developer to define a custom url scheme and query string parameters for your app launch campaign.  For this example, we’re using adobeanalytics://homescreen?campaign=app_launch.

The first part of the scheme [adobeanalytics] notifies iOS which app to launch.  The [homescreen] portion allows you to pass additional instructions to the app about what to do after launching, and the query string [campaign=app_launch] provides the detail for attributing app launches back to specific campaigns in analytics.

Your developer will now set up the analytics configuration in the app to handle the custom url scheme by selecting the top-level project within Xcode > Info tab (in the main pane) > expand url types section > specify url scheme.  The url scheme in the example [adobeanalytics] tells iOS which app to launch.  You should be aware the custom url scheme must be unique across all apps on the device, so it’s safest to use the bundle name.  The identifier field is optional.

specify-url-scheme

Step 2: Configure your application
Next, your developer will add the application open url method in your app delegate so your app knows what to do when it sees the custom url scheme or the smart banner app-argument.  In this code we’re collecting the campaign query param and putting the value it holds into Context Data. You will also want to take some action in your app to adjust the in-app user experience based on the app launch campaign, but I’m not covering that here.

Here’s our sample code:

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

NSError *error = nil;
NSRegularExpression *regex = [NSRegularExpression 
  regularExpressionWithPattern:@"\\bcampaign=([^&]+).*"
                       options:NSRegularExpressionCaseInsensitive
                         error:&error];

NSString *campaignID = [regex 
  stringByReplacingMatchesInString:[url query]
                           options:0
                             range:NSMakeRange(0,[[url query] length])
                      withTemplate:@"$1"];

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

Step 3. Configure & Validate
In the admin console, create a processing rule to pass the context data value you defined in step 2 into a variable for reporting.  You can verify the app is sending the data using Bloodhound; and you’ll also want to review the corresponding analytics report to validate the desired report is receiving data. I recommend enabling Current Data (if you haven’t already) to reduce the time it takes for  your testing data to appear in the report.

Example Processing Rule

Example Processing Rule

Bloodhound Validation

Bloodhound Validation

Reporting Validation

Reporting Validation

Step 4: Set up your campaign links
Now you’re ready to add the campaign url any place you want users to be able to launch your application (web, email, sms, QR).  Be sure to also provide a way to download your app for users who don’t currently have the app installed–this is done for you automatically when using Apple’s smart app banners.  Here’s several examples:

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

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

QR Code:
qr-app-launch

In practice, you’ll likely want to use a weblink that only redirects to the custom url scheme if the app is installed rather than use the pure custom url scheme in your web link, email, or QR code.  This will allow you to better support cases where the reader does not have the app installed, is not reading the email in the native client, or is not viewing the link from a mobile device.

What About More Advanced Use Case?
For those of you already using custom url schemes and smart banners, here are a couple  concepts to consider for your next release:

  • deliver users into relevant content within the app instead of dropping them on the homescreen
  • utilize Adobe Target to customize and test app experiences based on campaign
  • build app launch campaigns into social sharing workflows

For our Analytics app, we’re looking at ways to further utilize app launch campaigns from report links, emailed reports, alerts, and push messages. A couple use cases we’re exploring include (1) using the web client for deep-dive analysis and then pushing the resulting report into the analytics app on your iPad to present in a meeting (2) allowing users to add an emailed report directly into their app dashboard.

Remember, while you can still see space with a telescope, sitting in the shuttle is an immersive experience—there’s really no comparison. The same is true for apps—it’s time to launch your users into low-app orbit!

1 comments
sarahemurphy75
sarahemurphy75

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