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.
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:
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.
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.