What can you do with Remote Config?

App developers use Remote Config in many different ways to suit their unique requirements, and we encourage that. To give you an idea of the kinds of things you can do with Remote Config, this page describes some use cases with broad applicability to mobile developers.

Launch new features with the percentage rollout mechanism

You can use Remote Config to perform a percentage rollout to slowly expose your users to new functionality. For this use case, let's say you have a new search function that is enabled and disabled using a Remote Config parameter named new_search_feature_flag, and you want to begin by rolling it out to 10% of your installed user base.

To achieve this, edit your new_search_feature_flag parameter, add a new condition, and select User in random percentage. Use the slider to set the random percentage between 0 and 10.

Image moving through the Firebase console GUI steps to perform a percentage rollout on an existing parameter
Adding parameter for percentage feature rollout

Now, when the new_search_feature_flag value is fetched from Remote Config, 10% of randomly selected users receive the value true, while the other 90% receive the value false.

When you are satisfied with the stability of the feature in 10% of the user population, you can increase it to 30%, to 50%, and eventually to 100% once you have full confidence in the feature.

Define platform and locale-specific promo banners for your app

Imagine you have an e-commerce sale coming up and you want to enable a promotional splash page in your app. Further, imagine you want to customize this splash page to the same locale that your user has set on their device. You can define a parameter promo_splash_graphic and set its value to static URLs (hosted on Firebase Storage or elsewhere) and then reference them dynamically in your app.

You could then assign different values to Android and Apple for locales that are most important to your promotional marketing campaign. If you need to trigger promotions at a specific time, you can use Remote Config's time conditions, and you can also use real-time Remote Config to ensure that the changes are pulled soon after the template is published, and then you can activate them as-needed within your app.

Animated image moving through the Firebase console GUI steps to define platform and locale-specific promo banners
Adding parameter for localized promo banners

You can also use the Remote Config backend APIs to update the parameter values programmatically and then trigger the functionality from a cron job.

Provide custom experiences for your users based on first-time app use

You can use Remote Config to provide custom experiences for users based on the date and time they first open your app, including the following use cases:

  • Provide different onboarding flows as users join your app.
  • Expose incentives or features hidden behind feature flags or toggles to new users after a certain date.
  • Provide custom experiences to users who joined during a specific time period.

Let's say that you want to provide an in-game gift to new users to encourage initial engagement and retention, and you want to provide a different reward to a group of longtime users. You can create a parameter named extra_coin_splash that controls a pop-up that offers free in-game currency with a customizable message, number of bonus coins, and maximum number of times to re-display the offer if the user hasn't accepted the offer. You can use the in-app default value as the parameter default, and then create two conditions.

First, add a Conditional value to your extra_coins_splash Remote Config parameter that targets a specific Android or iOS app, set First open to a date and time in the future, and then set the parameter value to:

{"banner_text": "Welcome! Enjoy some extra coins!", "bonus_coins": 15, "max_display_retries": 2}

Next, add a condition for an existing user group that you want to reward, for example, all users who joined in July and are still using your game in October. To do this, add another Conditional value to the extra_coins_splash parameter with First open set between July 1 and August 1, and set the parameter value to:

{"banner_text": "Thanks for being a loyal user!", "bonus_coins": 30, "max_display_retries": 2}:

Your final extra_coins_splash parameter will look like the following:

Remote Config parameter with conditional values

After you publish your config with this parameter, both groups of users will receive the extra coin parameter values you configured after their next fetch.

As a next step, try an A/B Testing experiment or personalization with your parameters and targeting conditions, using different banner messages and bonus coin amounts.

Test new functionality on a limited testing group

Normally for testing new functionality within a limited testing group, you would use an Alpha channel on Google Play or Test Flight for an Apple app. These tools are perfect when you want to test new functionality in the same cadence as your regular development cycle.

However, sometimes you might have a feature that you would like to test more quickly, and easily enable or disable regardless of the timing of the next release in your regular development cycle. For such cases, Remote Config can be a very helpful tool.

Let's say you wanted to test new graphics among employees in your company. How could that be enabled with Remote Config?

When users log in to your app, check for their email ID and set up the user property is_mydomain_employee=true that applies only when the email belongs to your domain. Then create a condition that tracks that user property. You can target this user property in Remote Config and enable the new functionality only for these users.

Animated image moving through the Firebase console GUI steps to test new functionality on a limited testing group
Targeting testing groups with a condition

Use JSON to configure complex entities in your app or game

As your app grows in complexity, you need better ways of supplying configuration to your app. For example, if you want to configure a new login system, you might create one Remote Config parameter for each dynamic value you want to control. However, configuring your login system this way is tedious, and very hard to understand and maintain.

A better way to provide configuration for such a login system would be to use JSON and group all of those parameters into one single parameter. This helps in editing and maintaining the login parameter much more easily over time.

The Firebase console provides a JSON validator and pretty-printer that you can use when editing Remote Config parameters. When working in the console, click the {} icon to open the editor.

Animated image moving through the Firebase console GUI steps to configure complex entities with JSON
Using the JSON editor to group parameters

Send Slack / Email message when a Remote Config update is published

If you are part of a large team which uses Remote Config, it's often hard to keep track of who's publishing Remote Config in your team and when.

To simplify collaborative workflows, you can be alerted via your favorite mechanism (Slack or Email) in near real time. The Remote Config REST API together with a Remote Config background trigger in Cloud Functions for Firebase can let you send a notification whenever your Remote Config template changes.

eBay recently open sourced their implementation for how they use Cloud Functions with Remote Config to publish a diff of previous vs new Remote Config templates into a Slack channel.