codexier.

Mobile Apps

Crash Reporting and App Analytics Basics

By CodexierPublished 5 min read

When a website breaks, someone usually emails. When an app crashes, most users just close it, and some never open it again. Without crash reporting you learn about problems from one-star reviews, days late and without the details needed to fix them. This guide covers the tools, a small analytics plan that answers real questions, the privacy rules, and a weekly routine that keeps an app healthy.

Why crashes go unreported

A crash is a bad moment for the user, and reporting it is effort they have no reason to make. Many crashes happen only on certain devices, operating system versions or network conditions you never tested, so they never show up in your own use. Some failures are not even crashes: a screen that freezes, a payment that silently fails, a login loop. Without data, these look like users losing interest.

The app stores do show some crash and performance data, in App Store Connect and Google Play Console, and Google Play weighs stability in how it presents apps. That data is useful as a check, but it arrives late and lacks the detail a developer needs.

Crash reporting tools

ToolStrengthsConsider
Firebase CrashlyticsFree, widely used, good for native and cross-platform appsPart of Google's ecosystem; review data settings
SentryStrong for React Native and web together, performance tracing, EU hosting optionPaid tiers as volume grows
App Store Connect / Play ConsoleBuilt in, no SDK neededDelayed and less detailed

Whichever you choose, three things decide whether the reports are useful. Upload debug symbols or source maps with every release, or the stack traces are unreadable. Tag each report with the app version, so you can see whether a fix worked. And add breadcrumbs, a short log of what the user did before the crash, without personal data such as names or messages.

A small analytics event plan

Analytics goes wrong when teams track everything and read nothing. Start from the questions you need answered, then define only the events that answer them. Write the plan down: event name, when it fires, and which properties it carries.

  1. Do new users complete onboarding? Track onboarding started and completed.
  2. Do they reach the core action? Track the one action that defines value, such as booking made or order placed.
  3. Where do they fail? Track errors shown to users, such as payment failed or login failed.
  4. Do they come back? Use the tool's retention view based on app opens.
  5. Which version are they on? Attach app version to every event.

Ten well-named events answer more questions than two hundred automatic ones.

A weekly health check

  1. Crash-free users for the latest version, compared with the previous one.
  2. New crash types since last week, sorted by number of users affected.
  3. Errors shown to users, especially in login and payment.
  4. The key funnel: onboarding completed and core action reached.
  5. New store reviews, read alongside the crash data.

When not to buy help: if your app has few users and a developer already looks at Crashlytics every week, you are covered. When nobody owns this, or releases keep introducing crashes, it belongs in an app maintenance plan. Book a short call and we will check what your app is already reporting.

Frequently asked questions

Does crash reporting slow the app down?

Not noticeably. The tools collect data locally and send it in the background, usually on the next app start after a crash.

Do we need consent for crash reporting?

Often not, if the data is minimal and used only to keep the app working. Analytics for product decisions or marketing generally does need consent in the EU. Document your reasoning either way.

Should we use Firebase or Sentry?

Both work well. Crashlytics is free and common for mobile-only apps; Sentry suits teams that also want web errors and performance in one place, and offers EU hosting.

What is a good crash-free rate?

Aim for the vast majority of sessions to be crash-free and, more importantly, for the rate to stay stable or improve with each release. A drop after a release means stop and fix.

Do you know when your app crashes?

Tell us which tools your app uses today. On a short call we will say what is missing, what it takes to fix, and whether a maintenance plan makes sense.

Book a free 15-minute call