Sign In Register

How can we help you today?

Start a new topic

Tracking Retention by Checkpoints in First Time User Experience

Hello Everyone,

I recently started integrating GameSparks into my project, and am a bit stumped as to how I should accomplish a specific kind of analytics.

I want to track D1, D7, and D30 retention in my app, and filter those retention values by users who completed the first 10 levels, or started the multiplayer mode, etc.

For example, the D1 retention may be 27% for users who only finished up to level 5, but it could be 42% for users who made it to multiplayer content.

I figured that this should be possible using either AnalyticsRequests or what is described at this link (basically large json blocks that save player data):

And then this data would be rendered in a custom analytics chart somehow using cloud code. However, I cannot find any helpful examples to get me started... I am at a loss.

Anyone have any advice?


1 person has this question
1 Comment

Unless there were some very recent changes, you can't use AnalyticsRequest for this (those are for much more simple use cases).

This doesn't solve your case exactly, but we have a system for keeping track of retention by segments assigned during install. I'll describe it briefly, maybe it'll be helpful as a starting point:

There is a daily install collection, and a daily active user collection. The unique player id and the segments for each player that installed/is active on that day are inserted into these collections, like this:

"playerId": "1234",

"segments": { "levelDifficulty": "hard", "prices": "low"}


At the end each day, we aggregate these into this kind of collection (if you don't have many players, you might get away without aggregating too, and then you'll have more flexibility):


"segments": { "levelDifficulty": "hard", "prices": "low"},

"count": 1204


Using the aggregated daily active collection, we update the values in the install collections in previous dates:


"segments": { "levelDifficulty": "hard", "prices": "low"},

"count": 1204,

"activeInLaterDays": {

"D1": 600,

"D7": 298


The daily active collection is deleted, and only the aggregated daily install collection is kept.

Using these we can slice the data according to segments when we want to look into the retention data.

The drawback of this is that the segments have to be determined before the install collection is aggregated.

Login to post a comment