{"id":124,"date":"2015-01-07T12:25:31","date_gmt":"2015-01-07T12:25:31","guid":{"rendered":"http:\/\/smartfoxserver.com\/blog\/?p=124"},"modified":"2015-01-08T11:03:55","modified_gmt":"2015-01-08T11:03:55","slug":"decoding-dau-mau-and-ccu","status":"publish","type":"post","link":"https:\/\/smartfoxserver.com\/blog\/decoding-dau-mau-and-ccu\/","title":{"rendered":"Decoding DAU, MAU and CCU"},"content":{"rendered":"<p>In this article we will try to\u00a0demystify\u00a0several acronyms\u00a0related to\u00a0online traffic\u00a0that are\u00a0commonly found in the multiplayer\/online lingo, but are usually not well understood.<\/p>\n<p>Even without knowing anything about online gaming many of us are familiar with concepts such as &#8220;unique visits&#8221;, &#8220;daily visits&#8221; etc&#8230; which represent different metrics of online activity, typically\u00a0in the context of a website traffic.<\/p>\n<p>More recently, especially since\u00a0the inception\u00a0of social networking and online gaming, we have seen new acronyms\u00a0being used such as <strong>DAU<\/strong> (daily active users), <strong>MAU<\/strong> (monthly active users) and <strong>CCU<\/strong>\u00a0(concurrent users). But how exactly are these values calculated?, What do the represent? And how do they translate between each other?<!--more--><\/p>\n<p>Let&#8217;s start with <strong>DAU<\/strong>. This metric represents the unique daily active users. Note the &#8220;unique&#8221; qualifier, which is not represented by\u00a0the acronym, but is normally implied.\u00a0In other words DAU represents the number of distinct registered users that interact with\u00a0the system during any specific day. To further clarify, this means that a\u00a0client that logs into the application five times a day will only\u00a0count as one.<\/p>\n<p>In terms of website traffic, DAU is the direct equivalent of the &#8220;unique visit&#8221; \/ &#8220;unique user&#8221; metric, in contrast to the &#8220;visit&#8221; or &#8220;session&#8221; view which\u00a0typically keeps track of all sessions during the day (i.e. five visits of the same user will count as five instead of one).<\/p>\n<p>Once we have this clarified we can move on to<strong> MAU\u00a0<\/strong>which, unsurprisingly, represents the aggregated view of DAU during the course of one month<\/p>\n<p>Finally we get to <strong>CCU<\/strong> which is the measure of users connected at the same time in any given moment. As you can see &#8220;moment&#8221; doesn&#8217;t really define a time interval such as in DAU and MAU but rather it refers to the actual instant of the measurement. More on this in a few paragraph.<\/p>\n<h3>\u00bb Conversions and expectations<\/h3>\n<p>One of the most frequent questions we&#8217;re asked is how to estimate the number of CCU \u00a0in order to choose\u00a0the right license package or to\u00a0properly size the server resources, such as cloud server type, bandwidth etc&#8230;<\/p>\n<p>The question usually\u00a0originates from developers who already have other online projects, typically\u00a0single player games, for which at least some traffic statistics are already known.<\/p>\n<p>Given the DAU of an existing game, and supposing the multiplayer version will reach and possibly exceed those figures, we can approximate the average CCU required.<\/p>\n<p>Depending on the game type and a number of other variables the number of CCU is roughly equal to DAU divided by a value between 50\u00a0and 100. Typically we could use an average of the two extremes. In other words:<\/p>\n<p><strong>CCU == DAU \/\u00a075<\/strong><\/p>\n<p>If instead of DAU we\u00a0are starting from a web sessions\/visits report then the value should be divided by a value between 100 and 200. Example:<\/p>\n<p><strong>CCU == Visits \/ 150<\/strong><\/p>\n<p>Keep in mind that these are rough calculations, unlikely set in stone, but still useful to get a ballpark figure to get started.<\/p>\n<h3>\u00bb Further refinements<\/h3>\n<p>In general terms DAU metrics are more precise than web stats because they are effectively based on registered users, and therefore more reliable. Having access to more fine grained views of the traffic could also help improving the soundness of our CCU predictions.<\/p>\n<p>For instance, by watching the game&#8217;s traffic spikes during the day we could isolate the\u00a0peak\u00a0periods\u00a0during the 24 hours and use those readings to infer the CCU requirements.<\/p>\n<p>Another useful piece of information is the average length of the single user session which could be used as a time window to calculate our CCU estimate.<\/p>\n<p>Let&#8217;s see an example: let&#8217;s consider an existing game with 2.4 Million DAU for which we&#8217;re planning to build the multiplayer version. From our statistics we know that most of the traffic is concentrated in 4 peak hours of the day, with values that are 3 times higher than the average traffic.<\/p>\n<p>Finally we know that the mean game session length is approximately 6 minutes.<\/p>\n<p>Let&#8217;s start by dividing the DAU into an hourly average:\u00a02.400.000 \/ 24 = <strong>100K hourly visits<\/strong>. If we now consider a window of time equal to the median game session length (6 min) we&#8217;ll obtain <strong>~10K CCU<\/strong>.\u00a0This is still a rough number, subject to oscillations, but it should give us a general idea of the number of users\u00a0we&#8217;d find connected at any one time, considering the a typical session.<\/p>\n<p>The 10K CCU however is not taking in consideration that our traffic is not evenly distributed throughout the day. Since we know that peak hours have 3x the traffic compared to the average metric, we can infer that during peak hours we will have\u00a0<strong>~30K CCU<\/strong> during any 6 minute game session.<\/p>\n<p>If we now go back to our initial <strong>2.4M DAU<\/strong> value and compare it with the final <strong>30K CCU<\/strong> estimate we have extrapolated we find a factor of <strong>80x<\/strong>, which is close enough to the 75x value we have postulated at the beginning.<\/p>\n<h3>\u00bb\u00a0Final thoughts<\/h3>\n<p>In conclusion\u00a0the average session length seem a good parameter, in conjunction with DAU and the other more fine grained metrics, to\u00a0estimate the expected CCU.<\/p>\n<p>This is essentially because while DAU and MAU are values specified\u00a0over a well defined time interval, the CCU metric is not. CCU is indicative of a specific instant and yet we have to make a projection of its progression during the 24 hours.<\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In this article we will try to\u00a0demystify\u00a0several acronyms\u00a0related to\u00a0online traffic\u00a0that are\u00a0commonly found in the multiplayer\/online lingo, but are usually not well understood. Even without knowing anything about online gaming many of us are familiar with concepts such as &#8220;unique visits&#8221;, &#8220;daily visits&#8221; etc&#8230; which represent different metrics of online activity, typically\u00a0in the context of a [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[23],"tags":[],"_links":{"self":[{"href":"https:\/\/smartfoxserver.com\/blog\/wp-json\/wp\/v2\/posts\/124"}],"collection":[{"href":"https:\/\/smartfoxserver.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/smartfoxserver.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/smartfoxserver.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/smartfoxserver.com\/blog\/wp-json\/wp\/v2\/comments?post=124"}],"version-history":[{"count":8,"href":"https:\/\/smartfoxserver.com\/blog\/wp-json\/wp\/v2\/posts\/124\/revisions"}],"predecessor-version":[{"id":137,"href":"https:\/\/smartfoxserver.com\/blog\/wp-json\/wp\/v2\/posts\/124\/revisions\/137"}],"wp:attachment":[{"href":"https:\/\/smartfoxserver.com\/blog\/wp-json\/wp\/v2\/media?parent=124"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/smartfoxserver.com\/blog\/wp-json\/wp\/v2\/categories?post=124"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/smartfoxserver.com\/blog\/wp-json\/wp\/v2\/tags?post=124"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}