App Not Responding Rate
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. 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
- ANR Detection — Android OS detects when the main thread is frozen for >5 seconds and the user attempts to interact.
- Reporting — Google Play Console tracks ANR rate via Google Play Services / Firebase Crashlytics.
- Ranking Impact — The 2026 algorithm penalizes high ANR rates as a quality/performance signal.
- Competitive Advantage — Apps in the top 50% ANR performance may receive a ranking boost.
- Experimentation Context — Store listing tests can improve tap-through and install conversion, but they do not offset poor technical quality. ANR improvements should be evaluated alongside conversion, retention, trial starts, purchases, refund rate, and lifetime value.
ANR Trigger Scenarios:
- Network request on the main thread (blocking I/O)
- Heavy image processing, video rendering on the main thread
- Expensive database queries
- Large data parsing (JSON, XML)
- Synchronous file operations
- Complex animations or rendering
Google Play is also the most practical native testing environment for Android ASO workflows. Store Listing Experiments can test visual and text assets directly in the store environment, including the app icon, first screenshot set, screenshot order, feature graphic, short description, full description, and localized variants. Description tests require careful interpretation because a winning variant may improve conversion, keyword visibility, or both.
A disciplined Google Play experiment should have one primary variable, a written hypothesis, a defined traffic split, a minimum full-week runtime, a confidence threshold before action, and notes on any abnormal traffic or external events during the test. Changing the icon, screenshot messaging, and short description at the same time may produce a commercial result, but it reduces learning quality because the winning factor is unclear.
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.
Apple’s native testing stack is more segmented than Google Play’s. Product Page Optimization can test icons, screenshots, and app preview videos against the default product page, but it cannot test the app name, subtitle, keyword field, or description. Those require separate metadata workflows. Custom Product Pages support intent-specific landing experiences, while paid traffic alignment helps match ad messaging to the store page.
This separation means iOS teams should plan creative tests, metadata updates, and paid landing-page tests as distinct workflows rather than treating them as one broad ASO update.
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.
Experiment Evaluation Metrics:
- Store listing tap-through rate
- Product-page conversion rate
- Install-to-open rate
- Trial start rate
- Trial-to-paid conversion rate
- Refund rate
- Retention rate
- Lifetime value
Install conversion alone is not enough to evaluate a listing or paywall change. A screenshot variant that increases installs but attracts lower-intent users can reduce downstream value. A paywall variant that improves purchases among high-intent users can justify different acquisition and ASO priorities.
Best Practices
- 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 the main thread.
- Optimize Image Handling — Load images asynchronously. Use Glide, Picasso, or Coil for efficient image loading with caching. Downsize images before display.
- Profile for Jank and ANR — Use Android Profiler in Android Studio to identify main-thread blocking. Set ANR detection threshold in Firebase Crashlytics < 1%.
- Use WorkManager for Background Tasks — Defer heavy computation (data sync, batch processing) to WorkManager or background services. Never block the main thread for user operations.
- Batch and Throttle Operations — If heavy operations are necessary, batch them and throttle frame updates. Use RecyclerView efficiently with ViewHolder patterns.
- Monitor Firebase Crashlytics — Track ANR rate in Crashlytics dashboard. Set up alerts for ANR spikes > 1%. Investigate top ANR stack traces weekly.
- Test on Low-end Devices — Test on Android devices with 2GB RAM and older processors. ANR issues often surface only on lower-spec devices.
- Set Animation Frame Rates — Cap animations to 30 FPS on low-end devices; modern devices can handle 60 FPS. Check device capabilities before rendering.
- Connect Performance Fixes to Controlled ASO Experiments — Use wiki:ab-testing to measure whether improved stability translates into better tap-through, install conversion, retention, and revenue. Treat every visible store element as a hypothesis: the icon tests recognition, the first screenshots test user intent, the short description or subtitle tests perceived value, and the paywall headline tests willingness to pay. Do not use creative testing as a substitute for fixing ANR problems; use it to quantify the conversion impact after technical quality improves.
- Prioritize High-Leverage Listing Tests — When search visibility is decent but tap-through or product-page conversion is weak, begin with the icon and first screenshots. Test icon direction across clear axes such as literal vs. abstract, simple vs. detailed, category convention vs. contrast, light vs. dark emphasis, and functional cue vs. emotional cue. The first two or three screenshots usually carry most of the persuasive work, so test benefit-led captions, feature order, visual density, background color, and whether the first frame should show product UI or outcome messaging.
- Use Platform-Specific Testing Workflows — On Google Play, use wiki:store-listing-experiments for icon, screenshot, feature graphic, short description, full description, and localized variants. On iOS, use Product Page Optimization for creative tests, metadata updates for title/subtitle/keyword/description iteration, and wiki:custom-product-pages for intent-matched landing experiences. Do not automatically apply a Google Play winner to iOS without retesting.
- Match Custom Pages to User Intent — For apps with meaningful keyword clusters or paid traffic segments, build custom pages around distinct user intents. A fitness app found through “calorie counter” and “home workout” traffic should not necessarily lead with the same screenshots. Custom pages should align the first visual story with the exact promise that attracted the user.
- Extend Testing to Paywall Components — Subscription apps should connect store experiments to paywall experiments. Dynamic paywall logic can show a trial timeline only when a trial is available, hide promotional messaging when a user is not eligible, emphasize annual savings when a yearly plan is selected, or adjust supporting copy based on acquisition source or onboarding path. The winning store asset is the one that creates the best downstream value, not always the one with the highest install rate.
- Document Test Results — Keep a testing log that records hypotheses, variants, traffic splits, runtime, confidence level, external events, winners, losers, and follow-up decisions. Losing tests are useful because they show which messages, visuals, offers, or positioning angles users did not respond to.
Common Testing Mistakes:
- Ending tests too early because the first few days look promising
- Testing too many variables at once
- Ignoring weekday and weekend behavior differences
- Running major tests during abnormal traffic periods without labeling them
- Declaring a winner without enough impressions
- Applying a Google Play winner to iOS without retesting
- Treating install conversion as the only success metric
- Forgetting to document losing tests
Examples
Example 1: Network Call on Main Thread (BAD)
// DON'T DO THIS — blocks main thread
HttpURLConnection conn = (HttpURLConnection) new URL(apiEndpoint).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 a lower star rating.
Example 4: Performance Fix + Listing Experiment
- Finance App A reduces ANR from 2.8% to 0.6%.
- The team then tests a clearer icon and benefit-led first screenshot.
- Install conversion improves, but the result is evaluated together with first-open rate, account creation, retention, and refund rate.
- The winning variant is kept only if it improves both store conversion and downstream user quality.
Example 5: Intent-Matched Custom Page
- A language app has traffic from “travel phrases” and “exam prep.”
- The default product page explains the full product.
- A travel-focused custom page leads with offline phrases and quick conversation scenarios.
- An exam-focused custom page leads with structured lessons, practice tests, and progress tracking.
- Each page is measured against the default page and against downstream subscription behavior.
Dependencies
Influences
- Ranking Factors — ANR is now a critical ranking signal (2026+)
- Quality Score — ANR contributes to overall quality assessment
- Download Velocity — Better performance drives more qualified installs
- Conversion Rate — Low-ANR apps convert users to retained installs more effectively
- wiki:ab-testing — Controlled experiments help measure the conversion and revenue impact of performance, creative, and paywall changes
- wiki:store-listing-experiments — Google Play experiments support structured testing of visual and text assets
- wiki:custom-product-pages — Intent-specific pages can improve message matching for different acquisition sources and keyword clusters
Depends On
- Android Vitals — ANR tracking via Google Play's vitals monitoring
- App Store Optimization (ASO) — Performance is now a core ASO factor
- Retention Rate — High ANR directly causes uninstalls and churn
Platform Comparison
| Metric | Google Play Store | Apple App Store |
|---|---|---|
| **ANR/Hang Tracking** | ANR tracked in Google Play Console; <5 second main-thread freeze | Hang rate tracked; >250ms main thread freeze |
| **Ranking Impact** | Severe penalty; apps in bottom 25% lose significant visibility | Minimal impact; slight quality score adjustment |
| **Benchmark Thresholds** | <0.5% excellent, >2.5% penalized | <2% excellent, <5% acceptable |
| **Monitoring Tools** | Firebase Crashlytics, Google Play Console | Xcode Metrics, Crashlytics |
| **Native Listing Tests** | Store Listing Experiments can test icon, screenshots, feature graphic, short description, full description, and localized variants | Product Page Optimization can test icons, screenshots, and app preview videos; metadata fields require separate workflows |
| **Intent-Matched Pages** | Custom store listings and experiments can support localized or audience-specific messaging | Custom Product Pages can support intent-specific screenshots, promotional text, and paid traffic alignment |
| **Testing Interpretation** | Description changes may affect both conversion and search discovery | Creative tests and metadata tests must be evaluated separately |
Related Terms
Android Vitals, Quality Score, Ranking Factors, Performance Metrics, App Store Optimization (ASO), Battery Consumption, Retention Rate, Crash Rate, wiki:ab-testing, wiki:store-listing-experiments, wiki:custom-product-pages
---
Recent Updates
- 2026-05-08: Added platform-specific guidance for connecting ANR improvements with controlled ASO experiments.
- 2026-05-08: Expanded testing guidance for icons, screenshots, descriptions, custom pages, and paywall components.
- 2026-05-08: Added downstream experiment metrics including retention, refund rate, trial conversion, and lifetime value.