April 15th

Almost Viral: A Hybrid Acquisition Strategy

Two common acquisition strategies for a new application are a paid acquisition strategy and a viral acquisition strategy. The former involves acquiring users at a cost less than the revenue they generate. The latter involves users inviting their friends to the application.

“Going viral” has become a sort of holy grail and most people would say they’d rather have a viral application than not, but it has a distinct downside: uncontrolled growth and ever-increasing operational costs. By being almost-but-not-quite viral you can dramatically reduce your cost of acquisition without setting your servers on fire.

The Paid Strategy

The key variables for a paid strategy are cost of acquisition and average revenue per user, or ARPU. If your ARPU is greater than your cost of acquisition then you can buy as many users as your budget allows, reinvesting the new revenue into acquiring new users. Generally this is done by advertising your product through something like AdWords or Facebook’s Social Ads.

The best thing about a paid strategy is its relative simplicity. If your ARPU is $2.00 then you can run as many ads you want so long as the cost of acquisition is less than $2.00 and still be profitable.

Eventually, though, you will run out of ad inventory. There are only so many publishers who are willing to accept $0.10 per click. At this point your only options are to decrease your cost of acquisition1 or increase your ARPU.

The Viral Strategy

The viral acquisition strategy requires you get current users to invite other users to the application. The two key variables for the viral strategy are the average number of invites each new users sends and the rate at which those invites convert into new users.

The ratio of converting invites to new users is your viral coefficient, k. If this is greater than one you will see self-sustaining, viral growth.2 If the coefficient is less than one each user will bring in a fixed number of new users, but the application’s growth is still linear.

People who have decided on a viral acquisition strategy focus on this number obsessively. It’s the first big hurdle to clear and if you haven’t had experience engineering a viral application it can take months to build something viral.

But being viral isn’t an either-or proposition. Increasing your viral coefficient from 0.5 to 0.8 has other advantages, especially if you integrate it with a paid strategy. Let’s see how.

A Hybrid Strategy

Say you’re building a game on Facebook backed by a virtual currency. Users give you money or fill out offers to get coins, so you have a positive ARPU. This means you’re free to pursue a paid acquisition strategy.

On the other hand, you’re on Facebook, which has many viral hooks. Many of the technical hurdles are much smaller there, so it becomes more a question of design and optimization rather than implementation. At the very least you encourage players to invite their friends.

The first version of your application has a viral coefficient of k=0.5, that is, every new user who joins brings in 0.5 new users. Equivalently, for every two users you acquire you get one free.

That’s interesting, especially if you’re also paying for users. If you’re paying $1.50 per user then you paid $3.00 to get two users, but acquired a third user for free! This means that you effectively paid $1.00 per user: $3.00 paid / 3 users.

This process is actually geometric, however. If you purchased 4 users with a viral coefficient of 0.5, you’d first get 2 new users for free. These 2 new users would then bring in 1 additional user, for a total of 3 new users, reducing your cost of acquisition even further. This is an infinite geometric series, which I’ll outline below.

Having a non-zero viral coefficient reduces your effective cost of acquisition.

This means that you get more users for every dollar you spend on ads. Or, if you’ve run out of inventory, this means you can now spend more per user and retain the same net revenue level.

Let’s figure out how to calculate your effective cost per acquisition.

Effective Cost of Acquisition

If you just want the formula, here it is:

C' = C(1-k)

Where C is your cost of acquisition, k is your viral coefficient, and C’ is your effective cost of acquisition.

If k=0, i.e., you have no viral acquisition, then C’ = C.

If k = 1 and your application is viral then C’ = 0 and your application grows without spending any additional money. But rather than being an either-or proposition — you’re either viral or you’re not — there’s a sliding scale. The more viral you are the cheaper it is to acquire users.

The Benefits of Being Almost Viral

From the above formula, if you have a viral coefficient of 0.90 then you have reduced your cost of acquisition by 90%. This is a great situation to be in. You might ask, “Why wouldn’t I want go the last 0.10 and make my application viral?”

The one benefit of being viral is huge growth, which looks sexy on a graph and can tip an investor to your side if you’re looking for outside money, but the growth is unpredictable. Not only do you have little control over what demographics come to dominate your application, but sometimes it grows so quickly that you run into operational problems (servers on fire, etc.).

By being almost viral you can grow very cheaply, control your rate of growth and demographics, and get enough traffic to conduct meaningful experiments. Need to grow more slowly? Just decrease your daily ad spend. Need statistically significant results more quickly? Increase your daily ad spend.

Put another way, with a viral coefficient of 0.9 you’ve dealt with your acquisition risk. Rather than going fully viral and dealing with the operational difficulties, it might be worth your time to deal with other market risks: retention, engagement, and monetization.

So, stop sweating about “being viral.” Sometimes it’s better to be almost viral.

Deriving the Formula for Effective Cost of Acquisition

You can skip this and go right to the comments if you’re not interested in the math.

We have an application with a viral coefficient of k = 0.5. Every new user who joins brings in 0.5 new users. Another way of thinking of it is that for every new user who joins there is a 50% probability that he will bring in another user.

But this potential user also has a 50% chance of bringing in a new user, so the expected number of users is now 1 + 0.5 + 0.5*0.5. This continues ad infinitum.

Formally, if we acquire one user and have a viral coefficient of k then the number of users we expect to join is N(k), given by the formula

\displaystyle{N(k) = 1 + k + k^2 + k^3 + \cdots = \sum_{i = 0}^{\infty} k^i}

The initial 1 is our original user, whom we paid for, and each k represents the expected number of users from each step in the viral process.

This is a geometric series, so we know that

\displaystyle{N(k) = \frac{1}{1-k}}

Therefore, our effective cost of acquisition is

\displaystyle{C' = \frac{C}{N(k)} = \frac{C}{\frac{1}{1-k}} = C(1-k)}
  1. If you increase the conversion rates for your ads then you can pay more per click to get more impressions without hurting your bottom line — you pay the same to acquire a user, but get more users through the door. []
  2. See my article Three Myths of Viral Growth for more information about viral growth. []
  • Love this post...This is "social media porn"
  • Glad you liked it!

    I guess that makes me a social media pornographer?
  • Oddly, the last formula displays fine on Firefox when I load your page directly, but gives "This formula does not parse" when read through GoogleReader.
  • I originally published a version with a bad formula, so Google Reader probably cached that one.
  • Your math is right, and it is definitely helpful to increase k to reduce your effective CAC due to pass along growth. Higher is better, but I don't think that it makes sense to deliberately "aim" to get k to be below 1.

    If you can get k>1 you can always rate limit the speed at which you send notifications/invitations/whatever is your transport if you're crashing your servers. It's a lot harder to ratchet up k than ratchet it down.

    Also, for almost all apps, there is an effectively infinite amount of advertising inventory to help you acquire customers if you can hit the market clearing rate of CPI. That very much depends on your ARPU.

    As a result, you're better off focusing on lifting ARPU (or reducing churn) to increase LTV, and hence make sure that you can clear the market price for CPI
  • Jeremy,

    Thanks for taking the time to read my article and double-check my math! I really appreciate your insight.

    Your response gave me a few thoughts.

    First, fair point about market clearing price and CPI. How likely is it that you can hit that rate profitably, though? The top casual MMOGs are making like a $2 ARPU, right?

    Second, throttling messages isn't always possible. On Facebook, for example, user-to-user notifications, requests, and news feed items have to be sent as soon as the sender issues them. I'm thinking of the iLike story where they drove around SF picking up servers from everyone and their uncle.

    Still, you're right that this is probably the better solution for most people if they're just trying to keep the servers from starting on fire.

    Third, viral growth leads can lead to demographic problems, too, which throttling doesn't address. By definition a viral process selects the users who are best at propagating, not necessarily best at monetizing. Controlling demographics with viral growth is much harder than controlling demographics with paid acquisition.

    In any case it's something that needs to be understood, modeled, and tested.

    Even if you don't agree that intentionally being "almost viral" is a good way to grow — and I'm really just presenting it as a distinct strategy with its own set of tradeoffs — I think it's important to understand the tradeoff and how the viral coefficient interacts

    I couldn't find the formula I derived here anywhere else, so hopefully it helps someone!
blog comments powered by Disqus