CHAPTER 17
Intermediate
App Analytics, Crash Reports, and Monitoring
Updated: May 31, 2026
6 min read
# CHAPTER 17
App Analytics, Crash Reports, and Monitoring
1. Introduction
Publishing your app is not the finish line; it is the starting line. Once real users start interacting with your app across thousands of different devices, network conditions, and OS versions, unexpected things will happen. If a bug causes the app to crash on launch for Android 12 users, how will you know? If 80% of users uninstall the app after viewing the onboarding screen, how will you find out? You need telemetry. In this chapter, we will explore how to integrate App Analytics and Crash Reporting to monitor your app's health in production.2. Learning Objectives
By the end of this chapter, you will be able to:- Understand the importance of production monitoring.
- Differentiate between Analytics and Crash Reporting.
- Identify industry-standard tools like Firebase and Crashlytics.
- Define key metrics like DAU, MAU, and Retention Rate.
- Analyze crash reports to fix production bugs.
3. Why You Need Crash Reporting
In development, if your app crashes, Xcode or Android Studio prints a stack trace to your console. In production, the app simply closes instantly, leaving the user frustrated. A crash reporter is an SDK installed in your app that catches the crash the moment it happens, securely packages the stack trace (the exact line of code that failed), device info, and OS version, and sends it to a web dashboard.4. Firebase Crashlytics
Crashlytics (owned by Google/Firebase) is the industry standard for mobile crash reporting. It is free and works perfectly on both iOS and Android.- Fatal Crashes: The app completely died. Crashlytics highlights the most frequent crashes so you can prioritize fixing what affects the most users.
- Non-Fatal Errors: You can explicitly log handled exceptions. If a network request fails but your app handles it gracefully, you can still log it to Crashlytics to monitor backend health.
- Velocity Alerts: If a new release suddenly starts crashing for 5% of users, Crashlytics sends you an immediate email alert so you can halt the rollout.
5. Why You Need App Analytics
Analytics tell you *what* users are doing inside your app. If you build a new "Profile Customization" feature, you need to know if anyone is actually clicking the button.-
Events: You log custom events in your code. (e.g.,
logEvent("checkout_completed")).
-
Funnels: You can track the steps a user takes. For example:
Viewed Paywall->Clicked Subscribe->Completed Purchase. If 1000 users view the paywall but only 10 complete the purchase, you know you have a conversion bottleneck.
6. Firebase Analytics vs. Mixpanel/Amplitude
- Firebase Analytics: Free, deeply integrated with Google Ads, great for basic event tracking and audience building.
- Amplitude / Mixpanel: Premium product analytics tools. They offer much deeper, real-time funnel analysis and user journey tracking. Highly recommended for complex apps.
7. Key App Metrics to Monitor
When looking at your analytics dashboard, focus on these acronyms:- DAU / MAU (Daily/Monthly Active Users): The absolute number of unique users opening your app.
- Session Length: How long the average user spends in your app per visit.
- Retention Rate (Day 1, Day 7, Day 30): The most critical metric. If 100 people download your app today, how many open it tomorrow (Day 1)? How many open it next week (Day 7)? High retention means your app has real value.
- Crash-Free Users: The percentage of users who used the app today without experiencing a crash. Target: >99.5%.
8. Native App Store Analytics
Both Apple (App Store Connect) and Google (Play Console) provide built-in analytics. These are best for tracking Top-of-Funnel metrics:- Store Page Impressions (How many people saw your icon).
- Conversion Rate (How many clicked download).
- Uninstalls (Google Play shows this clearly; Apple does not track uninstalls well).
9. Privacy and Compliance Warning
When integrating Analytics and Crashlytics, you are collecting user data.- GDPR/CCPA: You must declare the use of Firebase/Crashlytics in your Privacy Policy and Google Play Data Safety form.
- Personally Identifiable Information (PII): NEVER log user emails, passwords, or credit card numbers in your analytics events or crash logs.
10. Common Mistakes
- Logging Too Much: Logging an event every time a user scrolls down a list. This creates massive noise in your dashboard and uses up the user's data and battery. Log *meaningful* actions.
-
Ignoring dSYMs/Mapping files: For Crashlytics to show you the exact line of code (e.g.,
MainActivity.kt:45), you must upload debug symbol files during your build process. If you don't, the crash report will just be unreadable machine code.
11. Publishing Best Practices
-
Custom Keys in Crashlytics: Right before a crash happens, you can leave "breadcrumbs" (e.g.,
Crashlytics.log("User tapped Checkout")). When reviewing the crash later, these breadcrumbs help you reproduce the exact steps the user took.
12. Exercises
- 1. Research the term "Retention Curve." Draw a typical retention curve for a mobile app on a piece of paper. Notice how steeply it drops on Day 1.
- 2. Log into the Firebase Console (create a free test project if necessary) and explore the Crashlytics dashboard interface.
13. Publishing Checklist
- [ ] Crashlytics SDK is initialized on app startup.
- [ ] Build pipeline is configured to upload mapping/dSYM files.
- [ ] Core business events (Sign Up, Purchase) are tracked via Analytics.
- [ ] Use of analytics is documented in the Privacy Policy.
14. MCQ Quiz with Answers
Question 1
What is the primary purpose of a tool like Firebase Crashlytics?
Question 2
Which metric tells you the percentage of users who return to your app exactly one week after installing it?
15. Interview Questions
- Q: If an app has a high number of downloads but very low Day 1 Retention, what does that indicate about the app?
- Q: Explain why uploading dSYM (iOS) or ProGuard mapping (Android) files to your crash reporter is critical.