Join us in person and online for Firebase Summit on October 18, 2022. Learn how Firebase can help you accelerate app development, release your app with confidence, and scale with ease. Register now

Log events

Stay organized with collections Save and categorize content based on your preferences.

This guide shows you how to log events in your app.

Events provide insight on what is happening in your app, such as user actions, system events, or errors.

Analytics automatically logs some events for you; you don't need to add any code to receive them. If your app needs to collect additional data, you can log up to 500 different Analytics Event types in your app. There is no limit on the total volume of events your app logs. Note that event names are case-sensitive and that logging two events whose names differ only in case will result in two distinct events.

Before you begin

Make sure that you've set up your project and can access Analytics as described in Get Started with Analytics.

Log events

After you have created a FirebaseAnalytics instance, you can use it to log events with the logEvent() method.

To help you get started, the Analytics SDK defines a number of recommended events that are common among different types of apps, including retail and ecommerce, travel, and gaming apps. To learn more about these events and when to use them, see Recommended events.

You can find implementation details for recommended event types in the following locations:

The following example demonstrates how to log a SELECT_CONTENT event:

Java

Bundle bundle = new Bundle();
bundle.putString(FirebaseAnalytics.Param.ITEM_ID, id);
bundle.putString(FirebaseAnalytics.Param.ITEM_NAME, name);
bundle.putString(FirebaseAnalytics.Param.CONTENT_TYPE, "image");
mFirebaseAnalytics.logEvent(FirebaseAnalytics.Event.SELECT_CONTENT, bundle);

Kotlin+KTX

firebaseAnalytics.logEvent(FirebaseAnalytics.Event.SELECT_ITEM) {
    param(FirebaseAnalytics.Param.ITEM_ID, id)
    param(FirebaseAnalytics.Param.ITEM_NAME, name)
    param(FirebaseAnalytics.Param.CONTENT_TYPE, "image")
}

In addition to the prescribed parameters, you can add the following parameters to any event:

  • Custom parameters: Custom parameters can be used as dimensions or metrics in Analytics reports. You can use custom dimensions for non-numerical event parameter data and custom metrics for any parameter data better represented numerically. Once you've logged a custom parameter using the SDK, register the dimension or metric to ensure those custom parameters appear in Analytics reports. Do this via: Analytics > Events > Manage Custom Definitions > Create Custom Dimensions

    Custom parameters can be used in audience definitions that may be applied to every report. Custom parameters are also included in data exported to BigQuery if your app is linked to a BigQuery project. Find sample queries and much more at Google Analytics 4 BigQuery Export.

  • VALUE parameter: VALUE is a general purpose parameter that is useful for accumulating a key metric that pertains to an event. Examples include revenue, distance, time, and points.

If your application has specific needs not covered by a recommended event type, you can log your own custom events as shown in this example:

Java

Bundle params = new Bundle();
params.putString("image_name", name);
params.putString("full_text", text);
mFirebaseAnalytics.logEvent("share_image", params);

Kotlin+KTX

firebaseAnalytics.logEvent("share_image") {
    param("image_name", name)
    param("full_text", text)
}

Set default event parameters

You can log parameters across events using setDefaultEventParameters. Default parameters are associated with all future events that are logged.

As with custom parameters, register the default event parameters to ensure they appear in Analytics reports.

Java

Bundle parameters = new Bundle();
params.putString("level_name", "Caverns01");
params.putInt("level_difficulty", 4);
mFirebaseAnalytics.setDefaultEventParameters(parameters);

Kotlin+KTX

val parameters = Bundle().apply {
    this.putString("level_name", "Caverns01")
    this.putInt("level_difficulty", 4)
}

firebaseAnalytics.setDefaultEventParameters(parameters)

If a parameter is specificed in the logEvent() method, that value is used instead of the default.

To clear a default parameter, call the setDefaultEventParameters method with the parameter set to null.

View events in the Android Studio debug log

You can enable verbose logging to monitor logging of events by the SDK to help verify that events are being logged properly. This includes both automatically and manually logged events.

You can enable verbose logging with a series of adb commands:

adb shell setprop log.tag.FA VERBOSE
adb shell setprop log.tag.FA-SVC VERBOSE
adb logcat -v time -s FA FA-SVC

This command displays your events in the Android Studio logcat, helping you immediately verify that events are being sent.

View events in the dashboard

You can view aggregated statistics about your events in the Firebase console dashboards. These dashboards update periodically throughout the day. For immediate testing, use the logcat output as described in the previous section.

You can access this data from the Events dashboard in the Firebase console. This dashboard shows the event reports that are automatically created for each distinct type of event logged by your app.