Adding Firebase Custom Events for Analytics Conversion

Tracking user interactions and understanding their journey within our app is important for driving engagement and optimizing our apps performance. Firebase Analytics provides a robust framework for logging custom events, allowing us to measure key actions that contribute to conversions. In this article, we will explore how to add Firebase custom events for analytics conversion in detail.

What are Firebase Custom Events?

  • Custom events in Firebase Analytics are user-defined events that allow us to track specific interactions within our app.
  • While Firebase automatically tracks some default events like first_open and app_open and custom events give us the flexibility to monitor particular actions relevant to our business goals such as button clicks, purchases, or feature engagements.

Why Use Custom Events?

  • Track Specific User Actions: Custom events help us to track specific user interactions that are critical to our app’s success.
  • Measure Conversions: By logging custom events, we can measure conversion rates for key actions, such as sign-ups or purchases.
  • Optimize User Experience: Understanding user behavior through custom events allows us to make data-driven decisions to improve the user experience.
  • Custom Reporting: Custom events enable us to create detailed and tailored reports in Firebase Analytics.

Setting Up Firebase Analytics

Before understanding the custom events, we need to set up Firebase Analytics in our project:

Step 1: Create a Firebase Project

  • Go to the Firebase Console by visiting the Firebase website.
  • Add a New Project: Click on “Add project,” enter your project name, and follow the setup instructions.

Step 2: Register Your App with Firebase

  • To register your app, click on the icon for your platform (Web, iOS, Android) and follow the instructions provided.
  • Download the configuration file provided by Firebase (google-services.json for Android or GoogleService-Info.plist for iOS). Include this file in your app.

Step 3: Integrate Firebase SDK

For Android

Add Firebase SDK: Open your build.gradle file and add the Firebase SDK:

// Project-level build.gradle
buildscript {
dependencies {
classpath 'com.google.gms:google-services:4.3.3'
}
}

// App-level build.gradle
apply plugin: 'com.android.application'
apply plugin: 'com.google.gms.google-services'

dependencies {
implementation 'com.google.firebase:firebase-analytics:17.4.3'
}

Add Configuration File: Place the google-services.json file in the app/ directory of your project.

For iOS

Add Firebase SDK: Add the Firebase SDK to your Podfile:

# Podfile
platform :ios, '10.0'

target 'YourApp' do
use_frameworks!
pod 'Firebase/Analytics'
end

Install Pods: Run pod install in your project directory.

Add Configuration File: Add the GoogleService-Info.plist file to your Xcode project.

For Web:

Install Firebase: Use npm to install Firebase:

npm install firebase

Initialize Firebase: Initialize Firebase in your app:

import { initializeApp } from "firebase/app";
import { getAnalytics } from "firebase/analytics";

// Your Firebase config object
const firebaseConfig = {
apiKey: "YOUR_API_KEY",
authDomain: "YOUR_PROJECT_ID.firebaseapp.com",
projectId: "YOUR_PROJECT_ID",
storageBucket: "YOUR_PROJECT_ID.appspot.com",
messagingSenderId: "YOUR_SENDER_ID",
appId: "YOUR_APP_ID",
measurementId: "YOUR_MEASUREMENT_ID"
};

// Initialize Firebase
const app = initializeApp(firebaseConfig);
const analytics = getAnalytics(app);

Adding Firebase Custom Events

Step 1: Define Your Custom Events

Start by identifying the key actions you want to track in your app. Examples of custom events include:

  • button_click: When a user clicks a specific button.
  • sign_up: When a user signs up for your app.
  • purchase: When a user makes an in-app purchase.
  • feature_engagement: When a user engages with a specific feature.

Step 2: Log Custom Events

Use the Firebase Analytics SDK to log these events. Here are examples for different platforms:

For Android:

import com.google.firebase.analytics.FirebaseAnalytics;

// Initialize Firebase Analytics
FirebaseAnalytics mFirebaseAnalytics = FirebaseAnalytics.getInstance(this);

// Log a custom event
Bundle params = new Bundle();
params.putString("button_name", "subscribe");
mFirebaseAnalytics.logEvent("button_click", params);

For iOS:

import Firebase

// Initialize Firebase Analytics
let analytics = Analytics.self

// Log a custom event
analytics.logEvent("button_click", parameters: [
"button_name": "subscribe" as NSObject
])

For Web:

import { logEvent } from "firebase/analytics";

// Log a custom event
logEvent(analytics, 'button_click', {
button_name: 'subscribe'
});

Example Custom Events

Example 1: Tracking Button Clicks

Log an event when a user clicks a specific button in your app.

For Android:

Bundle params = new Bundle();
params.putString("button_name", "subscribe");
mFirebaseAnalytics.logEvent("button_click", params);

For iOS:

analytics.logEvent("button_click", parameters: [
"button_name": "subscribe" as NSObject
])

For Web:

logEvent(analytics, 'button_click', {
button_name: 'subscribe'
});

Example 2: Tracking User Sign-Ups

Log an event when a user signs up for your app.

For Android:

Bundle params = new Bundle();
params.putString("method", "email");
mFirebaseAnalytics.logEvent("sign_up", params);

For iOS:

analytics.logEvent("sign_up", parameters: [
"method": "email" as NSObject
])

For Web:

logEvent(analytics, 'sign_up', {
method: 'email'
});

Example 3: Tracking In-App Purchases

Log an event when a user makes an in-app purchase.

For Android:

Bundle params = new Bundle();
params.putString("transaction_id", "T12345");
params.putDouble("value", 9.99);
params.putString("currency", "USD");
params.putParcelableArray("items", new Parcelable[] {
new Item("P123", "Product Name", "Category")
});
mFirebaseAnalytics.logEvent("purchase", params);

For iOS:

analytics.logEvent("purchase", parameters: [
"transaction_id": "T12345" as NSObject,
"value": 9.99 as NSObject,
"currency": "USD" as NSObject,
"items": [
["item_id": "P123", "item_name": "Product Name", "item_category": "Category"] as NSObject
]
])

For Web:

logEvent(analytics, 'purchase', {
transaction_id: 'T12345',
value: 9.99,
currency: 'USD',
items: [
{ item_id: 'P123', item_name: 'Product Name', item_category: 'Category' }
]
});

Example 4: Tracking Feature Engagement

Log an event when a user engages with a specific feature in your app.

For Android:

Bundle params = new Bundle();
params.putString("feature_name", "chat");
mFirebaseAnalytics.logEvent("feature_engagement", params);

For iOS:

analytics.logEvent("feature_engagement", parameters: [
"feature_name": "chat" as NSObject
])

For Web:

logEvent(analytics, 'feature_engagement', {
feature_name: 'chat'
});

Analyzing Custom Event Data

Using Firebase Console

  • Go to the Firebase console and click on “Analytics” to access the Analytics Dashboard.
  • Event Reports: View reports for different events you’ve logged, such as button_click, sign_up, and purchase.
  • User Properties: Define and view user properties to segment and analyze your audience.

Creating Custom Reports

Firebase lets us to make custom reports to dig deeper into specific metrics.

  • We can create custom dashboards in the Firebase console.
  • Link our Firebase project to Google Analytics for access to advanced reporting and analysis tools.

Example Outputs

  • User Engagement Report: Shows the average session duration and number of engaged sessions per user.
  • Conversion Funnel Report: Tracks the user journey from initial engagement to conversion, identifying drop-off points.
  • Retention Report: Measures user retention rates over time, indicating how often users return to your app.
  • Revenue Report: Provides insights into in-app purchases and total revenue generated.

Best Practices for Tracking Custom Events

  • Define Clear Objectives: Determine what you want to achieve with your custom events (e.g., track specific user actions, measure conversions).
  • Track Relevant Events: Focus on tracking events that align with your business goals and provide actionable insights.
  • Use Descriptive Event Names: Choose descriptive and consistent names for your custom events to ensure clarity and ease of analysis.
  • Segment Your Audience: Use user properties to segment your audience and analyze their behavior more effectively.
  • Monitor Regularly: Regularly review your custom event data to identify trends, patterns, and areas for improvement.
  • Optimize Based on Insights: Use the data to make informed decisions and optimize your app for better user engagement and conversions.

Conclusion

Adding Firebase custom events for analytics conversion is a powerful way to track specific user interactions and measure key actions that contribute to your app’s success. By setting up custom events, logging relevant interactions, and analyzing the data, you can gain valuable insights into user behavior and improve your app.