Delivering Personalized User Experiences with Firebase Remote Config Personalization

Pankaj Rai 🇮🇳
ProAndroidDev
Published in
5 min readFeb 24, 2023

--

It's very well known that a single experience may not be an excellent experience for all the users as you might have a diverse group of users with different preferences and needs. This makes it very challenging to achieve high user engagement and until you achieve this it’s going to be a tough task to make your app successful.
Now the major question is how to achieve higher user engagement so as to make your app successful, that’s where Firebase Remote Config Personalization comes in.

Remote Config Personalization
Firebase Remote Config is a cloud service that lets you change the behaviour and appearance of your app without requiring users to download an app update. You can use Firebase Remote Config Personalization to deliver personalized experiences to your users based on their preferences and behaviour. In this article, we’ll discuss how to use Firebase Remote Config Personalization.

When you use this service in your app, you can create a more engaging experience for your users by automatically providing them with one of the several alternative user experiences.

Why to use personalization?
Have you ever been in a situation where you are not certain about which experience works best for your users? Like, think of a case where you have a gaming app and you are not sure when to show the in-app review dialog to the users. Should it be at app launch, completion of a certain level or before they switch to buy points, well there could be many alternative values for a single key (or a question) and selecting the best possible value is not at all an easy task. This is just one such example, you may correlate this with the situation where for a single key, there is a possibility to have multiple values and which value works best is the point of concern. In all those cases you may think about Remote Config Personalization.

How does it work?
You might have a question about how Personalization is going to select one among the set of alternative values for the same key. Is it random or based on some logic?
Well, it uses machine learning to determine the optimal experience by selecting the appropriate value for a key and efficiently trades off between learning the best experience for different types of users and making use of that knowledge to maximize your objective. This process is a continuous process so it can try to provide the best user experience based on the user’s behaviour.

How to get started with it?
Head over to the Firebase console and select your project, thereafter click on the Remote Config.
If you have not used Remote Config any time for that project then you may see the following button “Create configuration”, click on that button to get started with Remote Config.

As Personalization is part of Remote Config hence it’s important to get started with this process.

The second step is to create a parameter by providing the key and value.

Once you have filled in the required field for the parameter and default value, click on save and publish.

The step you have seen so far is useful to add parameters for Remote Config. Now let’s see how can we add personalization for the parameter.

Click on the edit icon in front of the parameter and you will once again see the same panel that you have seen while creating a new parameter.

Now click on “Add new” to get started with Personalization

When you click on Personalization it will open up another panel where it will let you to enter the alternative values for the same key, provide at least two alternate values, the max is five.

Here we are providing the two values for the key “canvas_bg_color” after that click on next to select the objective.

As I stated before Personalization uses machine learning hence it requires a target condition to determine if the selected value from the provided set of alternatives is doing well or not. You can either select the predefined metrics or select the analytics event that you are targeting for eg if I am setting the personalization for a key for which I want to validate against the user engagement if that is providing a positive impact or not then I will select user engagement as the value for an objective.

Once you choose the objective now you have to select the condition, the condition here could be an app directly, platform, etc

The condition that you are going to set here, personalization is going to work on those sets of devices that matches this condition for eg here you can see that it's applied to the app directly so this is going to work for all users who are using the android app “Smartboard” as only android app is selected here. Also, you may chain multiple conditions by clicking on “and” option.

Finally, we have setup the personalization, the last step is to name it so that it will be easy to track through the console and click on save.

Now we are back to the same panel from where we started with personalization, you may see the personalization section having the condition name “App Users”. Just click on save and publish this remote config value.

Well, we have completed the setup and now you may monitor how well your personalized value is working directly from the console. You may continue this forever or may stop it at any point in time. Hope this article will help you to get started with Remote Config Personalization. The app that’s been selected in the code snippet is actually one of the apps on the Google Play Store — Smartboard

https://play.google.com/store/apps/details?id=com.edu.smartboard

--

--