Getting Down to Business With Firebase Monitoring Tools

Architecture Patterns in the Realm SDK

You've bravely re-architected your app and brought it into the world of modern Android! Realm's logic and separation of concerns follow a similar pattern.

Introduction (0:00)

My name is Saúl Díaz, and I’m an Android developer from Spain working at Chicisimo, a company whose aim is to inspire women and help them decide what to wear every morning.

How Firebase Fits with Business (2:50)

Firebase is a complete transversal set of tools Google released at Google I/O this year. Instead of demonstrating authentication or databases on Firebase, I will focus on the tools that help you monitor your application once you release it. This includes Analytics, Crash Reporting, and Remote Config.

Firebase Analytics (5:50)

Firebase Analytics is tracking based on events. This is different from Google Analytics, which is page-view based. A major advantage of Firebase Analytics is that many events are provided simply by integrating with it.

Some examples of the event reporting you get for free on Android are:

  • Application uninstalls
  • Application updates
  • Application Shares
  • Deep linking

Competitors have a difficult time replicating this, as Firebase is able to take advantage of the Android OS.

Audiences

Audiences is a way to filter users of the app. You are able to define audiences by many factors, such as by country, age, gender, and interests. With audiences, you will be able to take adavantage of segmentation.

In order to understand if your application is successful, you will need to understand which users and audiences are working better with a certain event. For example, you can segment by the people who logged in, and further segment by the type of login, to tell if they’ve signed in with Google, or Facebook, and what is more effective. You can then further optimize, to improve the engagement in the app.

Segmentation can also help with insights in regards to user behavior. For example, if there is a big drop of users on a tutorial of an app, using segmentation, you can pinpoint if the tutorial is too long, or even if the app crashes in the tutorial.

Retention

Once you know the segmentation and the funneling concepts, the final drive of Analytics is retaining your users. How this works varies between apps. At Chicisimo, through using Firebase, we found that if a user downloads our app, and ‘saves a look,’ the likelihood of the user staying on the app for a long time increases 10X, from 7% to 70%.

Firebase Crash reporting / Firebase Remote Config (18:02)

Crash reporting

Firebase crash reporting is much like Crashlytics, and is integrated into the Firebase tool. The UI is a little sluggish, and crash notifications arrive later, but much of the functionality is similiar to Crashlytics, as in you can filter by version, and between fatal and non fatal errors.

Firebase remote config

Optimization can be done using Firebase Remote Config, allowing for A/B testing. A/B testing is a way to simultaneously test more than one solution to a problem in your app without a separate release. A/B testing will allow you to determine, for example, which screen may keep users more engaged.

To use Firebase Remote Config, you need to configure several values to target the audiences. As an example, I may want to query all women in Spain who were on the application yesterday. Of those women, I show them the solution B, and for the rest, I will show solution A.

This can be extended to any number of different solutions at the same time. Suppose in Chicisimo, I want to test both feature-disabling and feature-throttling. I can choose to release the feature to some of the users, then increase it slowly, but if there is a critical crash, the feature can be turned off and rolled back immediately.

Firebase invites (24:48)

Firebase Invites is a very simple way of inviting users to send app invites. Users receive an invitation to download the app with a payload and a deep link - much of which you can customize.

You can customize the:

  • screen, with a picture and install button
  • install button text
  • invitation text
  • picture

How does this work? When I send my friend Mary the invitation, one of two things can happen:

  • Application installed: the application will open, and a deep link will take her to custom UI to provide some context.
  • Application not installed: she will be prompted to download it from the correct App Store. Then when she installs, she will receive the payload deep link initially sent to her.

Dynamic Links are a way to share links with other users. If the user has the application, it will bundle the deep link with the contextual information you want the user to see.

Firebase App Indexing (31:26)

App indexing gets your app onto Google Search. If users have your app installed, the result can go directly into detail screen in your app.

Moreover, this provides the ability to do more interesting features. For instance, if you’re using Chrome and Android, and the system detects that you don’t have the app installed, instead of showing the app in the results, it can show a card with information about the Play Store application, asking the user if it wants it installed.


Saul Diaz

Saul Diaz

Saúl Díaz has been developing Android since 2010. Currently he is working on Chicisimo, an Android app selected as one of the best of 2015 on Spain, and featured on Google Play by the Google Play Team. Previously he has worked as Android Lead on Fever and an Android Developer on Tuenti, two renowned apps in Spain. He is an active member of the Spanish Android Development community and regularly participates in events and conferences.