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.
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.
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" title="Remote Config parameter with conditional values" width="55%">
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.
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.
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.