Data collection

Google Analytics for Firebase and Firebase Performance Monitoring both collect certain information in their default implementation:

Google Analytics for Firebase data collection

The type of information collected through the Google Analytics for Firebase default implementation includes:

  • Number of users and sessions
  • Session duration
  • Operating systems
  • Device models
  • Geography
  • First launches
  • App opens
  • App updates
  • In-app purchases

See a full list of the default events and user properties collected by Google Analytics for Firebase.

Firebase Performance Monitoring data collection

The type of information collected through the Firebase Performance Monitoring default implementation includes:

  • General device information, such as model, OS, and orientation
  • RAM and disk size
  • CPU usage
  • Carrier (based on Mobile Country and Network Code)
  • Radio/Network information (for example, WiFi, LTE, 3G)
  • Country (based on IP address)
  • Locale/language
  • App version
  • App foreground or background state
  • App package name
  • An pseudonymous app-instance identifier
  • Network URLs (not including URL parameters or payload content) and the following corresponding information:
    • Response codes (for example, 403, 200)
    • Payload size in bytes
    • Response times
  • Duration times for automated traces.

See a full list of the automatic traces collected by Performance Monitoring.

Identifying devices

The Firebase SDK library uses an app-instance identifier to identify a unique installation of the App.

When using the SDK, an app-instance identifier gets generated at the app level.

By default, the Firebase SDK collects identifiers for mobile devices (for example, Android Advertising ID and Advertising Identifier for iOS) and utilizes technologies similar to cookies.

On iOS, the SDK collects the Advertising Identifier if it is available. For IDFA to be available, a developer has to link in the following libraries:

  • libAdIdAccess.a
  • AdSupport.framework

If the Advertising Identifier is unavailable, the SDK collects the Vendor Identifier. If the Advertising Identifier becomes available after the Vendor Identifier was reported, the SDK stops collecting the Vendor Identifier.

By default, on Android the SDK collects the Advertising ID. If the Advertising ID is not collected, the device's hardware identifier, e.g., Android ID (SSAID), is collected instead. This alternative Android identifier cannot be reset.

Identifying in-app purchases

By default, the SDK collects in-app purchase information on iOS via the public transaction observer methods from Apple. On Android, this is enabled via Google Play In-app Billing. Both iOS and Android in-app purchase tracking can be turned off via the disableAutomatedInAppPurchaseReporting() method.

Was this helpful?
How can we improve it?