Real-time analytics: core concepts

The analytics system gives you precise insights into the activities going on inside of your game.

  • How many players did you have today?
  • Where do they struggle?
  • What do they like?
  • How many games were played?
  • How much XP was gained?
  • How many chests were opened - and on which levels?
  • What is the average time for completing a certain level?

Such information is invaluable to you for marketing, level design, UX troubleshooting, and other aspects of your product development.

At its core, the analytics system provides you with the tools to aggregate, query, and analyze the events generated by your game, build reports, and export and manipulate the raw data.

PlayFab event

An event - as a data structure - represents a change in state for your game. Events are represented as JSON objects. Each event has four parts:

  1. Name (or unique type identifier) - (What happened?)
  2. Entity (player, title, or character) - (Who's guilty?)
  3. Timestamp - (When did it happen?)
  4. Associated Data ( a.k.a. Body) - (What are the relevant details?)

It is important to distinguish between Automatic and Custom events. Our Generating PlayStream Events Tutorial explains the difference.

Event flow

The core of any analytics system is the event flow - which is a all-inclusive list of events sorted by time.

Your players are going to produce a large number of different events. But these events are not captured by themselves - you need an analytics system to capture them for later analysis.

A solid analytics system allows you to group, sort, filter, count, transform, and perform calculations on a given set of events, turning the event flow into valuable, up-to-date information that you can use to run efficient LiveOps.


  • Webhooks: Game Manager page for automatically triggering non-PlayFab servers on specific game events.
  • S3 Event Archiving: Game Manager page for accessing recent PlayStream events.