highgoogle

App Not Responding Rate

Also known as: ANR Rate, Application Not Responding, ANR Crashes, Responsiveness Metric

Analytics & Metrics

Definition

App Not Responding (ANR) Rate is the percentage of app sessions during which the app becomes unresponsive (main thread frozen) for more than 5 seconds on Android. ANR events occur when the app cannot process user input or refresh the UI within the timeout window, typically due to main-thread blocking from network calls, heavy computation, or database operations. As of 2026, Google Play's ranking algorithm penalizes apps with high ANR rates severely—apps in the bottom 25% of their category for ANR performance face significant ranking penalties, regardless of other optimization efforts or relevance scores.

How It Works

Google Play Store

  1. ANR Detection — Android OS detects when main thread is frozen for >5 seconds and user attempts to interact
  2. Reporting — Google Play Console tracks ANR rate via Google Play Services / Firebase Crashlytics
  3. Ranking Impact — 2026 algorithm penalizes high ANR rates as a quality/performance signal
  4. Competitive Advantage — Apps in top 50% ANR performance may receive ranking boost

ANR Trigger Scenarios:

  • Network request on main thread (blocking I/O)
  • Heavy image processing, video rendering on main thread
  • Expensive database queries
  • Large data parsing (JSON, XML)
  • Synchronous file operations
  • Complex animations or rendering

Apple App Store

ANR equivalents on iOS are tracked as "Hang Rate" (app frozen >250ms). Impact on App Store ranking is minimal; quality score considers hangs but not as severely as Google Play.

Formulas & Metrics

ANR Rate Calculation:

ANR_Rate = (Sessions_with_ANR / Total_Sessions) × 100

Benchmark Thresholds (by category, 2026):

  • Top 25% (Excellent): <0.5% ANR rate
  • 25–50% (Good): 0.5–1.0% ANR rate
  • 50–75% (Fair): 1.0–2.5% ANR rate
  • Bottom 25% (Poor): >2.5% ANR rate

ANR Distribution by Category:

  • Games: 0.3–1.5% average ANR rate
  • Social: 0.5–2.0%
  • Utilities: 0.2–0.8%
  • Finance: 0.1–0.5% (users intolerant of hangs)

Ranking Penalty Calculation (estimated):

If app ANR > Category_75th_Percentile, apply visibility penalty = -20% to -50% depending on severity

Best Practices

  1. Move Network Calls Off Main Thread — Use Kotlin Coroutines, RxJava, or Retrofit with background executors. Never call HTTP requests, database queries, or file I/O on main thread.
  1. Optimize Image Handling — Load images asynchronously. Use Glide, Picasso, or Coil for efficient image loading with caching. Downsize images before display.
  1. Profile for Jank and ANR — Use Android Profiler in Android Studio to identify main-thread blocking. Set ANR detection threshold in Firebase Crashlytics < 1%.
  1. Use WorkManager for Background Tasks — Defer heavy computation (data sync, batch processing) to WorkManager or background services. Never block main thread for user operations.
  1. Batch and Throttle Operations — If heavy operations necessary, batch them and throttle frame updates. Use RecyclerView efficiently with ViewHolder patterns.
  1. Monitor Firebase Crashlytics — Track ANR rate in Crashlytics dashboard. Set up alerts for ANR spikes > 1%. Investigate top ANR stacktraces weekly.
  1. Test on Low-end Devices — Test on Android devices with 2GB RAM and older processors. ANR issues often surface only on lower-spec devices.
  1. Set Animation Frame Rates — Cap animations to 30 FPS on low-end devices; modern devices can handle 60 FPS. Check device capabilities before rendering.

Examples

Example 1: Network Call on Main Thread (BAD)

// DON'T DO THIS — blocks main thread
HttpURLConnection conn = (HttpURLConnection) new URL("https://api.example.com/data").openConnection();
InputStream in = conn.getInputStream(); // Freezes UI!

Example 2: Async Network Call (GOOD)

// DO THIS — uses coroutine
viewModelScope.launch {
    try {
        val data = withContext(Dispatchers.IO) {
            apiService.fetchData()
        }
        updateUI(data) // Main thread update
    } catch (e: Exception) { }
}

Example 3: ANR Ranking Impact

  • Budget App A: Optimized for ANR <0.5%, strong search ranking for "budget app"
  • Budget App B: Poor ANR rate 3.5%, otherwise identical features/rating
  • App A outranks App B by >50% visibility in 2026, even with lower star rating

Dependencies

Influences

Depends On

Platform Comparison

MetricGoogle Play StoreApple App Store
**ANR/Hang Tracking**ANR tracked in Google Play Console; <5 second main-thread freezeHang rate tracked; >250ms main thread freeze
**Ranking Impact**Severe penalty; apps in bottom 25% lose significant visibilityMinimal impact; slight quality score adjustment
**Benchmark Thresholds**<0.5% excellent, >2.5% penalized<2% excellent, <5% acceptable
**Monitoring Tools**Firebase Crashlytics, Google Play ConsoleXcode Metrics, Crashlytics

Related Terms

Android Vitals, Quality Score, Ranking Factors, Performance Metrics, App Store Optimization (ASO), Battery Consumption, Retention Rate, Crash Rate

Sources & Further Reading

Referenced by (1)

#aso#glossary#analytics#performance#android-vitals
App Not Responding Rate — ASO Wiki | ASOtext