It’s only a couple weeks ago that I wrote the last piece from the ML Kit Series, but Firebase has been using Machine Learning way before that with Firebase Predictions.

Yes boys this is ML Kit series bonus piece

Predictions analyses your users’ behavior and creates groups among which of them are likely to behave in certain ways, i.e. make a purchase or uninstall your app.

Prediction Types

Predictions offers 2 predefined prediction types: churn for users likely to uninstall your app in the next week, or spend for users likely to make purchases.

In addition, you can use Analytics events to make other types of behavior, for instance, spending in-game currency.

Here’s a little English lesson for ya’ll

Setup in the Console

Couple things you need to do in the Firebase Console before you get started:

  1. Go to Project Settings > Data Privacy and make sure that bottom bar “Share Analytics data…” is enabled.
  2. Go to Predictions and turn it on.

Making Predictions

If you’ve done the last step, this section may be irrelevant. You’ll have seen that churn and spend predictions have already started being made.

As for custom predictions, you need to create an Analytics event and mark it as a conversion event in the Console. After doing that, you’ll gain the option to add a new prediction using that event.

Setting the Accuracy Level

For quick explanations, the accuracy level determines the balance between the number of users accepted into a prediction and the likelihood that each of them actually will stay true to the prediction.

You won’t be able to mingle with this until 10 days after you started making your predictions. Once there though, you’ll see it in that same tile at the bottom of your prediction card.

Making Use of Predictions

So you have your predicted results. Some users are likely to churn (uninstall your app), and some actually like your app. Some are likely to spend, and some are English. Now what?

What you have now is a User Segment of users that fall into your prediction, which means now you personalise your app for those users and improve their experience.

Yes boys this is also User Segmentation bonus piece (check it out here)

Now we’re just sharing some ideas. By all means do whatever you want. I won’t be offended.

Cloud Messaging

For instance, you have a gaming app where users can purchase in-game currency. Quite a few users fall into your spend prediction. This is now your chance to offer them exclusive bonuses and offers that are better than what your app already offers. Since they are spending in your app and are well engaged, it’s unlikely they’d be annoyed (unless you do it every hour).

Another instance, you have a news story app and you made a share prediction to tell you about your users that are likely to share lots of articles with their friends (like this one, right?). By letting them know about your most interesting stories at a given time, you give them the incentive to spread the word. They do what they want and you get more traction.

Remote Config

For instance, you have a Space Invaders-like app and your users go through it by levels. Users who are not likely to spend can be given a rewarded ad to let them proceed (and keep your revenue coming), while users likely to spend on other in-game bonuses like shields and power-ups get the nice benefit of proceeding naturally.

Another instance, you have that same news story app with that share prediction. You can make the UI for the share buttons more prominent for users likely to share, just to give them that little extra push for your traction *wink*. To make sure you don’t annoy your users with this, you might want to set the prediction for this to have a high risk tolerance.


Predictions takes user segmentation, cloud messaging, and remote config to a whole new level. I like it a lot. Some of the examples here were stolen from the Firebase docs. That is all.

I did say I would work on Flamelink a bit more in these coming weeks, but I’m still getting around it. Is it something you guys are excited about? Let me know in the comments!