Remote Configuration #
Remote configuration is a way to customize the behavior of an app or game via in-app parameters stored on a remote server. This can be used to implement feature flags or adjust settings which change the appearance or behavior of the app or game.
Developers can use remote configuration to remove the hassle of a lengthy review process or modifying the game or app and then waiting for users to update. This makes it especially useful with mobile projects.
This page shows two options for managing and fetching in-app parameters to deliver a personalized experience to your players. The first approach uses Satori, our dedicated LiveOps solution for games studios.
The second provides a more generalized approach, using server-side code or the storage engine to store the parameters, and fetching them with a HTTP request.
Satori #
Satori provides a robust feature flagging system which can be used to manage in-app parameters, and has been designed to work seamlessly with Nakama.
It’s a great option for teams who want to get up and running quickly with remote configuration, and enables non-technical team members to manage the parameters via a dashboard.
See the Personalization Guide in the official Satori documentation for a detailed example and different use-cases.
Generalized approach #
Manage In-app parameters #
The configuration settings sent to the app or game need to be stored on the server. The best way to store the information depends on how often the data will be changed.
For mostly static data it’s most efficient to embed it as data structures in server-side code and for more dynamic data it’s better to use a read-only storage record.
With both of these approaches you can access remote configuration before you’ve done register/login or connected with a user session. The in-app parameters you configure can be initialized at the earliest point of application startup.
Static parameters #
The simplest approach uses server-side code to represent the in-app parameters as a static variable. A change to the parameters after the server has started would require an update to the Lua code and a server restart.
|
|
|
|
|
|
Dynamic parameters #
For in-app parameters which may be changed via Analytics or with a LiveOps dashboard it’s more flexible to store the configuration settings in the storage engine as a read-only record.
|
|
|
|
|
|
Fetch In-app parameters #
With either approach used to store in-app parameters you can fetch the configuration with a HTTP request.
.Net/Unity:
|
|
Curl:
|
|