Game Analytics at N3TWORK

Steve Detwiler
Feb 21, 2018 · 6 min read

We strive to build great mobile games but until we release a game we do not know if we will be successful. Our initial designs rely solely on our intuition and previous experience as gamemakers, however once we release a game we look to objective measurements to tell us where we can improve. This combination of art and science drives us to continually improve the games we make.

Objective measurements come from the data we collect while people play our games. We instrument our games to record many actions players take and use those measurements to inform us how people play.

At N3TWORK we expect everyone to continually seek and provide context. We support this by making all data available to every employee so they can seek the context they need to be successful. Because it’s not possible to anticipate every question in advance, we need to structure our data to be flexible to support questions from various groups such as game designers, engineers, user acquisition and management.

We solve this using our analytics pipeline, internally named Poole. Poole solves several requirements for us:

  • Provides baseline feedback for all of our core KPIs without specific game instrumentation.
  • Allows each game to measure its own dimensions that the team wants to track.
  • Makes data accessible using standard SQL.
  • Provides tools to visualize and explore data to answer ad hoc questions.
  • Provides all data in near real time, with an end to end latency of under 15 minutes.
Image for post
Image for post
Poole event volume over time

Measuring Base KPIs

DAU

mDAU

Sessions/DAU

Minutes/Session

ARPDAU

ARPmDAU

These metrics tell us at the top most level how a game is performing. We further break these metrics down by many dimensions including geography, acquisition channel, device and operating system, and join date.

Poole tracks the data required to measure these metrics without specific game instrumentation so we can quickly understand and compare each game’s performance.

Game Specific Dimensions

Each game provides a schema for the dimensions it will track. Poole then uses the schema to validate data as it is received and to manage the SQL tables that store each event.

Accessing Data With SQL

Poole stores a unique row in BigQuery for each event with a column for each schema dimension. When writing code to instrument the game, it is frequently not known which dimension values are needed to answer all future questions. One solution would be to send all dimension values with every event, but this is not practical for games that have hundreds or thousands of tracked dimensions. Another solution is to query the database to find rows with specific dimension values when working to answer a specific question, but BigQuery does not support table indices, so such queries would result in large table scans to find the correct value.

Forward Propagation

For example, imagine a sequence of events that might occur as a player enters, plays in a battle, and ranks up as a result of playing the battle:

Image for post
Image for post

Without forward propagation the resulting rows in BigQuery would look like this:

Image for post
Image for post

If forward propagation is enabled for the rank dimension, the resulting rows in BigQuery would look like this:

Image for post
Image for post

This significantly simplifies the required SQL to answer questions like “what is the distribution of player rank on the Battle Win screen?”

SELECT rank, COUNT(*) as count WHERE screen=”Battle Win” GROUP BY rank ORDER BY count DESC;

Data Availability

Image for post
Image for post
Poole Pipeline Latency in Seconds

Summary Tables

Accessing Data

Google Sheets

Tableau

Scripting

Summary

In a future article we’ll dive into some of the technical details and describe how we operate this system to process hundreds of millions of events each day.

N3TWORK

We are creating a new type of games, media, and technology…

Steve Detwiler

Written by

Engineering at N3TWORK. Creating a new type of games, media, and technology company.

N3TWORK

N3TWORK

We are creating a new type of games, media, and technology company.

Steve Detwiler

Written by

Engineering at N3TWORK. Creating a new type of games, media, and technology company.

N3TWORK

N3TWORK

We are creating a new type of games, media, and technology company.

Medium is an open platform where 170 million readers come to find insightful and dynamic thinking. Here, expert and undiscovered voices alike dive into the heart of any topic and bring new ideas to the surface. Learn more

Follow the writers, publications, and topics that matter to you, and you’ll see them on your homepage and in your inbox. Explore

If you have a story to tell, knowledge to share, or a perspective to offer — welcome home. It’s easy and free to post your thinking on any topic. Write on Medium

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store