Skip to main content
Firebase Analytics (Google Analytics for Firebase) is the most widely used free analytics SDK for mobile apps. It provides in-depth event tracking, user segmentation, and A/B testing capabilities. Website: firebase.google.com Docs: firebase.google.com/docs/analytics

What It Provides

Key Features for ASO Skills

FeatureDescriptionUsed By
Event trackingCustom events with parametersapp-analytics
User propertiesSegment users by attributesretention-optimization
FunnelsMulti-step conversion analysisapp-analytics, monetization-strategy
Cohort analysisRetention by install dateretention-optimization
AudiencesDynamic user segmentsua-campaign
AttributionInstall source trackingua-campaign, app-analytics
A/B testingRemote Config experimentsab-test-store-listing
CrashlyticsCrash reportingapp-analytics

Key Metrics

MetricDescription
Active UsersDAU, WAU, MAU
SessionsApp opens with duration
RetentionDay 1, 2, 3, 7, 14, 21, 28, 30
EngagementSession duration, screens per session
RevenueIn-app purchases and ad revenue
ConversionsCustom conversion events
User PropertiesCustom segmentation

Setup

// 1. Add Firebase iOS SDK package
// https://github.com/firebase/firebase-ios-sdk

// 2. Initialize in AppDelegate
import Firebase

func application(_ application: UIApplication,
                 didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
  FirebaseApp.configure()
  return true
}

Core Events to Track

Analytics.logEvent("onboarding_started", parameters: nil)
Analytics.logEvent("onboarding_completed", parameters: [
  "steps_completed": 5
])

User Properties

Analytics.setUserProperty("free", forName: "subscription_status")
Analytics.setUserProperty("true", forName: "onboarding_completed")
User property values:
  • subscription_status: free, trial, premium
  • onboarding_completed: true, false
  • sessions_count: Number of sessions
  • feature_tier: new, casual, regular, power_user

Integration with ASO Skills

app-analytics

Uses Firebase for:
  • Setting up the event tracking plan
  • Creating funnels (onboarding → activation → purchase)
  • Monitoring DAU/MAU and stickiness ratio
  • Identifying drop-off points

retention-optimization

Uses Firebase for:
  • Cohort retention curves
  • Comparing retained vs churned user behavior
  • Identifying activation events that predict retention
  • Measuring push notification impact

monetization-strategy

Uses Firebase for:
  • Purchase funnel analysis
  • Paywall view → trial → purchase conversion
  • Revenue per user segment
  • A/B testing paywall variants (via Remote Config)

ua-campaign

Uses Firebase for:
  • Install attribution by source
  • Post-install event tracking by campaign
  • Audience creation for remarketing
  • ROAS measurement

Usage Examples

Track Onboarding Funnel

1

Define funnel events

Analytics.logEvent("onboarding_started", parameters: nil)
Analytics.logEvent("permission_granted", parameters: ["type": "notifications"])
Analytics.logEvent("profile_created", parameters: nil)
Analytics.logEvent("onboarding_completed", parameters: nil)
2

Create funnel in Firebase Console

Go to Analytics → Funnels → Create Funnel → Add steps in order
3

Analyze drop-off

View conversion rate at each step and identify where users drop off

Measure Retention by Cohort

  1. Go to Firebase Console → Analytics → Retention
  2. Select cohort type: “First Open” or “Custom Event”
  3. View Day 1, 7, 14, 28 retention curves
  4. Compare cohorts by acquisition source or user property

Create Audiences for Remarketing

1

Define audience criteria

Go to Analytics → Audiences → Create Audience
2

Example: Churned Users

  • Last engagement: > 7 days ago
  • Previous sessions: > 3
  • Subscription status: free
3

Export to ad networks

Link audience to Google Ads or Facebook Ads for remarketing campaigns

A/B Test Paywall

Using Firebase Remote Config:
import FirebaseRemoteConfig

let remoteConfig = RemoteConfig.remoteConfig()
let settings = RemoteConfigSettings()
settings.minimumFetchInterval = 3600 // 1 hour
remoteConfig.configSettings = settings

remoteConfig.fetch { status, error in
  if status == .success {
    remoteConfig.activate()
  }
}
Then in Firebase Console → Remote Config → Create Experiment.

When to Use Firebase vs Other Tools

NeedFirebaseApp Store ConnectRevenueCatAppeeky
In-app event tracking
Custom funnels
Retention cohortsBasicBy revenue
Crash reportingBasic
A/B testing (in-app)Paywalls
Download attributionBy source typeBy source
Keyword rankings
ASO data
CostFreeFreeFree tierCredit-based

Best Practices

Event Naming

  • Use snake_case: feature_used, not featureUsed
  • Be specific: paywall_viewed not screen_viewed
  • Include context: purchase_completed not completed

Parameters

  • Keep parameter names consistent across events
  • Use strings for categories, numbers for metrics
  • Max 100 unique event names, 25 parameters per event

User Properties

  • Use for segmentation: subscription status, user tier, country
  • Update when values change (sessions count, feature usage)
  • Max 25 user properties per app

Funnels

  • Keep funnels short (3-5 steps)
  • Focus on critical flows: onboarding, purchase, core feature usage
  • Set up at least: Install → Onboarding → Activation → Purchase

Resources

Build docs developers (and LLMs) love