Games Analytics in 10 minutes

SlicingDice Team
SlicingDice.com Blog
6 min readApr 23, 2017

Go from zero to game analytics hero in less than 10 minutes, without managing any infrastructure or worrying about data modeling and size.

This guide will show how to use SlicingDice for game analytics, a Serverless Data Warehouse and Analytics Database as a Service.

Everyday SlicingDice receives more than 1.1 billion data inserts and millions of queries from multiple indie devs and companies, many of them doing analytics on top of gaming data, such as profiles and purchases.

Scenario description

Let’s imagine you collect data from users playing your games and want to define strategies based on the collected data.

Example of game analytics questions we want to answer:

  1. What is the average cash spent per age in the past 6 months?
  2. How many users have spent more than $ 25 in the past 30 days?

Sending your user’s gaming data to SlicingDice

Sending data to SlicingDice is very simple and fast. You can use our easy-to-use API or any of our clients available in Python, Ruby, JavaScript, Java, .NET/C#, PHP, Go and Arduino.

In order to send your data, first you simply need to:
1. Define what your entity is going to be. We consider an entity to be like a user, a customer, a person and so on. That’s basically a way of saying: who owns the data? So looking both questions above, the data is clearly produced by a user/person, that we will consider to be our entity.

2. Once you know what is your entity, you simply need to specify the columns and values you want to associate to your entities.

Check this data insertion example below

Pro Tip: Click here to generate a personal free demo API Key, so you can copy & paste all the cURL command examples below on your own terminal and play with it live using our /test endpoint.

In this example below our entities are users and we will insert their profile’s data on SlicingDice, such as age and also all their in-app purchases.

Looking this data insertion command above, we can clearly see that we have three user entities: user-01, user-02 and user-03.

For these three entities we associated three columns: age, email and in-app-purchases.

As you can see, all entities user-01, user-02 and user-03 have the same columns age, email and in-app-purchases, but each with different values.

What is happening here is that you are telling SlicingDice that the age of the entity user-01 is “27”, the email is “user1@slicingdice.com” and that the in-app-purchase value that happened on “2016–xx–xxT05:52:38Z” is “30.1” , the value that happened on “2016–xx–xxT04:26:20Z” is “50.3” and so on.

The exactly same thing is happening for the entities user-02 and user-03, but with different values.

That’s it. Simple like that. As we now have some data stored, let’s answer the questions we defined in the beginning of this post:

  1. What is the average cash spent per age in the past 6 months?
  2. How many users have spent more than $ 25 in the past 30 days?

Querying your data

Making queries on SlicingDice is simple and easy. It’s possible to do multiple types of analysis using our API and you can get to speed by seeing all the ready-to-use query examples we have on our Github clients repositories for Python, Ruby, JavaScript, Java, .NET/C#, PHP, and Go.

In order to answer the question What is the average cash spent per age in the past 6 months? we will be making an aggregation analysis.

Aggregation is a powerful way to cross data in order to find insights and unexpected patterns. You can think about it like being an Excel Pivot Table.

What is happening under the hood on this simple aggregation query below is that we are asking SlicingDice to:
1. first retrieve all users having the Top 5 most common values for the “age” column;
2. then for each of the five “age” values, make an average on the values of the “in-app-purchase” column that happened within the past 6 months;

Based on the data we inserted before, if you run this query above on your own terminal, you should be able to see these results below:

As you can see, results are basically showing the average of in-app purchases by age in the past 6 months. You can answer a lot of questions using aggregations and more importantly, discover insights out of your data.

Now let’s answer the second question we have: How many users have spent more than $ 25 in the past 30 days?. We can easily answer this question by using the count entities analysis.

Count entities is a simply and fast way to know how many unique entities (players) you have that satisfies some set of conditions you define.

Let’s take as example our query below, what is happening here is that we want to know how many unique users (entities) have values higher than “25” for the “in-app-purchase” column in the “past 30 days”.

Based on the data we inserted before, if you run this query above on your own terminal, you should be able to see these results below:

As you can see, the results are basically showing the quantity of users (entities) satisfying all conditions of the query.

Now, if you want to know the email address of these users (entities), you can simply make this result data extraction query below:

As you can see below, it’s showing that the user-01 and user-03 are the users and their emails are “user1@slicingdice.com” and “user3@slicingdice.com”.

What other questions and analysis can I make?

SlicingDice supports multiple types of data analysis, so you can basically answer any kind of question you may need for analytics purposes, for example:

  • How many new users in the past 7 days came back to play my game, broken down by age, per day?
  • How many plays did the users have on average before making the first purchase?

You nailed it, hero! — Next steps

That’s it. You are now ready to start making as much game analysis as you want.
If you are inclined to think that SlicingDice might work for you, we suggest you take a look on our documentation and at least follow our quickstart guide.

Please, don’t hesitate to contact our developer support team at any time, for any reason. We are here to support your needs.

Loved it… but, how much does it cost?

Our price is really innovative and cheap. We charge based on the quantity of columns you have, doesn’t matter how many rows you store for them.

So for example you can store unlimited data on SlicingDice for these two use cases presented above (game users, for example) for less $ 10.00 per month. It’s true. Check our website pricing page.

Why SlicingDice?

Developers want to store and query their data, but they hate having to manage complex data infrastructure, so we do it for them.
All they have to do is simply store and query billions of real-time and historical data, without managing any infrastructure.

High availability?
You don’t need to worry. We always replicate and backup your data on three different datacenters, located in France, Canada and Germany.

Query speed?
If any query takes longer than 10 seconds to complete, no matter the query complexity or data size, you receive a 10¢ discount for each query. We believe ensuring fast queries is our responsibility, not yours.

Not sure if we can support your needs?

Click here and schedule a 15-minute talk with our developers, totally free of charge, so we can evaluate your case together.

Don’t know how to model your data in order to send it to SlicingDice?
No problem at all, schedule a time so we can talk or let’s chat online now.

--

--

SlicingDice Team
SlicingDice.com Blog

Dev team of SlicingDice — Serverless Data Warehouse and Analytics Database-as-a-service