joe
joe

Reputation: 1371

How to add Firebase custom events for analytics?

I've seen some questions and answers about custom events for firebase analytics, but i just wanted to ask you a straight question so you can give me a straight answer :)

So, this is my method for logging:

@Override
public void logFeatureSelectedEvent(String categoryName, String actionName, String labelName) {
    Bundle bundle = new Bundle();
    bundle.putString(EventTrackingKeys.EventTypes.CATEGORY, categoryName);
    bundle.putString(EventTrackingKeys.EventTypes.ACTION, actionName);
    bundle.putString(EventTrackingKeys.EventTypes.LABEL, labelName);
    mFirebaseAnalytics.logEvent(EventTrackingKeys.EventAnalyticTypes.FEATURE_SELECTED_EVENT, bundle);
}

with custom event/key names:

String CATEGORY = "category";
String ACTION = "action";
String LABEL = "label";
String FEATURE_SELECTED_EVENT = "feature_selected_event";

So, in my firebase console I only get event name "feature_selected_event", without custom parameter names.. I've seen some answers that i should call setUserProperty() method and register that user property in the User Properties tab of Firebase Analytics. Is this the right way to implement that method? :

   @Override
public void logFeatureSelectedEvent(String categoryName, String actionName, long value) {
    Bundle bundle = new Bundle();
    bundle.putString(EventTrackingKeys.EventTypes.CATEGORY, categoryName);
    bundle.putString(EventTrackingKeys.EventTypes.ACTION, actionName);
    bundle.putLong(EventTrackingKeys.EventTypes.VALUE, value);
    mFirebaseAnalytics.setUserProperty(EventTrackingKeys.EventTypes.CATEGORY, categoryName);
    mFirebaseAnalytics.setUserProperty(EventTrackingKeys.EventTypes.ACTION, actionName);
    mFirebaseAnalytics.setUserProperty(EventTrackingKeys.EventTypes.VALUE, value);
    mFirebaseAnalytics.logEvent(EventTrackingKeys.EventAnalyticTypes.FEATURE_SELECTED_EVENT, bundle);
}

Upvotes: 60

Views: 116817

Answers (8)

ismail alaoui
ismail alaoui

Reputation: 6073

To save an event on analytics :

 Bundle bundle = new Bundle();
 bundle.putString(FirebaseAnalytics.Param.ITEM_ID,your_event_detail);
 bundle.putString(FirebaseAnalytics.Param.ITEM_NAME,your_event_name);

FirebaseAnalytics.getInstance(context).logEvent(FirebaseAnalytics.Event.SELECT_CONTENT, bundle)

How long it takes for an event to appear in the report According to the offical documentation :

Data about an event appears in the report up to 24 hours from when the event was triggered on your website or app. To verify that Google Analytics has collected an event in the last 30 minutes, see the Event count by Event name card in the Realtime report.

Upvotes: 0

hemdroid
hemdroid

Reputation: 141

Fire a custom event:-

Bundle bundle = new Bundle();
bundle.putString(variableName1, variableValue1);
bundle.putString(variableName2, variableValue2);
FirebaseAnalytics.getInstance(context).logEvent(event_name, bundle);

To view your custom events, open Firebase Console and go to Realtime Analytics and then scroll to bottom and check "Event count by Event name" section, you will find your event there.

Upvotes: 1

Jerry Chong
Jerry Chong

Reputation: 9210

Similar to @Josef Vancura answer, but in Kotlin:

val params = Bundle()
params.putString("invalid_url", urlPart)
mFirebaseAnalytics.logEvent("eventInvalidUrl", params)

Upvotes: 3

Josef Vancura
Josef Vancura

Reputation: 1180

You can see it in console without any hacks, but it is pretty hidden there.

Go to Firebase Analytics -> Stream View -> Select Events -> Top events -> select_content -> there you go

My code:

Bundle params = new Bundle();
params.putString("invalid_url", urlPart);
mFirebaseAnalytics.logEvent("eventInvalidUrl", params);

Firebase Analytics Stream View

Upvotes: 43

Uttam Panchasara
Uttam Panchasara

Reputation: 5865

In Firebase, As i know we have to log the events in < Key,value > pair and then need to log.

Like this :

bundle.putString("yourKey","yourValue");

For Example, I have put the Custom event in MyApp to get the AppOpen time as below.

    Bundle params = new Bundle();
    params.putString("open_time", TimeStampUtil.getTimeStamp(System.currentTimeMillis()));
    mFirebaseAnalytics.logEvent("app_open_time", params);

so, in above example i have create a custom event with name app_open_time and put the value with key as open_time.

Try in this way and for more info refer this : https://firebase.google.com/docs/analytics/android/events

Upvotes: 11

saswanb
saswanb

Reputation: 1985

Not only do you need to do what Muhammad Riyaz says, you also need to get your user count up above the "threshold". In my case, installing my app on a dozen simulator versions pushed my user count to 12, and voila, suddenly I have custom event parameter data in my Firebase dashboard.

Upvotes: 7

Muhammad Riyaz
Muhammad Riyaz

Reputation: 2942

If you are still looking for answer, You need to add custom parameters into the event manually once in the dashboard Like this https://support.google.com/firebase/answer/7397304?hl=en&ref_topic=6317489 Actually there is no need to link BigQuery for this. But it will take several hours to show up custom parameter once you navigate inside the event.

Upvotes: 23

TOP
TOP

Reputation: 2614

The custom parameters will not be shown. Only suggested events with suggested parameters are presented in dashboard.

To see the custom parameters, you have to link your project to Big Query (it's not free).

Also Firebase will not show information if the number of user is less than 10.

Upvotes: 27

Related Questions