Launch Offer2 free audits with all 229 checks. No credit card required.Start free audit

GA4 for App Tracking: Firebase, App+Web, and Cross-Platform Properties (2026)

Intermediate

How does GA4 app tracking work?

GA4 app tracking is powered by the Firebase SDK (Google Analytics for Firebase). Unlike web tracking (which uses a JavaScript tag), app tracking requires integrating the Firebase SDK into your iOS or Android app's native code.

The Firebase SDK automatically collects app-specific events (app_open, session_start, first_open, in_app_purchase) and sends them to a GA4 app data stream. The key architectural difference from web: app data uses different session definitions, different user identifiers (app instance ID instead of _ga cookie), and different automatically collected events.

Web streams and app streams in the same GA4 property share the same reporting interface but the underlying data structures differ.

Setting up a GA4 App+Web property

An App+Web property is a GA4 property that has both a web data stream AND one or more app data streams (iOS, Android). This is the recommended setup for businesses with both a website and mobile apps — it allows unified cross-platform reporting in a single GA4 property.

Data streams in an App+Web property:

  • Web stream: collects from your website via gtag.js or GTM
  • iOS stream: collects from your iOS app via Firebase iOS SDK
  • Android stream: collects from your Android app via Firebase Android SDK

The user identity challenge: Web users are identified by their _ga cookie (device-based). App users are identified by their app_instance_id (device-based, per app install). A user who browses your website and then uses your app is counted as two separate users unless User-ID is implemented on both platforms.

User-ID for cross-platform identity: Implementing User-ID on both web (via gtag('config', {..., 'user_id': hashedId})) and app (via FirebaseAnalytics.setUserId(hashedId)) enables GA4 to stitch the same user's web and app sessions together under a single identity — the most powerful application of App+Web properties.

Firebase SDK setup (Android)

Step 1 — Add dependency:

Want to see which hidden implementation gaps are affecting your GA4 data quality?

Step 2 — Initialise in Application class:

Step 3 — Send a custom event:

Step 4 — Set User ID:

Firebase SDK setup (iOS / Swift)

Automatically collected app events

The Firebase SDK automatically collects these events (no code required):

EventTrigger
first_openFirst time app is opened after install or reinstall
app_openEach time the app is brought to foreground
session_startUser begins a new session (30 min timeout)
user_engagementApp is in foreground for 1+ second
in_app_purchaseUser completes an in-app purchase (stores only)
screen_viewCurrent screen changes (requires automatic screen reporting to be enabled)
app_removeApp is uninstalled (Android only)
app_updateApp is updated to a new version

Screen view automatic collection: Enable in Firebase SDK config (automaticScreenReportingEnabled = true) to auto-fire screen_view events when Activity/Fragment changes. For complex apps with custom navigation, manual screen_view events give more control.

App-specific metrics not available in web

MetricDefinitionApp only
DAU/MAU ratioDaily active users / monthly active users
App opens per userApp open events per user per period
Session duration distributionDistribution of session lengths
Crash-free users% of users with no crash events✅ (with Crashlytics)
In-app purchase revenueRevenue from in-app purchases

FAQ: GA4 for App Tracking: Firebase, App+Web, and Cross-Platform Properties

What should a team validate first when ga4 for app tracking: firebase, app+web, and cross-platform properties appears?

Reproduce the problem in the live implementation, isolate whether it is scoped to one report or flow, and compare it against at least one secondary source before changing the setup.

How do I know whether the fix actually worked?

You need before-and-after evidence in the browser and in the downstream report. A clean-looking dashboard without validation is not enough.

When should this become a full GA4 audit instead of a quick fix?

If the issue touches attribution, consent, revenue, campaign quality, or data trust for more than one workflow, it is usually safer to audit the surrounding implementation than patch only the visible symptom.

Run a GA4 audit before ga4 for app tracking: firebase, app+web, and cross-platform properties spreads into reporting decisions

Use GA4 Audits to surface implementation gaps, broken signals, and the next fixes to prioritize before the issue becomes harder to trust or explain.

These findings come from auditing thousands of GA4 properties. See how your property compares

GA4 Audits Team

GA4 Audits Team

Analytics Engineering

Specialising in GA4 architecture, consent mode implementation, and multi-layer audit frameworks.

Share