With Remote Config personalization, you can automatically select Remote Config parameters for each user to optimize for an objective. Personalizing a parameter is like performing an automatic, individualized, continuously-improving, and perpetual A/B test.
When you use Remote Config personalization in your apps, you create more engaging experiences for each of your users by automatically providing them with one of several alternative user experiences—the alternative that optimizes for the objective you choose. You can target your personalized Remote Config parameters to specific user groups using Remote Config targeting conditions.
You can optimize for any objective that's measurable using Google Analytics, and optimize by number of events or by the aggregated value (sum) of an event parameter. This includes the following built-in metrics:
- User engagement time, which optimizes by user engagement time
- Ad clicks, which optimizes by total number of ad click events
- Ad impressions, which optimizes by the number of ad impressions
Or, you can optimize for custom metrics based on any Analytics event. Some possibilities include:
- Play Store or App Store rating submissions
- User success at particular tasks, like completing game levels
- In-app purchase events
- E-commerce events, like adding items to a cart, or beginning or completing checkout
- In-app purchase and ad revenue
- Virtual currency spend
- Link and content sharing and social networking activity
For more information about potential personalization use cases, see What can I do with Remote Config personalization?
How does it work?
Personalization uses machine learning to determine the optimal experience for each of your users. The algorithm efficiently trades off between learning the best experience for different types of users and making use of that knowledge to maximize your objective metric. Personalization results are automatically compared to a holdout group of users who receive a persistent random experience drawn from your provided alternatives—this comparison shows how much "lift" (incremental value) is generated by the personalization system.
For more information about Remote Config personalization algorithm and concepts, see About Remote Config personalization.
Implementation path
- Implement two or more alternative user experiences that you expect will be optimal for some users but not others.
- Make these alternatives remotely configurable with a Remote Config parameter. See Get started with Remote Config and Remote Config loading strategies.
- Enable personalization for the parameter. Remote Config will assign each of your users the experience that's optimal for them. See the Getting started guide.
Personalization vs. A/B testing
Unlike A/B tests, which are designed to find a single best performing user experience, personalization attempts to maximize an objective by dynamically choosing an optimal user experience for each user. For many types of problems, personalization produces the best results, but A/B testing still has its uses:
Personalization preferred | A/B testing preferred |
---|---|
When each user could benefit from a personalized user experience | When you want a single optimum experience for all users or a defined subset of users |
When you want to continuously optimize the personalization model | When you want to conduct tests during a fixed time window |
When your optimization goal can be expressed simply as a weighted sum of analytics events | When your optimization goal requires thoughtful evaluation of several different competing metrics |
When you want to optimize for an objective regardless of any trade-offs | When you want to determine if one variant shows a statistically significant improvement over another before rolling it out |
When manual review of results is not required or desired | When manual review of results is desirable |
For example, suppose you want to maximize the number of users who rate your app in the Play Store when you prompt them to. One factor that might contribute to success is the timing of your prompt: do you show it when the user opens your app for the first, second, or third time? Or do you prompt them when they successfully complete certain tasks? The ideal timing likely depends on the individual user: some users might be ready to rate your app right away, while others might need more time.
Optimizing the timing of your feedback prompt is an ideal use case for personalization:
- The optimal setting is likely different for each user.
- Success is easily measurable using Analytics.
- The UX change in question is low risk enough that you probably don't need to consider trade-offs or conduct a manual review.