App and Lobby Stats


Photon servers can broadcast application and lobby statistics to clients. You can make use of this data to implement a complex custom matchmaking system. You can also brag about these statistics in your game to show how popular it is. :]

Application Statistics

When connected to a Photon master server, a Photon client receives applications statistics. Regardless of whether the client is joined to a lobby or not, it will receive AppStats events. Application statistics are per region.

The applications statistics are:

  • Number of live rooms:

  • Number of players not joined to rooms:

  • Number of players inside rooms:

  • Total number of connected players:

    AppStats event is sent to client every five seconds.

    In the native C++ SDK, the Listener class provides a callback every time to know that the statistics' getters are updated:

        virtual void onAppStatsUpdate(void) {}

Lobby Statistics

Lobby statistics can be useful if a game uses multiple lobbies and you want to show the activity. Lobby statistics are per region.

Per typed lobby (name + type) you can get information about:

  • Number of live rooms
  • Number of players not joined to a room

Automatically Get Lobby Statistics

Lobby statistics events are sent as soon as the client is authenticated to a master server. Then they are sent every minute. Lobby statistics events are disabled by default.

  • C#

    Before connecting, to enable lobby statistics:

        loadBalancingClient.EnableLobbyStatistics = true;

    Lobby statistics are updated and cached, you can get them using:

  • C++

    To enable lobby statistics, one has to pass true for parameter autoLobbyStats to the constructor of class Client:

        Client(LoadBalancing::Listener& listener, const Common::JString& applicationID, const Common::JString& appVersion, nByte connectionProtocol=Photon::ConnectionProtocol::DEFAULT, bool autoLobbyStats=false, nByte regionSelectionMode=RegionSelectionMode::DEFAULT);

    The Listener class provides the following optional callback whenever a lobby stats event arrives (when enabled):

        virtual void onLobbyStatsUpdate(const Common::JVector<LobbyStatsResponse>& lobbyStats) {}

Explicitly Get Lobby Statistics

You can explicitly request lobby statistics using an operation call when not joined to a room:

  • C#

    This is currently not implemented.

  • C++


    The Listener class provides the following optional callback when the response arrives:

        virtual void onLobbyStatsResponse(const Common::JVector<LobbyStatsResponse>& lobbyStats) {}

 To Document Top