Google Analytics collects usage and behavior data for your web app. The SDK logs two primary types of information:
Events: What is happening in your app, such as user actions, system events, or errors.
User properties: Attributes you define to describe segments of your user base, such as language preference or geographic location.
Analytics automatically logs some events and user properties; you don't need to add any code to enable them.
Before you begin
Depending on whether you're working with a new or existing web app, you can link Analytics to your Firebase project in one of the following ways:
- If you are creating a new project, add Firebase to your JavaScript project and follow the steps to set up Google Analytics for your Firebase project. When prompted, select your existing Google Analytics account to link or create a new one.
- If you have an existing project and did not configure Google Analytics, you can link Google Analytics to your project from the Integrations tab under settings > Project settings.
- If you have an existing project with Analytics configured before July 31, 2019, you'll need to upgrade to the full Google Analytics experience for free from the Integrations tab of your Project settings.
Once you have completed one of these steps, you will have successfully linked your Firebase project to a Google Analytics data stream associated with an App + Web property.
Add the Analytics SDK to your app
Depending on how your web application is hosted, your configuration may be handled automatically or you may need to add or update your Firebase configuration object. If your web app already uses Google Analytics, you may need to do additional setup described in Use Firebase with existing gtag.js tagging.
If your app uses Firebase Hosting and uses reserved URLs for the Firebase SDKs:
- Firebase automatically handles configuring your application. To complete setup, add the scripts from the Your apps card in your Project settings to the <body> tag of your app, if you haven't already.
If your app does not use reserved URLs:
- Add the config object from the Your apps card in your Project settings to the <body> tag of your app.
If you're working with an existing web app, update your Firebase config object to ensure the
measurementId
field is present. It's required to use Google Analytics with your web app. The config object should look similar to the following example:const firebaseConfig = { apiKey: "AIzaSyCGQ0tYppWFJkuSxBhOpkH0xVDmX245Vdc", authDomain: "project-id.firebaseapp.com", databaseURL: "https://project-id.firebaseio.com", projectId: "project-id", storageBucket: "project-id.appspot.com", messagingSenderId: "637908496727", appId: "2:637908496727:web:a4284b4c99e329d5", measurementId: "G-9VP01NDSXJ" };
Use Firebase with existing gtag.js tagging
If you previously had Google Analytics running in your app using the gtag.js snippet, your app may require additional setup if you plan to do one of the following:
- Add Google Analytics calls from Firebase to the page but also plan to
continue using
gtag()
calls directly on the same page. - Want to use the same measurement ID between both direct
gtag()
calls and Google Analytics data sent to Firebase.
To ensure your events are available for use by all Firebase services, complete the following additional setup steps:
Remove
[?id=GA_MEASUREMENT_ID](https://www.googletagmanager.com/gtag/js?id=GA_MEASUREMENT_ID)
in the url. Your gtag snippet should be similar to<script async src="https://www.googletagmanager.com/gtag/js"></script>
Remove the line
gtag('config', 'GA_MEASUREMENT_ID');
where theGA_MEASUREMENT_ID
is the same as themeasurementId
in your Firebase config snippet. If you have other IDs for other Analytics properties on the page, you do not need to remove their config line.Make sure you call
firebase.analytics()
before you send any events withgtag()
.
Otherwise, events sent to that ID with gtag()
calls will not be associated
with Firebase and will not be available for targeting in other
Firebase services.
Start logging events
After you have created a reference to the Analytics service with 'firebase.analytics()', you can begin to log events with the 'logEvent()' method.
Certain events are recommended for all apps; others are recommended for specific business types or verticals. You should send suggested events along with their prescribed parameters, to ensure maximum available detail in your reports and to benefit from future features and integrations as they become available. This section demonstrates logging a pre-defined event, for more information on logging events, see Log events.
The following example demonstrates how to log a recommended event to indicate a user has received a notificationt in your app:
firebase.analytics().logEvent('notification_received');
Next steps
- Use the DebugView to verify your events.
- Explore your data in the Firebase console.
- Explore the guides on events and user properties.
- Learn how to export your data to BigQuery.