Maximize Revenue with Remote Config Personalization

Your app might be generating revenue, and if it is, then you’re likely thinking about how to generate more. Your users have different needs and preferences, so maximizing revenue means tailoring your app to each user. That sounds like a problem for machine learning, which can have a steep learning curve and is resource intensive. This is where Remote Config personalization comes in to help achieve your revenue goals.

What is Remote Config personalization?

Remote Config lets you dynamically change the behavior and appearance of your app without releasing a new version or setting up any complex infrastructure. Personalization adds the ability to fine-tune Remote Config parameters to optimize individual user experiences by building on the power of Google’s machine learning. Optimization is possible in a few steps with no machine learning background required. Read more about how personalization works and check out the case studies on how Ahoy Games and Halfbrick are using it today.

How Personalization maximizes revenue

Google Analytics can measure events in your app and report parameter values for metrics related to those events. Personalization uses these events and values to understand specific user behavior to serve the best alternative per-user.

Suppose you want to log a spend_virtual_currency event in your app whenever a sale goes through, and you report the dollar value of that sale as an event parameter. Personalization can optimize not only for the number of sales made but also for the value of the sale itself so you can meet objectives when the inputs carry different weights.

Let’s look at another example: configuring ad placement to optimize revenue from ad impressions. In this case, you might log the custom event ad_impression whenever a user is shown an ad. If you’re using AdMob and Google Analytics, this event is logged automatically. Check out the steps to set that up or to log ad_impression events from a different ads platform.

You can use a predefined event like spend_virtual_currency with the parameter of spend_virtual_currency with the value type of long or double. You can also create your own custom event like ad_impression where the parameter is a value with the value type of float.
You can use a predefined event like spend_virtual_currency with the parameter of spend_virtual_currency with the value type of long or double. You can also create your own custom event like ad_impression where the parameter is a value with the value type of float.

By combining ad impression values from Google Analytics reports with the power of personalization, you can maximize your user lifetime value from ads or even use it to optimize return ad spend for a particular campaign.

Let’s give it a go!

Let’s say you want to personalize how often ads are shown to optimize ad revenue in your app. Let’s demonstrate how to set that up.

First, navigate to Remote Config in the Firebase Console. Let’s say you already set up a parameter called ad_frequency to configure how many times per hour an ad is shown, and now you want to find the best value to serve to each user. Select the ad_frequency parameter to personalize and start editing: click the Add new button, select Conditional value, and choose Personalization.

This is where you create alternatives for the user base. The alternatives are different values you want to try to see which one works best for a particular user. For your personalized ad_frequency parameter, you might create alternatives of 1, 3, and 5 ads shown.

In the Choose objective step, connect the ad_impression event to the personalization. If ad_impression already exists in the Objective field, select it. Otherwise, type ad_impression into the field and click Create event ad_impression. Select SUM to optimize for the sum of all paid ad impressions for a particular user, generating the most revenue for your app. Enter the parameter that contains the revenue amount: value, in this case.

If you choose COUNT, personalization will optimize for the number of ad impressions, without taking into account their value. COUNT is a good choice for objective events without a scalar value, for example link_opened or file_download. If you choose SUM, personalization will optimize for the total value of a particular parameter in the objective event, so SUM is a good choice when the event has an important scalar value. For ad_impression, some events count more than others, so choosing SUM to total their values is a good choice.

While you’re optimizing for ad impression revenue, you might wonder whether the ad frequency affects engagement time. Under Additional metrics, you can choose to track User engagement time or any two additional metrics to see the relationship. While these additional metrics won’t be factored into the personalization algorithm, you can track them right alongside your personalization results, providing valuable insight into the personalization’s ability to achieve your overall goals.

You can choose the Remote Config Target condition for the personalization and give it a name and description to finish setting it up.

Let’s confirm everything is set up correctly. Google Analytics Debug View in the Firebase console is a great way to verify both the custom event and personalization are functioning correctly. Here, you can see both the ad_impression event logged with a parameter named value and the personalization_assignment event, so we’re good to go!

After letting your personalization run for a few days, come back and check on the results. You can find all your personalizations in the Personalizations tab under Remote Config.

Good news! The personalization is outperforming the baseline by 8%! Looking at the results, you can see 186,000 users were exposed to the personalization in the last 28 days.

The baseline group consists of a small segment of users, each assigned one of the alternative values consistently throughout the lifetime of the personalization. This segment is scaled up in reporting to account for its smaller size.

Tips for an effective personalization

Before we wrap up, let’s cover some quick tips that’ll help create successful personalized experiences.

  • Choose a Remote Config targeting condition with as many users as possible. A broad segment gives the system more data to work with.
  • Choose an event that fires often for the optimization objective so personalization can gather data about each alternative during its 24 hour assignment window.
  • Pick personalized alternatives that’ll produce a greater difference in outcomes. This makes it easier for the machine learning algorithm to differentiate the alternatives and produce results faster.
  • Use the Google Analytics Events and Debug View dashboards to verify everything’s set up correctly - just like we did when we set up our ad frequency personalization.


Remote Config personalization makes it possible to customize individual user experiences to drive your most important objectives. The ability to optimize not only the frequency but also the value of a Google Analytics event opens up optimizing lifetime ad revenue, ad spend, in-app purchases, and more.

Want to learn more? Check out the Ignite Talk from Firebase Summit 2022: Remote Config Personalization: Everything You Need To Know and more use cases for personalization. Thanks for reading and happy personalizing!