The Four Viral App Objectives (a.k.a., “Social network application virality 101″)
January 15, 2008 — yeeguy
A lot of folks have asked for more details on the way we measured and optimized viral app growth in the Stanford class I co-taught recently. So here’s a bit more info on methodology for measuring virality and what it means for an app to “go viral.”
K-factor and R-zero
Terms like “K-factor” (contagion) and “R-zero” (reproduction rate) are often used to describe the growth rate of viral apps. These terms come from the fields of medicine and biology — they’re originally intended to describe the spread of of viral diseases, but they’re nice analogies for how web/SN apps grow. Some would even describe widgets and apps as “diseases” that have “corrupted” popular social networks like MySpace and Facebook! Of course, having worked at Slide and authored some FB apps of my own, that’s clearly not my belief… So, read on if you’re interested in viral apps!
Whether we’re talking about apps or diseases, the key factors in determining virality are the same:
- Distribution: how many people, on average, will an “infected” host make contact with while the host is still “infectious”?
- Infection: how likely is a person, on average, to also become “infected” after contact with a viral host?
If you multiply these factors together, that’s your viral growth rate (or “K” or “R-zero” or “viral coefficient”). The product of these factors answers an important question:
“How many people will be infected by a single viral host while the host remains infected?“
With real-world viruses, the infectious period has very dramatic outcomes. E.g., a host remains infectious until either the virus kills the host or until the host’s immune system fights off the virus. If K=1, then the host basically passes the virus on to one new person before either the host dies or the virus is expelled. Either way, if K=1, then the host exactly replaces him or herself in the population of infected people before becoming non-infectious.
Hopefully, the growth of social apps will never involve physical death or illness! [Disclaimer: No readers were harmed for the writing of this post.] Instead, we would consider a host to be “no longer infectious” if they either uninstall the app or stop actively using the app. Using that definition, an app with a K-factor of 1 will have a userbase in steady-state – no growth, no decline, just flatline; where every current user replaces themselves before leaving the userbase. K>1 means an app is growing its userbase virally (exponentially). And, conversely, K<1 means an app’s userbase is exponentially decaying.
With these factors in mind, designers of viral applications have four levers to pull on in order to increase virality:
The Four Viral App Objectives
- Increase the percentage of “active hosts” who actively make contact with uninfected people
- Increase the contact rate for each active host (average number of contacts per time period)
- Increase the duration of each active host’s infectious time period
- Increase the likelihood that contacts turn into infections (i.e., infection conversion)
Sidenote on app metrics
Note that this also implies that in order to affect any of these, you, as an app developer, need to be able measure each of these stats for your userbase. You can’t tell if you’re driving any of these numbers up (or down) until you know how many contacts/invitations each of your users sends out per day/week/month that they have the app installed; how many days/weeks/months each of your users tends to keep the app installed; and what the conversion rate from a contact/invite into a new infected user is.
Collection and analysis of metrics for social apps is a meaty topic in and of itself, so we’ll leave that for another day. But for now, it should suffice to say that it’s really important to have an effective way to collect statistics on what your users are doing with your app!
Assuming that we’ve got a reliable way of collecting metrics, here’s a quick list of some techniques for achieving each of the four viral app objectives.
Some example methods for optimizing virality
- Require users to invite more people to join the app before they can view/use the app. Typically paired with premium or high value content. E.g., “Invite 10 friends in order to unlock this pr0n video in high-definition” or “Invite 15 friends to see how who has a crush on you.” Some users complain about this tactic, but you may be surprised at how many users will effective. (just kidding about the pr0n, kiddies — that stuff doesn’t fly on most social networks.
- Opportunism — you can’t always predict how people will utilize an application, so give your users multiple ways to share your app. Ideally, every app pageview should contain one or more ways for a user to share the app (and thereby become an active viral host).
- Create incentives for inviting more people. E.g., “invite 10 more friends to level up and become a Black Belt Ninja”
- Specific requests tend to work better than vague encouragements. E.g., don’t just ask users to “please invite friends”, specifically ask for a number, “invite 10 friends” (don’t laugh, it actually works!)
- Simplify, simplify, simplify. If your #1 goal is to go viral, then that should be the #1 action-request that “pops” out to a user. Make it easy to invite more people. Utilize address book importers. Auto-select large(r) distribution lists for invitations. Basically, minimize the amount of hunting-and-clicking it takes to get a user through your invitation process. Ideally, it should just be 1 click.
- User-to-user messaging is a great way to keep users coming back to an app. If pokes, walls, comments or private messaging fit into the context of your app, you should seriously consider building those in.
- User generated content and media — in general, apps that have some form of UGC/media built into them (music, photos, videos, drawings, etc.) do a better job at drawing repeat visits. I’d also group collaborative filtering functionality in this bucket — e.g., ratings, rankings, top playlists, “most viewed” lists, etc.
- Social context — when you’re writing the content/copy for your app invitations, be sure to keep in mind the fact that all your app invitations are occurring in the context of a social relationship between two friends. Use that knowledge as you phrase every call-to-action and craft each sentence to reinforce the social relationship and play on influence mechanisms between these two friends.
- Images and buttons — beyond writing the actual content/copy, app authors should also experiment with design and layout of their invitations. Some top tips include: use buttons instead of plain text links; and use images of people to draw the eye.
Of course, the list above is not exhaustive, it’s just a sampling of top-of-mind viral engineering techniques. If you have other favorite/top tips for tweaking virality, please post a comment below.
A note on prioritization:
In general, all other things equal, it’s most effective to pull on the Contact Rate and Activity Duration levers first — followed by the Host Activation and Infection Conversion.
By definition, your Host Activation and Infection Conversion rates are capped at 100% — the best you can do is to get 100% of hosts to invite other people, or 100% of contacted users to become infected. In contrast, the Contact Rate and Activity Duration are theoretically unbounded. (Well, I guess all human users must eventually expire, but I haven’t seen any Facebook apps that specifically optimize on age of users, yet!!) In any case, for our purposes, the total number of viral contacts initiated by your userbase is theoretically unbounded.
So as an app developer, you should explore the upper limits of how rapidly you can grow your viral contacts before circling back to optimize conversion rates. E.g., if you think of each of your current users as an “infected host”, then your first priority should be to get a maximal number of invites/contacts sent out by each of your hosts while you have them on the app.
Just for comparison, I’ve included some common ranges for Host Activity, Contact Rate, Activity Duration, and Infection Conversion below. These are derived from my own experience with Facebook apps, observations of my Stanford Facebook class’es apps in Fall 2007, and also observations from companies that I have worked at or advised.
- App age is an important consideration — newly launched apps will tend to have more active hosts
- Anything above 50% is pretty good for early-stage apps
- Single-step funnels perform best for maximizing host activation (e.g., select and invite friends from a single page, ideally the FIRST page that a potential new host sees)
- In general, minimize the number of steps/pages that you ask hosts to go through in order to invite their friends. Each additional page/step in a funnel will drop 50% to 60% of users, so each step in a funnel carries a very steep penalty. (Note this is a LOT steeper drop off than the rule of thumb 33% dropoff for page-to-page conversion rates that ecommerce or content sites see!)
- For Facebook apps, 15+ total invitations per user is very good (Note that Facebook imposes a daily limit of 20 invitations per app per user)
- Activity rates and user tenure will vary widely, depending on the purpose and design of app.
- Healthy ranges are typically between 5% and 40% of an app’s userbase will be active on any given day. (Starting high for young apps and then decaying over time for older apps)
- Good retention practices should generate 8+ repeat visits per month per user
- Expect net conversion rates from invites-to-infections in the range of 5% to 8%
K-Factor / R-zero / Viral Coefficient
- Ranges between 1.4 – 2.1 (or higher) are typical for apps experiencing “hot” viral growth
OK, so good luck to all you app developers out there seeking app virality! As you can see, none of this stuff is “secret sauce” or anything — you can readily view all of these techniques in action on Facebook, MySpace and other social network sites today. Still, I hope that summarizing this stuff in one place is useful and many apologies in advance if I’ve misrepresented anything, especially the biomedical stuff. (Is there a doctor in the house?!) Please leave comments or corrections below!
And, of course, if you’ve got some viral ideas or would like to collaborate on viral apps, drop me a line: yeelee at gmail (or connect to me on Facebook, LinkedIn, etc.)