How to Tune Mobile Ad campaigns using Lifetime Value

Dec 15

How to Tune Mobile Ad campaigns using Lifetime Value

When we are talking to “smarter” App companies, the conversation often turns to “where did the valuable users come from?”.

We’ve learned a lot from Apps that you’ve got good users and non-users – the latter are the people who:

Pie chart of disengaged users

Pie chart of disengaged users


Whilst you might be able to automate engagement with StreetHawk to the last 2 groups to re-engage them, the question that most App owners don’t know is how each of those user groups:

  1. cost to acquire?, and
  2. where did they come from?

The Long Journey to install

Getting people to engage with your App is way more challenging than just driving a user to a website. Here is how one attribution vendor, Appsflyer, talks about the journey:

  • Impression – The user’s first exposure to your App
  • Click – The User wants to know more and he’s directed to the App Store
  • Installation – User read the first few words of the description, rating and reviews and decided to give it a go.
  • First Launch – User remembered to launch your app
  • Conversion – Finally, the user is in your hands – do your magic.

But the reality is that “Conversion” is just the first step and just a vanity metric. For lovers of quantifiable metrics Dave McClures “AARRR!” is the way to go:

  • Acquisition – users miraculously installed from Appstore/Google Play App Page and started the App.
  • Activation – user has a happy experience in the App. Some sort of “Instant Gratification”
  • Retention – user comes back multiple times
  • Referral – they invite a friend
  • Revenue – they transact with you

So Appsflyer’s “Conversion” == McClures “Acquisition”


The first transaction

Most people run campaigns in Adwords, Facebook etc** and attribution tools like Kochava, Appsflyer & Tapstream can track to your first “goal” – this allows you to measure and identify which Ad Campaigns are reaching goals – in fact some Apps only pay their agencies for converted customers. A conversion goal is different from App-to-App but typical examples are:

  • an in-App purchase
  • a user registration
  • first bet in a gaming/gambling App

Capturing the first goal might be great if that delivers an ROI of the acquisition cost….but that is rare (i.e it can happen in gaming Apps often competition for acquisition pushes costs so even a first “bet” might not cover it).

For most Apps it’s about retaining the user long enough to get multiple contributions toward lifetime value.

Lifetime Value

My favourite mathematical assertions for startups or Apps is: CPA < LTV.

Which is “cost per acquisition” is less than “lifetime value”. Its true that this doesn’t solve cash flow problems if your LTV is only captured over 36 months and it ignores your operational costs – but it is proof you’ve got an eventually profitable business.

So driving down CPA whilst driving up LTV can be achieved by re-investing in the acquisition strategies that drive the best performing user segments.

What kind of Lifetime Value? (LTV)

There is at least 3 ways you can look at lifetime value:

  1. The user makes in-App or realworld purchases
  2. The user is engaged long enough (lets say a game) that there is indirect revenue – like app advert click-thru
  3. The user is enabling your marketing/acquisition strategy via:
    • Member-Get-Member invites/Fanout (I’ve written about this before here)
    • Social sharing of your App or content.
    • In B2B or B2E applications, they may be a recommender into their organization for others to come on-board. The best rockstar analogy (not a mobile App) is Yammer – who’s solution spread like wildfire in corporations because it was inherently viral.
    • Just plain word-of-mouth or other ways that drive up your Net Promoter Score.

Where to (re-)invest your acquisition efforts/cash

Ideally you launched with an Engagement Strategy*** and so you are already measuring and tagging users with attributes that matter – you did that right? 😉

Step 1: Segment your users…

….for whichever of these 3 ways you value your LTV. Based on your KPIs or key goals from your engagement strategy you might value “users who don’t spend money but share as having a particular value” – this is McClure’s Referral metric. (Quantifying that is a blog post in itself).

Step 2: THEN segment based on the acquisition channel

Do this based on an approach as follows. Your acquisition channels will be the Adwords Campaigns or Facebook campaigns or anywhere else you’ve been able to attribute an install.

EXAMPLE: Linking LTV to Acquisition Channel on AppsFlyer

Normally, in iOS you would track your App installs in AppDelegate.m like this:

- (void)applicationDidBecomeActive:(UIApplication *)application {    
        [AppsFlyerTracker sharedTracker].appleAppID = @"id123456789";
        [AppsFlyerTracker sharedTracker].appsFlyerDevKey = @"MY_DEV_KEY";
        [AppsFlyerTracker sharedTracker].delegate = self;
        [[AppsFlyerTracker sharedTracker] trackAppLaunch];

To access your advertising campaign data inside the App, you add****

-(void)onConversionDataReceived:(NSDictionary*) installData {
    id status = [installData objectForKey:@"af_status"];
    if([status isEqualToString:@"Non-organic"]) {
        id sourceID = [installData objectForKey:@"media_source"];
        id campaign = [installData objectForKey:@"campaign"];
        [StreetHawk tagString:(NSString *)sourceID forKey:@"source_media"];
        [StreetHawk tagString:(NSString *)campaign forKey:@"source_campaign"];
        NSLog(@"This is a non organic install. Media source: %@ Campaign: %@",sourceID,campaign);
    } else if([status isEqualToString:@"Organic"]) {
        [StreetHawk tagString:@"Organic" forKey:@"source_media"];
        NSLog(@"This is an organic install."); 

What your developer has achieved here is a link between the attribution event and the long term tracking of the user. Now you have something you can slice and dice where users “came from” and join that up with other segments or metrics in the future.

a very powerful way to know which advertising campaigns deliver better customers

Step 3: THEN track LTV performance per acquisition channel

If your App is:

  • B2B, then visualise a stack of LTV performance across all campaigns
  • B2C, then chart scatter plots of users according to your campaigns

For example, this shows the Monthly recurring revenue (MRR) for a B2B App.Each stack is an acquisition campaign (i.e Adwords campaign, Sponsored posts on LinkedIn,  Twitter or Facebook). Each slice in the stack in the MRR of a customer.

Campaign 2 performs 2X better than the nearest contender – this could be a different media or just a different campaign.

Campaign 2 also has larger slices – this indicates greater spend per customer. It could be that these customers are larger.

Note: This chart looks at installs that have converted to revenue, it does not represent:

  • first time conversion from an Ad.
  • tracking of installs that do not convert from trial/free level


Average MRR By Campaign B2B App

Step 4: Optimize (Rinse & Repeat)

Obviously Campaign 2 is worthy of doubling-down on: reinvestment in this campaign is likely to deliver quality customers.

Campaign 4 is also a candidate for tuning and optimization – clearly something is working and more importantly it has captured MORE paying customers – they are just paying less. It might be that this campaign attracts SMB/SME customers or there is some post install campaigns you could run to upsell them to a higher plan.



** The growth hackers amongst you might use other channels. This mantra applies (from Matt Barrie, CEO of “If you want hypergrowth, conventional marketing won’t get you there, because traditional marketing methods involves absolute, linear growth and not relative, exponential growth.”

*** What’s an Engagement Strategy? – This is where you have identified the KPI’s for your App Business Model and have a plan to engage and convert users accordingly. We think you should launch with such a plan – read more here.

**** WARNING: this is not the complete code, you’ll need to add code in AppDelegate.h for AppsFlyer (or your chosen tracking tool). More…

  Get our Referral Program Guide