About Remote Config personalization Stay organized with collections Save and categorize content based on your preferences.
Personalization uses machine learning—specifically acontextual multi-armed bandit algorithm—todetermine the optimal experience for individual users to achieve an objective.In our case, the objective is to optimize for the total number or the totalparameter value of specificGoogle Analytics events.
What's a contextual multi-armed bandit algorithm?
The "multi-armed bandit" is a metaphor used to describe the situation where wewant to continually choose a path that leads to the highest, most reliablerewards from a list of multiple paths. To visualize this, you can use themetaphor of a gambler in front of a row of slot machines–often colloquiallyreferred to as a "one-armed bandit" because a slot machine has one handle (orarm) and takes your money. Since we want to solve for multiple"arms," the one-armed bandit becomes themulti-armed bandit.
For example, say we have three options and we want to determine which providesthe most reliable reward: We could try each option, and then, after receiving aresult, we could just keep choosing the arm that yielded the most rewards. Thisis what's referred to as agreedy algorithm: the option that yields the bestresult when we first attempt it is the one we'll continue to choose. But we canunderstand that this might not always work—for one thing, the high rewardcould be a fluke. Or maybe there's some user-specific context that resulted inhigher rewards during that time period that wouldn't be as effective later.
Socontext is added to make the algorithm more effective. ForRemote Config personalization, this initial context is random sampling,oruncertainty, that provides some entropy to the experiment. This implementsa "contextual multi-armed bandit." As the experiment continues to run,ongoing exploration and observation adds real learned context about which armsare most likely to elicit a reward to the model, making it more effective.
What does this mean for my app?
Now, let's discuss what a multi-armed bandit algorithm means in the context ofyour app. Let's say you're optimizing for banner ad clicks. In this case, the"arms" of the personalization would be thealternative values you specify torepresent the different banner ads you want to display to users. The banner adclick is the reward, which we refer to as anobjective.
Key Term:Alternative values may also sometimes be referred to asvariants.When you first launch a personalization, the model does not know whichalternative value will be more likely to achieve your goal for each individualuser. As the personalization explores each alternative value to understand thelikelihood of achieving your objective, the underlying model grows moreinformed, improving its ability to predict and select the optimum experience foreach user.
Personalization uses astickiness window of 24 hours. This is the amount oftime the personalization algorithm explores a single alternative value. Youshould provide your personalizations enough time to explore each alternativevalue multiple times (generally about 14 days). Ideally, you can let them runperpetually so that they can continually improve and adapt as your app and userbehaviors change.
Note: Multiple personalizations are supported, but each personalizationlearns the optimum values for each user independently.Track additional metrics
Remote Config personalization also provides the ability to track up to twoadditional metrics, to help you contextualize your results. Let's say you'vedeveloped a social app and have set different alternative values to encourageusers to share content with friends to increase overall engagement.
In this case, you might choose to optimize for anAnalytics event likelink_received and set your two metrics touser_engagement andlink_opened to understand whether user engagement and the number of links theuser opens rises (true engagement) or falls (possibly too many spammy links).
While these additional metrics won't be factored into the personalizationalgorithm, you can track them right alongside your personalization results,providing valuable insight into the personalization's ability to achieve youroverall goals.
Understand personalization results
After a personalization has been running for long enough to gather data, you canview its results.
To view personalization results:
Open theRemote Config pageand clickPersonalizations.
Select the personalization you want to view. You can search for thespecific personalization by name or objective, and can sort by Name,Start time, or Total lift.
The results page summarizes theTotal lift, or percentage difference inperformance, that the personalization provides over theBaseline group.
Key Term: Thebaseline group consists of about 20% of the number of usersincluded in the personalized group. Its results are scaled up to provide anaccurate comparison. Each user in the baseline group receives one of the valuesin the personalization, which never changes throughout the lifetime of thepersonalization.The results page also shows the current status of the personalization, theattributes of the personalization, and an interactive graph that:
Shows a detailed daily and total view of how the personalization performedagainst the baseline.
Shows how each value performs overall across the baseline group.
Displays goal outcomes and performance against the additional metrics youchose, accessible using the tabs at the top of the summary.
A personalization can be left running indefinitely and you can continue torevisit the results page to monitor its performance. The algorithm will continueto learn and adjust, so that it can adapt when user behavior changes.
Tip: If a personalization does not have positive results after 14 days, the mostlikely reason is that the different alternatives do not produce substantiallydifferent results. In this case, you can end the personalization and choose anyalternative.Understand personalization deletion
You can delete a personalization using theFirebase console or by removing apersonalization parameter from your template using theFirebase Remote Config API.Deleted personalizations cannot be restored. To learn about data retention, seeData deletion.
You can also delete personalizations byrollingback orimporting atemplate.
Rollbacks
If your current template has personalizations and yourollback to a template that does not havethe same personalizations, the personalizations are deleted. To revert to aprevious template, use theFirebase console orroll backusing theFirebase Remote Config API.
When you delete a personalization and roll back to a previous template, areference to that invalid personalization appears in theFirebase console.You can remove the invalid personalization from theFirebase console by editing thepersonalization in the Parameters tab of theRemote Config page.
Imports
Importing a template that no longer contains your current personalizations alsodeletes those personalizations. To import a template,use theFirebase consoleor use theRemote Config REST API.
Next steps
ExploreRemote Config personalizationuse cases.
Get started withRemote Config personalization.
Except as otherwise noted, the content of this page is licensed under theCreative Commons Attribution 4.0 License, and code samples are licensed under theApache 2.0 License. For details, see theGoogle Developers Site Policies. Java is a registered trademark of Oracle and/or its affiliates.
Last updated 2026-02-04 UTC.