---
title: Quick Start
description: Getting started with Analytics in React Native Firebase
---
# Analytics Quick Start
## Installation
This module depends on the `@react-native-firebase/app` module. To get started and install `app`,
visit the project's quick start guide.
Install this module with Yarn:
```bash
yarn add @react-native-firebase/analytics
# Using iOS
cd ios/ && pod install
```
> Integrating manually and not via React Native auto-linking? Check the setup instructions for Android & iOS.
## Module usage
The Analytics package will automatically start tracking events such as when users clear app data, dismiss notifications and more.
To view the full list of automatic events, see [this page](https://support.google.com/firebase/answer/6317485) of the official Firebase documentation.
The package also provides a JavaScript API to allow for logging custom events and metrics throughout your application.
Import the Analytics package into your project:
```js
import analytics from '@react-native-firebase/analytics';
```
The package also provides access to the firebase instance:
```js
import { firebase } from '@react-native-firebase/analytics';
```
### Custom events
To log a custom event, use the `logEvent` method:
```js
import analytics from '@react-native-firebase/analytics';
async function onProductView() {
await analytics().logEvent('product_view', {
id: '123456789',
color: 'red',
via: 'ProductCatalog',
});
}
```
### Attaching user data
User data can be attached to analytical events via the [`setUserId`](reference/module#setUserId), [`setUserProperties`](reference/module#setUserProperties) and [`setUserProperty`](reference/module#setUserProperty) methods. Each Firebase project can have up to 25 uniquely named (case-sensitive) user properties.
```js
import analytics from '@react-native-firebase/analytics';
async function onSignIn(user) {
await Promise.all([
analytics().setUserId(user.uid),
analytics().setUserProperty('account_balance', user.balance),
]);
}
```
> When you set user properties, be sure to never include personally identifiable information such as names, social security numbers, or email addresses, even in hashed form.
### Tracking screen names
Similar to Analytics on the web, it's important to understand the user's journey within your application, for example
tracking drop off points during a e-commerce transaction flow. The Analytics package provides a method called
`setCurrentScreen` to help track this.
```js
import React, { useEffect } from 'react';
import { View } from 'react';
import analytics from '@react-native-firebase/analytics';
function BasketScreen() {
async function trackScreenView(screen) {
// Set & override the MainActivity screen name
await analytics().setCurrentScreen(screen, screen);
}
// Track a screen view once the component has mounted
useEffect(() => {
trackScreenView('BasketScreen');
}, []);
return ;
}
```
### Resetting analytics data
In some cases, resetting all analytics data is required on certain events such as signing out of the application.
To achieve this call the `resetAnalyticsData` method.
```js
import analytics from '@react-native-firebase/analytics';
async function onSignOut() {
await analytics().resetAnalyticsData();
}
```
### Ignore analytics events when running in TestLab (Pre-launch report)
When submitting to the Google Play Store, analytics events are triggered while the app is being tested in TestLab in order to generate pre-launch reports. Typically you want to ignore those events, which you can achieve via the following utility functions:
```js
import firebase from '@react-native-firebase/app';
import '@react-native-firebase/analytics';
if (firebase.app().utils().isRunningInTestLab) {
firebase.analytics().setAnalyticsCollectionEnabled(false);
}
```