Tuesday, January 15, 2008

The Four Viral App Objectives (a.k.a., "Social network application virality 101")

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!

[digg=http://digg.com/programming/The_Four_Viral_App_Objectives]



Whether we're talking about apps or diseases, the key factors in determining virality are the same:

  1. Distribution: how many people, on average, will an "infected" host make contact with while the host is still "infectious"?

  2. 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
Active Hosts

  • 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).


Contact Rate


  • 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.



        Activity Duration

        • 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.


        Infection Conversion

        • 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.

        Benchmarks

        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.

        Active Hosts

        • 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!)


        Contact Rate

        • 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 Duration

        • 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


        Infection Conversion

        • 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


        Summary

        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.)

        [digg=http://digg.com/programming/The_Four_Viral_App_Objectives]

        35 comments:

        1. [...] Slide PM Yen Lee just blogged about The Four Viral App Objectives (via). It’s a great metrics-based analysis of the factors that contribute to virality. Whether [...]

          ReplyDelete
        2. This post is very hot, it is high ranked at our site (daily weblog, weblog post ranking site). See http://indirect1.blogspot.com/ for more infomation

          ReplyDelete
        3. awesome post yee! i'm definitely a n00b when it comes to apps but your explanation and conception of virality is an important one.

          ReplyDelete
        4. [...] The Four Viral App Objectives (a.k.a., “Social network application virality 101″) « FrameThink ... And, of course, if you’ve got some viral ideas or would like to collaborate on viral apps, drop me a line (tags: framethink.wordpress.com 2008 mes0 dia17 at_tecp viral social_software games social_games Facebook OpenSocial blog_post) [...]

          ReplyDelete
        5. Hi! Great post. I'd like to integrate some of these aspects in my master thesis- do you happen to have any references to scientific articles dealing with that topic? Thanks!

          ReplyDelete
        6. Our product, Sonetrix, can provide much of the metrics data to determine virality and contagiousness. It's in beta right now, but will be free to try. http://www.sonetrix.com

          ReplyDelete
        7. [...] The Four Viral App Objectives (a.k.a., “Social network application virality 101″) « FrameThink ... [...]

          ReplyDelete
        8. [...] The Four Viral App Objectives (a.k.a., “Social network application virality 101″) « FrameThink ... (tags: viral facebook socialnetworks social apps metrics internet development) [...]

          ReplyDelete
        9. Yee,

          Nice post. Missing one factor: time period. It is important that to minimize the time period over which the viral loop occurs. It's the denominator to a fraction where you have correctly specified the numerator.

          Cheers, and thanks for the post.

          - Mike

          ReplyDelete
        10. @Mike -- ah, thanks for bringing up the issue of time period.

          I was actually thinking of K-factor as a "lifetime" measurement. E.g., if you wait until a viral host either goes inactive or uninstalls an app, then measure how many new infections that host started during their "viral lifetime", then that's K.

          But, you're absolutely right -- you could measure K for shorter timespans and that would yield measurements like "monthly K" or "daily K". (Starts to sound like a breakfast cereal. Or maybe I'm just hungry. ;-)

          One drawback -- those types of time-based measurements will generally yield an inflated K-factor (because the original viral host will usually still be included in the active infected population). So, if getting a short-timespan measurement is important, then app developers can try artificially capping the measured "lifetime" of their active viral hosts. E.g., some techniques could include:
          * only consider a viral host to be active for the first M days after app install
          * only consider a viral host to be active during their first N visits to the app
          * only consider a viral host to be active for X invitation loops

          With those type of capping techniques, you can very tightly delimit the viral loop time period to days, sometimes hours, and get a quick read on virality. The obvious caveat: this will produce an artificially depressed K-factor measurement and the degree of impact will depend on how good the app is at driving repeat visits and continuous invitations.

          ReplyDelete
        11. Great post on the four viral app.

          ReplyDelete
        12. [...] The Four Viral App Objectives (a.k.a., “Social network application virality 101″) [...]

          ReplyDelete
        13. @Jim -- yeah, a lot of app developers and bloggers have noted a slow down in viral growth rates recently. The leading explanation is "app fatigue". Facebook itself has been following the lead of user groups who have demanded that the practice of "forced invites" be put to an end. And Facebook have even further tightened the screws on viral app growth by putting dynamic limits on the daily # of invites an app can send per user.

          I think the current best practice is to use incentives to elicit more invites. E.g., "send 5 more invites to unlock the ultra-cool whatchamacallit". As you noted, this technique definitely has its limits and it places the ball squarely in the app publisher's court to create compelling functionality and/or content in order to drive continued app activity and invitations.

          ReplyDelete
        14. [...] particularly interesting post can be found here.  It goes through a very thorough explanation of four key dimensions to social application [...]

          ReplyDelete
        15. Hi, is there any possibility of using viral for technical websites such as javapapers.com?

          ReplyDelete
        16. [...] http://framethink.wordpress.com/2008/01/15/the-four-viral-app-objectives-aka-social-network-applicat... [...]

          ReplyDelete
        17. Hi Yee,

          As I'm sure you know, facebook's "new" design relegates applications to a tabbed menu where they're not easily visible and thus harder to interact with.

          Given that such a large majority of users have already adopted it, do you think any of the methodology following these viral objectives will change? What are your insights on how to design for the New Facebook?

          Thanks for the post. It is excellent and very interesting.

          Marty

          ReplyDelete
        18. [...] Posts Porter's Five ForcesThe Four Viral App Objectives (a.k.a., "Social network application virality 101")Three Dimensions of EmotionSMART objectivesCialdini's Six Weapons of [...]

          ReplyDelete
        19. Many thanks for condensing and sharing this summary. It has been extremely helpful.

          ReplyDelete
        20. [...] http://framethink.wordpress.com/2008/01/15/the-four-viral-app-objectives-aka-social-network-applicat... [...]

          ReplyDelete
        21. [...] you can’t ignore Twitter or Facebook because they are, by far, the easiest way to get positive viral metrics going for your content. Each retweet, “like” and comment you get is going to spread [...]

          ReplyDelete
        22. Thanks for the great post. Yee. It seems like consumer sentiment toward incentivised (or worse, forced) invites has become more negative in the 18 months since you originally posted this article. There is still plenty of opportunity for virality, but it seems like it requires more creativity. Do you have any new insight/tips on the subject?

          ReplyDelete
        23. @justin -- thx for your comment.

          I think that rapid iteration requires a constant stream of creativity, so I'm not sure if the current state-of-the-art requires any *more* creativity from apps developers than 18 months ago per se. In fact, one might argue that the proliferation of social apps companies and public/free analytics actually *decreases* the creative demands on any one team -- it seems like some of the most successful viral app publishers these days spend as much (or more) time benchmarking their apps against each other and learning thru their competitors' experiments rather than coming up with their own novel ideas.

          ReplyDelete
        24. [...] 17, 2009 I have just come across this great article at http://framethink.wordpress.com/2008/01/15/the-four-viral-app-objectives-aka-social-network-applicat... Posted by Ryan Filed in General posts Leave a Comment [...]

          ReplyDelete
        25. [...] Posts Cialdini's Six Weapons of InfluenceThree Dimensions of EmotionThe Four Viral App Objectives (a.k.a., "Social network application virality 101")TEDxSV LiveBlogPorter's Five [...]

          ReplyDelete
        26. [...] The Four Viral App Objectives (a.k.a., “Social network application virality 101″) « FrameThink ... (tags: viral marketing socialnetworks analytics brezmejnik) [...]

          ReplyDelete
        27. i probably would not have considered this was trendy some years back and yet it is interesting just how age changes the means by which you comprehend all sorts of creative concepts, many thanks regarding the blog post it is nice to see some thing smart now and then in lieu of the regular trash mascarading as blogs and forums on the web, cheers

          ReplyDelete
        28. [...] and LTV, some essential metrics that startups should be familiar with include Viral Coefficient (K-factor)  and Customer Lifecycle. Dave McClure from Founders Fund recently updated his Startup Metrics for [...]

          ReplyDelete
        29. [...] of going viral on the web? So a great explanation of the science of going viral can be see via this link. Getting anything to go viral requires part science, part art, and a lot of luck. The most viral [...]

          ReplyDelete
        30. For a new game or quiz launched on Facebook without the benefit of cross-promotion, what would be an appropriate number of installs to be considered "successfully viral?"...

          I would recommend reading up on K-Factor and R-zero to better calculate how viral your application is being. Any application that relies on spreading via invites should be judged by how many people are joining the app, how many invites are they sending...

          ReplyDelete
        31. [...] The Four Viral App Objectives (a.k.a., “Social network application virality 101?)” Nice overview of K-factors, influence mechanisms, active hosts and more viral marketing information. [...]

          ReplyDelete
        32. [...] the game with your friends where you can click to invite them to play. Developers like to see their “K-factor”–a term borrowed from epidemiology–above 1.0, meaning that more than one user was added [...]

          ReplyDelete
        33. [...] the game with your friends where you can click to invite them to play. Developers like to see their “K-factor”–a term borrowed from epidemiology–above 1.0, meaning that more than one user was added [...]

          ReplyDelete
        34. [...] you’re interested in understanding and improving your viral growth, read The Four Viral App Objectives written in 2008 by Yee Lee. Then try some classics from Andrew Chen, Eston Bond, and also [...]

          ReplyDelete