Zynga’s latest release Cityville is the first social game to hit 100 million MAUs. The speed at which the game reached this milestone is truly breathtaking and further cements the social games industry as a paradigm shift in game play; one in which console and more serious gamers and developers are starting to respect.

From Farmville to Frontierville to Cityville, new mechanics have evolved from Zynga’s succession of hit games. They point to an evolving deeper strategic social gameplay for the user. Now, with ever more competition amongst the social game companies for users, engagement and retention are crucial to that DAU/MAU ‘stickiness’ factor.

Kevin Rose, formerly of Digg, did a great blog post on Cityville. We’re going to re-purpose this analysis and look at how discrete goal funnels would be instrumented and analyzed in our dashboard.

Funnels:

All social games funnel users towards goals. Without goals, there is no incentive to play games. Whether the goals are earned rewards, progression upgrades or adding some value to a community, all social games have goals that developers should measure, test and optimize for. For the purposes of this article, I played Cityville until I reached Level 4, just long enough to build a Town Hall, and found four types of goal funnels.

The Viral Funnel: A series of steps designed for the user to spread the game through invites and gifting mechanics.

The Engagement Funnel: A series of steps designed to nurture a user’s progression through game play to deepen a user’s commitment to the game.

The Retention Funnel: A series of steps designed to get the user to return to the game once they’ve ended a session, including emails and notifications.

The Viral Engagement Funnel: Here, a user not only attempts to complete a goal, but also must elicit help from their friends (neighbors) or pay precious virtual credits to complete the goal.

I didn’t include monetization funnels because they can be thought of as a potential revenue event at the end of both engagement and viral/engagement funnels, though a user need never pay a dime for free-to-play games (Zynga would most certainly like you to pay!) We’ll certainly dive into revenue visibility in this series.

In the table below, I’ve broken down each progressive goal funnel in the game up until I reached Level 4. Game mechanics are broken down by Engagement, and Social/Viral mechanics buckets that are persistent throughout the game.

If you’re interested, a full breakdown of my progression with screenshots can be downloaded HERE.

Observations:

There are more viral goal funnels in the first few levels. Zynga knows that the first 15 minutes of game play are crucial to getting players engaged. Even if they drop-off and never play again, they hope that their first-time players send out viral invites and messages to other potential players.

There are easier engagement goal funnels in the first few levels. Zynga also knows that players need to feel a sense of progress and easy flow in order to feel engaged. The first few engagement goals are essentially tutorials, but are designed to award goal completion with social mechanics like naming your city, which then solidifies psychological ownership and social investment over your virtual city.

Viral Engagement Funnels are presented more and more as the game progresses. One inflection point of the game, where players build their City Hall, represents the capstone of the transformation of a player’s city from a small town to something bigger. At this point, players must either recruit neighbors/friends to staff City Hall, or pay gu to staff Samantha, the in-game virtual neighbor in all the roles.

This Viral/Engagement Funnel is the most innovative of CityVille’s goal funnels, and represents a smart evolution in their game play. More often than not, presenting a user with both the option to be viral and the option to monetize will result in the player doing both. He/she will send out invites and then monetize to progress because they do not want to wait for their friend’s responses.

Insights:

All of these funnels can be instrumented using Kontagent’s custom event funnels, and analyzed with our subsequent funnel analysis view. Once events have been instrumented, goal funnels can be dynamically created and analyzed on the fly, with results in a matter of seconds.

Stay tuned for Part 2 of this series, where we walk through each goal funnel type and show what kinds of insights an Indie developer with similar game mechanics and user incentives can gain with our dashboard.（source:kontagent）

CityVille’s Goal Funnels Part 2 of 5: Engagement Goal Funnels

Perfect use case: The Tutorial. Most social games have one. It keeps users on track to a finite defined goal, and usually rewards them at the end. This is a great way to engage your initial users. With the first goal of CityVille to build a new house, we can break down the steps to this funnel and see how a developer would gain insights and optimize this particular engagement funnel to drive more users towards goal completion and deeper into the game.

Using the engagement funnel mapped above, we can dive into a two-step process to describe what insights and actions developers can gain using our platform. We’ll show both a sample API call to show the simple structure of our API calls and the kinds of parameters that can be passed into our servers. We can then dive into the kinds of visibility that can be gained through these API calls, and ultimately prescribe possible actions that can be taken from these deep insights from our social analytics.

User Flows

A. Instrumentation

The table below presents how a CityVille developer would instrument Kontagent’s API calls to gain visibility into user flows.

API Calls:

The API calls are relatively simple: send us what step a user finished. Here, the variable n=event name. The parameter ‘st’ stands for sub-type. You can use up to three sub-types (denoted st1, st2 and st3) to tag an event name with a certain property. In this case, tagging your event name with ‘tutorial’ allows you to search for the tutorial steps later in your list of events. For more detailed documentation on our instrumentation, click here.

B. Insights and Actions

Once instrumented, the events show up in our custom event dashboard. Here, they can be configured to see drop-offs in user flows.

Using the drag-and-drop feature, a funnel can be configured out of any possible combination of custom events.

The resulting funnel provides a great snapshot of the user flow, and can be filtered and constrained on discrete time windows, age, gender, ‘number of friends’, and location. For example, if you wanted to further break your funnel down by just users who were Male, age 18-25 and located in the U.S. and Canada who completed this initial tutorial, you could use the filters to gain that level of visibility.

The engagement funnel flow reveals that the greatest % of user drop-off is between Step 1 and Step 2. This is typical of goal funnels in social games, where users who progress through a funnel become more and more committed to completing a goal as they complete more steps, thereby increasing the % of users who complete subsequent steps. Therefore, optimizing for drop-offs between the first two steps is key. The higher in the funnel you can optimize, the greater an impact it will have on the ultimate goal conversion rate. Here, you can do a user split in your system and test the following ideas:

3) Testing the placement of the tutorial windows in the iframe of your application. (ie. closer to an actual button you want the user to press, or farther away from the ‘exit’ button, etc.)

Click here for a quick video overview on funnel analysis.

Custom Goals and Engagement

A. Instrumentation

For the purposes of the use case outlined below, we want to track both the custom goal count of tutorial completion and user session lengths.

You can use up to four custom goals in our system (gc1-gc4). Here, we’re setting the custom goal parameter gc1 equal to tutorial completion, where the count is 1 (tutorial completed). Therefore, each goal completion will be denoted in our system as an incremental count. The engagement API message has a timestamp parameter affixed to it so we can define sessions in our system.

B. Insights and Actions

Hourly Visibility: Custom goals allow you to gain insight into important checkpoints of your application. In addition to the usual age, gender, ‘number of friend’ and location filters, you can exploit the hourly data to see what times of the day users are most likely to complete this custom goal of tutorial completion. In addition to total installs, a lot of media buyers already look at custom goal counts to better inform them of their ad buys. One of the most common insights media buyers want to gain visibility into is the number of users who complete a tutorial post-install. Assuming your volume is even (we’re working on making hourly data / uniques available) and you haven’t made any changes on the marketing side, this sort of visibility can help with day-parting for your media buys. Since users who complete a tutorial are more highly engaged, it leads to greater retention and increased monetization.

Used in tandem with the Traffic tab, media buyers can gain powerful insights into the custom goal counts by campaign and ad variant to optimize their bids or provide more effective CPIs for ad partners. In addition to Day 1 and Day 7 retention and K factor available in our traffic tab, custom goal counts like tutorial completion can be leveraged at key engagement checkpoints to better justify bids.

Engagement statistics like average session length and sessions per user are crucial in benchmarking how avid your player base is. They are also one of Kontagent’s 7 deadly social metrics of 2011. Instrumenting the ‘pgr’ API call reveals important insight into average user session lengths, among others. As users become more deeply engaged, average session length increases, confirming that game mechanic tuning is improving the user experience. Keep close tabs on average session length. The right game mechanic optimization through engagement funnel testing can really move the needle. Tutorials like the above CityVille engagement funnel are key in familiarizing incoming players with all the features and game mechanics of a social game, creating a more enriching environment in which players feel more invested in the overall experience.（source:kontagent）

CityVille’s Goal Funnels Part 3 of 5: Viral Goal Funnels

The flow below is a good example of a series of viral funnels that can be tested at different points and measured. The goal of the user flow is (one of the first goals a user must complete in CityVille after the first tutorial) is to build a townhouse to complete a neighborhood. Building a townhouse familiarizes the user with the ‘build’ feature, which depletes energy and in-game coins currency. A user must click a number of times to build a structure, with larger structures taking more clicks, as well as more energy and coins. Here is the specific set of actions I took:

1. Upon placing the townhouse location, I was upgraded to Level 2 with the option to brag to my friends. (Viral Funnel1) [Diagram: 2 - 2a]2. If I clicked the close button on the viral window, another pop-up presented me with the option to email my friends. (Viral Funnel2) [Diagram: 3 - 3a]3. If I clicked the close button and finished building my townhouse, I was also presented with an option to brag to my friends (Viral Funnel3) [Diagram: 6 - 6a]

So, within the task of completing my first real goal after the tutorial I was presented with three opportunities to be viral and spread the adoption of this game.

Using the flow above, we’ll showcase a few more features of our social analytics dashboard. Because CityVille was developed for Facebook, we’ll be diving into the various viral channels as they relate to this platform.

User Flows

A. Instrumentation

The events listed in the table below show how one would instrument each step in order to gain the right insights into user flow. Here, the evt event type is used just as it was in the last blog post where we walked through the engagement funnel. St1 which represents the sub-type, or particular property of the event, is set to “BuildHouse1″. This event property parameter is passed into our servers and can be viewed in our dashboard.

API Calls:

Now, we can dive into why the drag and drop functionality is so crucial in viewing the viral funnels.

B. Insights and Actions

One of the most powerful tools at the disposal of game studios is the ability to create custom funnels. Assuming you’ve instrumented all the custom events above, you

’ll see each event available in the list of funnel steps. Now, all you need to do is drag and drop your steps into the funnel interface to view your drop-off percentages. Because we instrumented custom events, we can use the funnel analysis tab to look at all three viral funnels and see drop-offs.

Simply drag-and-drop to create a new funnel for each Viral Funnel.

…and compare drop-offs amongst the three Viral funnels. Perhaps it makes more sense to test 2 viral funnels instead of 3 within the user flow? You can do a user split in your own servers and see the results in our dashboard.

You can even view the results of the engagement funnel by dragging steps 1, 4 and 5 down to see the drop-off and ultimate conversion rate of users who completed the primary engagement goal. Here, you can also test and see whether adding or removing a viral funnel or an additional step during this engagement funnel goal increases or decreases the % of users who complete the goal of building their neighborhood.

Viral Channels: Viral Co-efficient and A/B Message Testing

A. Instrumentation

There are three opportunities to send a viral channel in the user flow above. The events below are API calls to ensure visibility into the particular viral channels, namely posts and emails. You can see there are a few more parameters than our previous examination of just engagement user flows. Kontagent’s social analytics does not use cookies. Therefore, when instrumenting calls and gauging response rates from viral invites, we always use unique tracking parameters (u parameter) inside the API calls to match send/respond messages. (see the pst / psr event type messages in the table below) Additionally, we use unique recipient IDs (r and i parameters) to ensure that players who respond to viral messages are not current players. A brief definition of a viral loop vs. an engagement loop can be described as the following:

Viral Loop – Initiating an invite or message to a user who does not have the game currently installed.

Re-engagement / Retention Loop – Initiating an invite or message to a user who already has the game installed.

For more information on viral and engagement loops, see our presentation on the A.R.M funnel, a pictorial walk-through on user acquisition, retention and monetization in social games.

You’ll also notice we’ve leveraged the st (subtype) parameters here to tag our events with properties we’ll want to filter off of later. In particular, Step2a shows viral A/B testing within the user flow of the first viral funnel shown in the diagram above.[Diagram: 2 - 2a]
In order to gain visibility into response rates on each message on this A/B test, we’re leveraging st2 and tagging the appropriate message as M1 or M2.

API Calls:

B. Insights and Actions

Let’s take a look at how this instrumentation translates into dashboard insights. The resulting viral event API calls show up in the Virality Tab. Here, you can see the all important K-factor. There have been lots of folks who have written about the fact that virality is dead. But with Facebook, the pendulum tends to swing back.

We’ve definitely seen attempts by Facebook to resurrect viral channels as K-factor has steadily increased from a low point around September/October of 2010; maybe a tacit acknowledgment that they might have been too heavy handed in clamping down on viral channels. Here’s a graph of a resurgence in virality from independent Facebook ad buyer Adparlor around Q4 of last year, and we’ve definitely noticed the same increase in monitoring our benchmarks.

True Virality: The concept of True Virality is unique to Kontagent. A lot of research was spent in formulating the right actionable views of viral channels for game developers. The diagram below encapsulates the True Virality concept and shows why it is a better view with which to gain actionable insights. Why look at virality in 1, 3 and 7 day increments? Without this normalized view, which we call True Virality, the K-Factor will always be downward sloping, with the most recent users having less time to infect other users than the older users.

In order to look at viral trends on a normalized basis, it is crucial that developers have a time slice with which to view their trending K-factors. Each dot on the 1, 3 or 7 day graph represents a particular cohort of users who installed the application on that day. For example, with 1-day True Virality, the viral coefficient is presented as the 24-hour post-install infection rate of users on that date.? True Virality essentially eliminates the temporal effects of virality.

Even as viral channels have become less effective in the last year, they can still make the difference between a successful user acquisition strategy and a losing proposition. Using the screenshot below, developers can look at 1, 3 and 7-day True Virality. 7-day True Virality is usually a better view when analyzing invites sent.

It typically takes longer for other uses to respond to invite messages than to posts or notifications.

Additionally, the viral dashboard will show the average number of invites sent per user (or how viral your users are) along with the ‘acceptance’ rate, which is your conversion rate for invites sent. You can also see trending total viral sent and response messages.

Finally, having instrumented our M1 and M2 A/B viral message testing, you can see the results flow into our viral dashboard in the table below.? The A/B test summary table shows you the viral invites sent, accepted (or clicked) and the acceptance rate.

As you can see, there are myriad ways to instrument and gain the crucial insights game developers need. The social analytics platform is flexible enough to handle multiple use cases, depending on what unique game mechanics developers want visibility into. We’ll examine one of CityVille’s Retention Funnels in Part4. Stay tuned!（source:kontagent）

CityVille’s Goal Funnels Part 4 of 5: Retention Goal Funnels

Retention/Re-engagement funnels can be an effective way to re-engage with your current players. Retention funnels are characterized by the following:

1) Emails or ads sent from existing to current users to re-engage with your game or application; and

2) Incentives and rewards once a user re-engages to increase progress further in the game.

The retention funnel below flows like a typical engagement funnel, but the game mechanics and initial steps are different. The initial step is an email that incentivizes the user to come back to collect a daily bonus reward [Step1]. These appointment dynamics have been cited as a key game mechanic in successful game play.

A successively better reward is offered for each consecutive day a user returns to play. In fact, once a user responds to the email, this first incentive pops up to remind the user of the rewards should they continue to play for the next five days. [Step2-2a]

Because user retention drops most significantly after Day 1, re-engagement campaigns are most crucial the first day after a user installs and plays your game. Not only do rewards incentivize users to return, but once they’re back in the game and spending their awarded currency, more sophisticated game mechanics allow players to build social capital and immerse themselves as they progress deeper into the game.

The funnel below also has two viral opportunities; once on the outset of responding to an email and receiving an award, and once at the end of the funnel [Step6-6b] for completing an easy two-step funnel that was created to award more virtual capital.

Let’s examine the visibility into this user flow.

User Flows

A. Instrumentation

As in previous posts, we track evt messages as part of an engagement funnel. Where appropriate, we are also tracking the viral steps accordingly. For a complete walk through of viral funnels, see our previous post. For all intents and purposes, the goal of this user flow is the same: getting users to complete a certain goal and progress and deepen their social engagement. Viral funnels and rewards are more frequent here, happening twice within this particular funnel. Additionally, the goal of this funnel is simply to collect more virtual goods that can then be used in the game.

One particular point of note here in instrumentation, is the use of the st2 event attribute parameters. In steps 2-2a as well as steps 6-6b, st2 is set as a counter to see how deeply a user gets to the goal of sending a viral message. We then use St1 just like we have in previous posts, to ensure we can aggregate by that attribute and see results, both for how far users progressed within this retention/re-engagement path, and how long it actually took them to respond. For more information on our documentation, including the types and categories of REST Api calls we use, click here.

API Calls:

After proper instrumentation, we can dive into the insights below.

B. Insights and Actions

In the snapshot below, we can again drag and drop to see what percent of users not only clicked on the first step in the re-engagement email, but also went on to share the reward with their social graph. As in the previous examples, all steps that have been instrumented can also be drag and dropped to form new funnel views with which to see any number of insights related to this flow. Another insight that is useful here is to see how many users ultimately go through and collect their final reward from the goal funnel.

One of the key insights that our system enables is the ability to see when users trigger certain events. In the case of the funnel above, it’s important to see when most users respond (click) on the re-engagement email (Step1). In the graph below, you can see the timeline view presented, where the x-axis is the time since install.

Here, most users respond to the event “evt_EmailResponse” within 1-2 days.

Alternatively, you can A/B test certain email messages as well as certain incentives inside the email and gauge which variant got the most responses or the fastest responses. You can then track all the email variants through the retention goal funnel and determine if users who clicked on a certain email with an award were more likely to complete the entire goal than another incentivized email with a different message and award. Click here to watch a quick video on our event timeline views.

You can also track how avid your users are by measuring the ‘stickiness’ (DAU/MAU) with which you can get users to return to play. Keeping a note of this trend is much more powerful in terms of longer-term success than absolute DAU or MAU numbers.

Finally, you can view your retention curve by up to 4 cohorts on a daily, weekly or monthly time basis. If efforts to optimize the retention funnels are working, each successive line should get less and less kinked as new users experience and like your game and decide to return either on their own volition, or through the re-engagement emails sent to their inbox.

As we examine Cityville’s goal funnels, it is apparent that a lot of the goal funnels exhibit characteristics of multiple types of funnels. In the last post, we’ll examine the viral engagement funnel, a blend of a pure engagement funnel with an end goal of either viral recruitment, monetization or both. We’ll also tie the user flow into revenue visibility, something we haven’t touched on up to this point.（source:kontagent）

CityVille’s Goal Funnels Part 5 of 5: Viral Engagement Goal Funnels

The last funnel is a viral engagement funnel, and probably the most interesting one in terms of visibility into the behavior of users. Building a City Hall is a landmark moment in the real life of a city. It represents a coming of age for a town, cementing its place on the land which it was built up from. So too in Cityville, this landmark goal represents a virtual cornerstone for players to establish their mark on their creation. It also introduces our last and most interesting game mechanic: Staffing.

The use case below is outlined with the following steps I took: Initiated building a City Hall goal; Placed the foundation of the structure; Took steps 3-8 to build the structure; Completed building and staffed the structure with three staff.

Note: I first invited three people whom I thought could respond relatively quickly to my invitations for staffing. When I didn’t hear back from them soon enough I spent precious City Bucks which, in contrast to the coins, are much harder to come by in the game. By using City Bucks I used Samantha my virtual neighbor as my staff and was able to circumvent the requirement of staffing Town Hall with real neighbors, but not before I had sent out invitations to real people…

Some observations about this use case: Getting players to click more times to build a structure and thereby depleting more energy and coins also increases the amount of social capital they’ve invested. Since players feel more invested in the final completed product, they are more likely to not view the staffing mechanic as an insurmountable chokepoint.

The staffing mechanic bakes another important social element into the game. It requires players to have neighbors in order to staff buildings and continue in the game (whether real or the virtual Samantha), and it forces players that were previously lone wolves to do one of two things: Add or invite current or new friends from their social graph; or pony up and pays precious City Bucks to staff their building with Samantha to proceed.

The staffing mechanic is quite ingenuous because it has the potential to trigger one or both of the following:

The Viral Loop: New User-to-Existing User (K-Factor)

If players choose to invite friends from Frontierville or Farmville, they expedite the waterfall of users from Zynga game to Zynga game. This helps franchise game studios like Zynga preserve their moat of avid and monetizable users. If players choose to send an invite to a new friend, they’ve also become a quantifiable marketing unit (K factor) and help to draw in more players into Zynga’s massive user base.

The Engagement Loop: Existing User-to-Existing User

If players choose to invite current friends from Cityville, they effectively become quantifiable marketing units or ambassadors for the game. Their action creates a potential multiplier effect of other actions within the game that could spawn even more engagement or viral events.

Any sequence of actions players undertake at this choke point benefits the two main goals of any social game: growth and monetization. Players may try to staff the Town Hall with real neighbors first because as rational individuals they want to preserve their City Bucks. After failing to hear back from a few friends whom they’ve requested as staffers, they may try to invite different friends who may or may not be current players of the game. Finally, if all else fails and they haven’t found that last friend, they will spend City Bucks, thereby depleting their stock of rare currency and increasing the likelihood they will purchase credits with hard currency at a later point in the game given a similar predicament.

User Flows

A. Instrumentation

In the previous posts I’ve outlined what a game developer would do to gain insights into user flows through path analysis. I also went over how to see and measure virality in our dashboard. The insights I want to highlight in this post are going to focus not on path analysis and virality, but on event timing and revenue visibility.

In the table below, tracking response rates on friends who respond to staffing invites is crucial, especially if there is message A/B testing or other insights being derived from a user’s behavior prior to this goal. A new instrumentation method is described in Step 9c, where we track the amount of currency being depleted if players decide to spend City Bucks to complete the goal. Note the fact that we’re doing two things: Tracking the value of virtual currency being depleted (here a negative integer); and Tracking the level this depletion is happening on.

API Calls:

B. Insights and Actions

Instrumenting custom events will get you closest to the granular insights you’re looking for. Here’s where things get really interesting. Once you’ve instrumented each event, you can track when they are triggered, and in what overall proportion to other events. The snapshot below provides some insights and answers the following question: What proportion of viral (Step 9b) to revenue/engagement events (Step 9c) happen at each level? Does the distribution confirm the intent of the game design?

Evidently, as users progress through a game, though they have the opportunity to become more avid and are more likely to be viral evangelists, they are also more likely to continue building on the social capital they’ve invested in the game through collaborating with neighbors, building, maintaining and harvesting in their towns, and marveling and admiring their unique landscape.

Therefore, as players progress through levels, viral mechanics should make up a lower proportion of the overall distribution of game mechanics as users are presented with more opportunities to expend either soft or hard currency. This ‘sink’ or depletion of currency is what players must become used to as a key driver of progress.

If it is not a central part of game play, the % of paying users and ARPU (average revenue per user) will be much lower.

Another interesting level of insight you can track is the proportional distribution of how long it takes players to send out invites to staff their Town Hall, coupled with how long it takes their friends to respond. Throw in the proportion of staffing events using currency and you’ve got the complete picture below. The snapshot below sheds light on a few things:

Most players reach this first checkpoint of building a Town Hall and sending out invitations to their friends within the first few hours of installing and playing the game.

Friends who receive an invite to staff a building generally respond within 24 hours. Afterwards the proportion of users who respond trails off, as do the invitations to staff.

As players progress in the game, more and more of them turn to using currency to staff their Town Hall, in a reflection of either their inability to find friends to staff their buildings with, or general impatience with having to wait to proceed.

In general, if players have to wait more than 12 hours, their propensity to use City Bucks to staff their Town Hall increases.

After gaining visibility into how and when users behave around this game mechanic, you can gauge the ratio of staffing using friends vs. staffing by paying City bucks.

You can see how this ratio fluctuates over time, given the influence of different marketing effects in your user acquisition targeting or testing being done in your game. Depending on what you’re optimizing for, you may want to either increase or decrease this ratio depending on how people behave once they’ve progressed past this sophisticated game mechanic.

Earlier, I referred to the depletion or ‘sink’ of in-game currency expended. Seeing how the balance plays out within each level is crucial in determining whether you’re flooding your virtual economy with too much currency; a virtual QE2 in effect. In times of pain where your players might not be exchanging as many goods and services with each other as you would prefer, it might make sense to create a slightly inflationary environment. You can see in the snapshot below that whatever level of economic stasis you want to maintain, you can track and monitor the progress of your efforts; something the likes of Ben Bernake would kill for.

So there you have it. A virtual use case for a virtual economy inside a virtual ecosystem where all manner of insights can be derived and acted upon. One last caveat:

I don’t know if any of this is true with CityVille user behavior. I’ve never met Mark Pincus, nor do I profess to be in the same realm of designers like John Romero to speak on game design. Intuition in game design and tuning is like any muscle. Analytics simply enforces and hones better intuition. It’s not a panacea for creativity, so get your game design hats on and enjoy the ride. Hopefully we’ll be there with you when you’re eating Cup-o-noodles out of a flooded basement all the way to your 100 millionth MAU. (Source: kontagent）