Remote Settings


Recently we had an opportunity to try out an early version of Remote Settings, a new feature of Unity Analytics. Once more, Unity team helps to facilitate game development for content creators. Continue to read to learn how to effectively use this feature in your project.

What Are Remote Settings?

Remote Settings is a cloud based service accessible through Unity Analytics dashboard. It is built as a collection of keys and values that can be fetched from your game. Once they are properly configured on Unity Analytics dashboard, all your app users are going to receive them at the beginning of every game session.

In this post, we will go through possible use cases and basic implementations. We will briefly discuss known limitations of Remote Settings and potential future improvements.

Controlling game visuals: Seasonal Updates

Seasonal updates are a cleaver strategy to keep your app fresh, and perhaps win a feature on the App Store’s main page during the hottest weeks of the year. From our experience, “dressing up” your game for a season or for holidays might temporarily bump your revenue by more than 50%. Ultimately, Christmas Day is always the time when the highest number of mobile devices is activated. In terms of app downloads, Christmas is the most relevant season of the year. However, there are various local holidays that are heavily featured too. For instance, Chinese New Year, also known as Spring Festival, is the most important holiday in China. It offers a perfect chance to appear on the main page of Chinese version of App Store. Besides, seasonal updates following local traditions are very appealing to the users and might boost their retention.

Remote Settings can be easily used to trigger seasonal content. Since they can be updated at any time through their dashboard, they offer a great flexibility and very much effortless process. Below is an example of a game scene that implements two important holiday themes, Christmas and Halloween.

For the purpose of this article we have created SeasonalScene script that uses SeasonalEnvironment class to trigger assets change depending on the chosen season.

Implementing Remote Settings is rather a straightforward process. In the next step, we are going to complete SeasonalScene script so it calls ShowChristmasTheme() method of SeasonalEnvironment class. To achieve that we have to listen to the static event RemoteSettings.Updated. When the event is raised, we can read the collection of keys and their values that were fetched from Unity Cloud.

The code above doesn’t do much yet. The static event RemoteSettings.Updated is going to be raised as soon as Unity Analytics session starts. However, we are not going to receive any keys. These have to be configured on the Remote Settings dashboard. We are going to create SeasonalTheme key with the value Christmas.

After synchronizing our changes with Unity Cloud, the Remote Settings keys and their values are going to be properly fetched by our game. It is going to trigger seasonal theme that we have previously implemented in SeasonalEnvironment class.

Values can be easily modified on the Remote Settings dashboard. That allows to implement multiple seasonal themes with no effort. We are going to complete our RemoteSettings_Updated method so it can trigger either Christmas or Halloween theme.

After setting Halloween as the value of SeasonalTheme key, our Remote Settings are going to be updated in the next Unity Analytics session.

Facilitating A/B Testing: Different UI versions

A/B Testing, sometimes called Split Testing, can be easily implemented with Remote Settings. The goal is to compare two or more versions of application elements to see which one does perform better. We can effectively experiment with two different UI elements, let’s call them A and B, that can be shown to your players at a different time. The one that gives a better conversion rate, wins. To get the most out of Remote Settings, we can combine them with Unity Analytics. That allows to accurately eventuate collected results.

A/B Testing can help you with:

  • Improving the content
    The process of A/B Testing leads to better application content. It challenge the team to discuss which option is the most optimal and why. As it generates the variables to be tested, it can help to create a list of potential content improvements.
  • Maximizing the profit
    Companies that use A/B Testing value the data over opinions. Resources are spent on implementation, not on debates. These companies are nimble, they quickly adapt to changes in the marketplace and trends that drive their business. Decisions are made without unnecessary delays and mid-course adjustments are expected.
  • Risk reduction
    A/B Testing reduces risks inherent in crucial decisions related to pricing or strategy. Testing and experimenting with customer behaviour increases the likelihood of success. A/B Testing helps to validate proposed approach and evaluate it against short-term goals or long-term success.

Below, we would like to go through a basic implementation of A/B Testing. We are going to start with setting up necessary key on Remote Settings dashboard. For the purpose of this example, we will create ABTest key with a string value set to A.

As before, we are going to listen to the static event RemoteSettings.Updated. Once received, we can compare its value and trigger content that will be shown to our players.

Just as seen in the following screenshots, we have implemented a simple UI button that comes in two variants, A and B. Together with linked Unity Analytics custom events, we could easily check which UI version gives us promise of better results.

Fetching JSON Data: Introducing new content

While playing with Remote Settings, we were wondering what are the exact limits set for their string values. We were interested in the maximal length of a sequence of characters that could be potentially fetched by our game. Quickly, we have reached the cap of 1024 characters. That is not much. However, it is definitely enough to store a relatively complex information under just a single key in Remote Settings.

One of the prototypes, that we have previously built, works with gird based levels that can be saved in JSON format. By extending it with Remote Settings, we have received a simple game that could be dynamically expanded with entirely new maps.

Below, you can watch the building animation of our two sample levels. They come together with their JSON formatted data that was added on Remote Settings dashboard.

Forest Level

 

Small Town Level

Remote Settings allows content creators to easily introduce totally new levels or tweak the already existing ones. It is a great way to keep players engaged and interested in the game. Remote Settings has potential to help developers that struggle with or cannot afford any traditional back-end solutions that previously would be necessary.

Conclusion

We are very thankful to Unity Analytics Team for offering to us an exciting opportunity to try Remote Settings while it was still in the period of limited access. We strongly believe that even the early version of this feature has a huge potential to help developers to build more engaging and creative games. Looking from the business perspective, proven marketing strategies to increase revenue can be now extremely facilitated.

Remote Settings is a perfect example of a product that no one asked for… but everyone wants!

Thank you Unity Analytics Team!

Unite ’17, Shanghai, China – Meeting with Unity Analytics Team

Share:

+ There are no comments

Add yours