SlideShare a Scribd company logo
7 Tips for Optimizing Mobile App
Experience Metrics

Rob Kwok, Co-Founder & CTO
“
©2016 Copyright Apteligent
Our busiest branch in 2014 is the 7:01 from Reading
to Paddington – over 167,000 of our customers use
our Mobile Banking app between 7am and 8am on their
commute to work every day.
Ross McEwan
CEO
Royal Bank of
Scotland
Mobile is About Delivering Great Micro-Moments
Delivering the best user experience regardless of location, motion, proximity, time, and speed –
at all times, under all conditions
“
©2016 Copyright Apteligent
It took one day to lose a star and 6 months to get it back.
Mobile PM
Major News
Service
There’s No Margin for Error on Mobile
Getting mobile wrong is hazardous for your business.
•  30% of consumers indicate that they will consider leaving a brand due "
to a poor app experience 
•  51% of consumers believe mobile should be easier than web
•  70% of millennials will critique an app based on their experience 

Source: Apteligent Data
©2016 Copyright Apteligent
Typical Bad User Experiences on Mobile Apps
Transaction
Failure
 Slow apps
Crashes
Network"
Services Error
©2016 Copyright Apteligent
User-Centered Metrics are Critical for Reputation, Retention, and
Monetization
It took one day to lose
a star and 6 months to
get it back
Mobile PM
Major News
Service
 “ •  Slow load times
•  Crashes
•  Freezes
•  Failed transactions
•  Sluggish response
”
©2016 Copyright Apteligent
The “Hierarchy of Abandonment”
Think About Customer Experience from Your User’s Perspective


•  The app crashes or freezes
•  Broken features
•  App takes forever to load
•  Waiting constantly
•  App drains my battery
•  App kills my data plan
FAILURE
FRUSTRATION
ANNOYANCE
©2016 Copyright Apteligent
Prioritize Crashes by Number of Affected Users
Avoid Failure – Tip #1: Fix the Top 10 Crashes Every Sprint
•  The best apps have crash rates of less than 0.25%
•  75% of apps across iOS & Android platforms do not meet this standard1

data.apteligent.com
1Source: https://data.apteligent.com/ios/benchmarks/global
https://data.apteligent.com/android/benchmarks/global
©2016 Copyright Apteligent
Prioritize Crashes Failing Your Most Critical Users
Avoid Failure – Tip #2: Fix Crashes in Critical Userflows
1.  Identify the three most important
User Flows in your app
•  e.g., Login, New Account Registration,
In-App Purchase
2.  Fix the top crashes affecting critical
User Flows each sprint
3.  Maintain a crash rate < 0.25% in
your most critical User Flows
©2016 Copyright Apteligent
How do your apps stack up to competitors and your users’ expectations?
Prevent Frustration – Tip #3: App Should Load in Less Than 2 Seconds
… Just to be Average
•  50% of consumers consider app load time
a major source of frustration
-  25% would leave a brand for unacceptable load
times
•  46% of iOS apps and 53% of Android
apps globally, across all categories, take
more than 2 seconds to load2
0	
  
10	
  
20	
  
30	
  
40	
  
50	
  
200	
   300	
   400	
   500	
   600	
   700	
   800	
   900	
   1000	
   2000	
  >2000	
  
%	
  of	
  iOS	
  Apps	
  Load	
  Time	
  (mS)	
  
0	
  
10	
  
20	
  
30	
  
40	
  
50	
  
60	
  
200	
   300	
   400	
   500	
   600	
   700	
   800	
   900	
   1000	
   2000	
   >2000	
  
%	
  of	
  Android	
  Apps	
  with	
  Load	
  Time	
  (mS)	
  
2Source: data.apteligent.com
©2016 Copyright Apteligent
Suggested Metrics for High Performance Apps
Prevent Frustration – Tip #4: Interactions Should Take < 1 Seconds
Userflow User Expectation Time
App load (time to availability of first
user-interaction)
App is “working” 1.0 s
Login (not including data entry) App is “working” 1.0 s
Registration (not including data entry) App is “working” 1.0 s
Search App is “working” 1.0 s
Screen transitions Immediate 0.1 s
Browse Immediate 0.1 s
Add to shopping cart Immediate 0.1 s
Check-out App is “working” 1.0 s
Locate (e.g. locate store) App is “working” 1.0 s
Barcode scan App is “working” 1.0 s
Human computer interaction
research shows if a user expects3: 
•  an operation to be instantaneous, then
it should take no more than 0.1 second
•  the app to be “working” then the operation
should take no more than
1.0 seconds
3Powers of 10: Time Scales in User Experience, Jakob Nielsen
©2016 Copyright Apteligent
Monitor the latency of network calls that cause the user to wait
Prevent Frustration – Tip #5: Monitor Important Network Calls
1.  Monitor the three most important Userflows in your app
2.  Time how long they take to complete
3.  Identify network calls that each Userflow depends on
4.  Monitor the latency and error rate of each call
-  Latency < 1 second
-  Error Rate < 0.25%
©2016 Copyright Apteligent
Ensure Your Users Don’t Uninstall Your App
Avert Annoyance: Tip #6: Measure Data and Battery Usage
•  Request Volume
- Monitor increased network calls due to new SDKs
•  Data Received and Sent
- Monitor the amount of data your app sends and
receives with each new version and with the addition
of new SDKs
•  Don’t be a “Battery Killer”
- Monitor battery drain
©2016 Copyright Apteligent
Stay On Top of Every OS Release, Every App Release
Tip #7: Monitor Your Performance Metrics – Over Time and Per Release
•  Track your app metrics release over
release, across internal infrastructure
changes (internal API and back-end
services), and across major ecosystems
events (e.g., OS version releases). 
•  A historical view of 30 to 90 days will
enable you to fill in the critical “why” to
the changes you measure (both positive
and negative), in the “what” of your key
business KPIs.
©2016 Copyright Apteligent 14
Key Metrics and their Targets
To Sum Up: Your Critical Mobile Metrics
•  Avoid Failures
-  Overall Crash Rate < 0.25%
-  Crash Rate of Critical Userflows (e.g., “Login”) < 0.25%
•  Prevent Frustration
-  App Load Time < 2 seconds (to meet the industry, < 1 second to excel)
-  Critical Userflows < 1 second
-  Userflow Dependent APIs: < 1 second latency, < 0.25% error rate
•  Avert Annoyance
-  Monitor Request Volume, Data Sent/Received, and Battery Impact
©2016 Copyright Apteligent 15
Measure metrics from the Customer’s perspective
Final Considerations
•  At a bare minimum monitor for app “Failures” like crashes, hangs and exceptions. 
•  Monitor the time it takes to access the visible and important user flows (how customers
typically journey through your app). Address “Frustration” and “Annoyance” issues. 
•  App load time is key user flow because it has a direct connection to your business result
though your abandonment KPI.
•  To set app metric targets, recognize the insights of human perception research, and set
metrics to meet or exceed your users’ built-in timing expectations. 
•  Track both the duration of the user flow and the latency and error rates of the underlying
network calls over time and between app releases.
©2016 Copyright Apteligent
Build better, Acquire More, Engage Deeper, Monetize Faster
Great Mobile Teams Have Both Vision And Visibility
Apteligent delivers user-centered metrics – helping mobile
teams prioritize app issues, focus on new feature
development, and deliver the best possible user experience.
	
  
The “why” behind the “what”
©2016 Copyright Apteligent
Build Better, Acquire More, Engage Deeper, Monetize Faster
Apteligent: Real. Enterprise. Mobility
Apteligent provides tools that empower mobile developers and product managers to
troubleshoot, prioritize, and resolve issues that damage their users’ app experience. 
•  Developers get detailed, real-time information to find and resolve crashes, freezes, and
issues in key user flows.
•  Product managers and KPI owners get global mobile industry and competitive insight to
better plan and focus their mobile initiatives, as well as real-time visibility to app metrics that
enable rapid issue detection, prioritization, and release-over-release app improvement.
©2016 Copyright Apteligent
Thank You!
www.apteligent.com
@robkwok

More Related Content

PPTX
Scenaric - Slideshare
Royi Shaish
 
PPTX
The Best Guidance for Measuring KPIs for Your Mobile Apps
Charlie perez
 
PPTX
5 Mobile App ROI Metrics That Actually Matter
Pocket Your Shop
 
PPTX
Google Analytic for Mobile Applications
Rajith Rajan
 
PPTX
Inspector presentation
Valerio Barbera
 
PDF
The Four Sources of Mobile App ROI
GPShopper, a Synchrony solution
 
PDF
Intro To Mobile Analytics
Tapmint
 
PDF
Appknox Enterprise Offerings
Appknox
 
Scenaric - Slideshare
Royi Shaish
 
The Best Guidance for Measuring KPIs for Your Mobile Apps
Charlie perez
 
5 Mobile App ROI Metrics That Actually Matter
Pocket Your Shop
 
Google Analytic for Mobile Applications
Rajith Rajan
 
Inspector presentation
Valerio Barbera
 
The Four Sources of Mobile App ROI
GPShopper, a Synchrony solution
 
Intro To Mobile Analytics
Tapmint
 
Appknox Enterprise Offerings
Appknox
 

What's hot (16)

PPTX
How Urban Outfitters Supercharged Their Sales and Mobile Initiatives with Cri...
CrittercismAPM
 
PDF
Mobile App Tracking - How it Works
MobileAppTracking
 
PDF
Making the Business Case: How App Performance Impacts Return on Investment
kwicr
 
PPTX
Mo Z Zapp
jakesb
 
PDF
Digital media analytics: web, mobile analytics - Ahmad Abdullah - Google
Jigserv Digital
 
PPSX
Adoption_Show
pankaj_kishore
 
PDF
Disrupt for Digital Transformation
JoAnna Cheshire
 
PDF
Mobile Analytics 101
Murat Can Demir
 
PPTX
Mobile App Analytics. Why, How, What's new - Mar 2019
Dmitry Klymenko
 
PDF
Understanding your app stats
Alexander Kochubey
 
PDF
Yandex Metrica for Apps – Understanding your app stats
alexandrok
 
PPTX
Apps vs-mobile-theme-2
Metasense Marketing
 
PPTX
UX & FinTech: 3 Ideas to Focus On
Code & Pepper
 
PDF
Do's & Don'ts of Stellar Push & In-App Marketing Campaigns
Localytics
 
PPTX
Designing Mobile Apps for the Enterprise
Christian Santiago
 
PDF
Wearables meetup
Perfecto Mobile
 
How Urban Outfitters Supercharged Their Sales and Mobile Initiatives with Cri...
CrittercismAPM
 
Mobile App Tracking - How it Works
MobileAppTracking
 
Making the Business Case: How App Performance Impacts Return on Investment
kwicr
 
Mo Z Zapp
jakesb
 
Digital media analytics: web, mobile analytics - Ahmad Abdullah - Google
Jigserv Digital
 
Adoption_Show
pankaj_kishore
 
Disrupt for Digital Transformation
JoAnna Cheshire
 
Mobile Analytics 101
Murat Can Demir
 
Mobile App Analytics. Why, How, What's new - Mar 2019
Dmitry Klymenko
 
Understanding your app stats
Alexander Kochubey
 
Yandex Metrica for Apps – Understanding your app stats
alexandrok
 
Apps vs-mobile-theme-2
Metasense Marketing
 
UX & FinTech: 3 Ideas to Focus On
Code & Pepper
 
Do's & Don'ts of Stellar Push & In-App Marketing Campaigns
Localytics
 
Designing Mobile Apps for the Enterprise
Christian Santiago
 
Wearables meetup
Perfecto Mobile
 
Ad

Similar to 7 Tips for Optimizing Mobile App Metrics (20)

PPTX
Mobile App User Experience Myths, Debunked
Apteligent
 
PDF
How to Improve App Performance in 2025.pdf
flufftailshop
 
PDF
Improve App Performance: Key Tips Explained
Shiv Technolabs Pvt. Ltd.
 
PDF
10 Ways to Better Engage App Users in 10 Seconds
Evgeny Tsarkov
 
PDF
Grow Hack Athens Pt.2: Growth Hacking For Mobile Apps
GrowthRocks
 
PDF
[TTT Meetup] Enhance mobile app testing with performance-centric strategies (...
NITHIN S.S
 
PDF
7 Factors to Consider While Developing Mobile Apps
99tests
 
PPTX
The Art of Mobile Performance (Mobiconf 2015)
David Low
 
PPTX
DC4 - Zigzagging around in mobile app development
Francesca Cuda
 
PDF
A Guide on Automated Mobile App Performance Testing and Optimization.pdf
flufftailshop
 
PDF
Characterizing and detecting performance bugs for smartphone applications
School of Engineering, HKUST
 
PPTX
7 Proven Mobile App Loading Speed Tips in 2024
Velan Apps
 
PPTX
Mobile apps that win
DellFoglight
 
PDF
The guide to automating app growth
Manpreet Sarkaria
 
PDF
Key Metrics and KPIs in Mobile App Testing
Catherine William
 
PPTX
mobile application project for software engineering student
dagimnega44
 
PDF
Measuring Digital Transformation Success Key Metrics for Mobile Growth
tirtharajclickseek
 
PDF
Mobile App Development Services | Mindtree
AnikeyRoy
 
PPTX
Growth Hacks: Practical Tips for your Mobile Apps
Deepak Abbot
 
PDF
How to optimize app performance and reduce app crashes.pdf
Sparity1
 
Mobile App User Experience Myths, Debunked
Apteligent
 
How to Improve App Performance in 2025.pdf
flufftailshop
 
Improve App Performance: Key Tips Explained
Shiv Technolabs Pvt. Ltd.
 
10 Ways to Better Engage App Users in 10 Seconds
Evgeny Tsarkov
 
Grow Hack Athens Pt.2: Growth Hacking For Mobile Apps
GrowthRocks
 
[TTT Meetup] Enhance mobile app testing with performance-centric strategies (...
NITHIN S.S
 
7 Factors to Consider While Developing Mobile Apps
99tests
 
The Art of Mobile Performance (Mobiconf 2015)
David Low
 
DC4 - Zigzagging around in mobile app development
Francesca Cuda
 
A Guide on Automated Mobile App Performance Testing and Optimization.pdf
flufftailshop
 
Characterizing and detecting performance bugs for smartphone applications
School of Engineering, HKUST
 
7 Proven Mobile App Loading Speed Tips in 2024
Velan Apps
 
Mobile apps that win
DellFoglight
 
The guide to automating app growth
Manpreet Sarkaria
 
Key Metrics and KPIs in Mobile App Testing
Catherine William
 
mobile application project for software engineering student
dagimnega44
 
Measuring Digital Transformation Success Key Metrics for Mobile Growth
tirtharajclickseek
 
Mobile App Development Services | Mindtree
AnikeyRoy
 
Growth Hacks: Practical Tips for your Mobile Apps
Deepak Abbot
 
How to optimize app performance and reduce app crashes.pdf
Sparity1
 
Ad

More from Apteligent (15)

PPTX
Harnessing Data to Reduce User Churn
Apteligent
 
PPTX
Apteligent - Choosing the Right SDKs to Optimize App Performance
Apteligent
 
PDF
Apteligent Data Report Google IO Edition
Apteligent
 
PDF
Apteligent Data Report iOS 9.3 Edition
Apteligent
 
PDF
50 Beautifully Designed Apple Watch Apps
Apteligent
 
PDF
State of Mobile Benchmark Report - MWC 2015 Edition
Apteligent
 
PDF
Accenture Digital: iOS 8 What You Need to Know
Apteligent
 
PDF
Apple Edition: iOS Mobile Experience Report
Apteligent
 
PPTX
50 Connected Devices - How Mobile and the Internet of Things Will Affect You
Apteligent
 
PPTX
Mobile DevOps
Apteligent
 
PDF
Samsung Android Crash & Performance Analysis
Apteligent
 
PDF
testCloud & Crittercism: How to Continuously Ensure Mobile App Quality
Apteligent
 
PPTX
WEBINAR: HOW URBAN OUTFITTERS MADE A 7X IMPROVEMENT IN THEIR MOBILE APP PERFO...
Apteligent
 
PDF
Getting to Mobile First: 5 Numbers to Consider!
Apteligent
 
PPTX
Crittercism Droidcon Berlin 2012
Apteligent
 
Harnessing Data to Reduce User Churn
Apteligent
 
Apteligent - Choosing the Right SDKs to Optimize App Performance
Apteligent
 
Apteligent Data Report Google IO Edition
Apteligent
 
Apteligent Data Report iOS 9.3 Edition
Apteligent
 
50 Beautifully Designed Apple Watch Apps
Apteligent
 
State of Mobile Benchmark Report - MWC 2015 Edition
Apteligent
 
Accenture Digital: iOS 8 What You Need to Know
Apteligent
 
Apple Edition: iOS Mobile Experience Report
Apteligent
 
50 Connected Devices - How Mobile and the Internet of Things Will Affect You
Apteligent
 
Mobile DevOps
Apteligent
 
Samsung Android Crash & Performance Analysis
Apteligent
 
testCloud & Crittercism: How to Continuously Ensure Mobile App Quality
Apteligent
 
WEBINAR: HOW URBAN OUTFITTERS MADE A 7X IMPROVEMENT IN THEIR MOBILE APP PERFO...
Apteligent
 
Getting to Mobile First: 5 Numbers to Consider!
Apteligent
 
Crittercism Droidcon Berlin 2012
Apteligent
 

7 Tips for Optimizing Mobile App Metrics

  • 1. 7 Tips for Optimizing Mobile App Experience Metrics Rob Kwok, Co-Founder & CTO
  • 2. “ ©2016 Copyright Apteligent Our busiest branch in 2014 is the 7:01 from Reading to Paddington – over 167,000 of our customers use our Mobile Banking app between 7am and 8am on their commute to work every day. Ross McEwan CEO Royal Bank of Scotland Mobile is About Delivering Great Micro-Moments Delivering the best user experience regardless of location, motion, proximity, time, and speed – at all times, under all conditions
  • 3. “ ©2016 Copyright Apteligent It took one day to lose a star and 6 months to get it back. Mobile PM Major News Service There’s No Margin for Error on Mobile Getting mobile wrong is hazardous for your business. •  30% of consumers indicate that they will consider leaving a brand due " to a poor app experience •  51% of consumers believe mobile should be easier than web •  70% of millennials will critique an app based on their experience Source: Apteligent Data
  • 4. ©2016 Copyright Apteligent Typical Bad User Experiences on Mobile Apps Transaction Failure Slow apps Crashes Network" Services Error
  • 5. ©2016 Copyright Apteligent User-Centered Metrics are Critical for Reputation, Retention, and Monetization It took one day to lose a star and 6 months to get it back Mobile PM Major News Service “ •  Slow load times •  Crashes •  Freezes •  Failed transactions •  Sluggish response ”
  • 6. ©2016 Copyright Apteligent The “Hierarchy of Abandonment” Think About Customer Experience from Your User’s Perspective •  The app crashes or freezes •  Broken features •  App takes forever to load •  Waiting constantly •  App drains my battery •  App kills my data plan FAILURE FRUSTRATION ANNOYANCE
  • 7. ©2016 Copyright Apteligent Prioritize Crashes by Number of Affected Users Avoid Failure – Tip #1: Fix the Top 10 Crashes Every Sprint •  The best apps have crash rates of less than 0.25% •  75% of apps across iOS & Android platforms do not meet this standard1 data.apteligent.com 1Source: https://data.apteligent.com/ios/benchmarks/global https://data.apteligent.com/android/benchmarks/global
  • 8. ©2016 Copyright Apteligent Prioritize Crashes Failing Your Most Critical Users Avoid Failure – Tip #2: Fix Crashes in Critical Userflows 1.  Identify the three most important User Flows in your app •  e.g., Login, New Account Registration, In-App Purchase 2.  Fix the top crashes affecting critical User Flows each sprint 3.  Maintain a crash rate < 0.25% in your most critical User Flows
  • 9. ©2016 Copyright Apteligent How do your apps stack up to competitors and your users’ expectations? Prevent Frustration – Tip #3: App Should Load in Less Than 2 Seconds … Just to be Average •  50% of consumers consider app load time a major source of frustration -  25% would leave a brand for unacceptable load times •  46% of iOS apps and 53% of Android apps globally, across all categories, take more than 2 seconds to load2 0   10   20   30   40   50   200   300   400   500   600   700   800   900   1000   2000  >2000   %  of  iOS  Apps  Load  Time  (mS)   0   10   20   30   40   50   60   200   300   400   500   600   700   800   900   1000   2000   >2000   %  of  Android  Apps  with  Load  Time  (mS)   2Source: data.apteligent.com
  • 10. ©2016 Copyright Apteligent Suggested Metrics for High Performance Apps Prevent Frustration – Tip #4: Interactions Should Take < 1 Seconds Userflow User Expectation Time App load (time to availability of first user-interaction) App is “working” 1.0 s Login (not including data entry) App is “working” 1.0 s Registration (not including data entry) App is “working” 1.0 s Search App is “working” 1.0 s Screen transitions Immediate 0.1 s Browse Immediate 0.1 s Add to shopping cart Immediate 0.1 s Check-out App is “working” 1.0 s Locate (e.g. locate store) App is “working” 1.0 s Barcode scan App is “working” 1.0 s Human computer interaction research shows if a user expects3: •  an operation to be instantaneous, then it should take no more than 0.1 second •  the app to be “working” then the operation should take no more than 1.0 seconds 3Powers of 10: Time Scales in User Experience, Jakob Nielsen
  • 11. ©2016 Copyright Apteligent Monitor the latency of network calls that cause the user to wait Prevent Frustration – Tip #5: Monitor Important Network Calls 1.  Monitor the three most important Userflows in your app 2.  Time how long they take to complete 3.  Identify network calls that each Userflow depends on 4.  Monitor the latency and error rate of each call -  Latency < 1 second -  Error Rate < 0.25%
  • 12. ©2016 Copyright Apteligent Ensure Your Users Don’t Uninstall Your App Avert Annoyance: Tip #6: Measure Data and Battery Usage •  Request Volume - Monitor increased network calls due to new SDKs •  Data Received and Sent - Monitor the amount of data your app sends and receives with each new version and with the addition of new SDKs •  Don’t be a “Battery Killer” - Monitor battery drain
  • 13. ©2016 Copyright Apteligent Stay On Top of Every OS Release, Every App Release Tip #7: Monitor Your Performance Metrics – Over Time and Per Release •  Track your app metrics release over release, across internal infrastructure changes (internal API and back-end services), and across major ecosystems events (e.g., OS version releases). •  A historical view of 30 to 90 days will enable you to fill in the critical “why” to the changes you measure (both positive and negative), in the “what” of your key business KPIs.
  • 14. ©2016 Copyright Apteligent 14 Key Metrics and their Targets To Sum Up: Your Critical Mobile Metrics •  Avoid Failures -  Overall Crash Rate < 0.25% -  Crash Rate of Critical Userflows (e.g., “Login”) < 0.25% •  Prevent Frustration -  App Load Time < 2 seconds (to meet the industry, < 1 second to excel) -  Critical Userflows < 1 second -  Userflow Dependent APIs: < 1 second latency, < 0.25% error rate •  Avert Annoyance -  Monitor Request Volume, Data Sent/Received, and Battery Impact
  • 15. ©2016 Copyright Apteligent 15 Measure metrics from the Customer’s perspective Final Considerations •  At a bare minimum monitor for app “Failures” like crashes, hangs and exceptions. •  Monitor the time it takes to access the visible and important user flows (how customers typically journey through your app). Address “Frustration” and “Annoyance” issues.  •  App load time is key user flow because it has a direct connection to your business result though your abandonment KPI. •  To set app metric targets, recognize the insights of human perception research, and set metrics to meet or exceed your users’ built-in timing expectations. •  Track both the duration of the user flow and the latency and error rates of the underlying network calls over time and between app releases.
  • 16. ©2016 Copyright Apteligent Build better, Acquire More, Engage Deeper, Monetize Faster Great Mobile Teams Have Both Vision And Visibility Apteligent delivers user-centered metrics – helping mobile teams prioritize app issues, focus on new feature development, and deliver the best possible user experience.   The “why” behind the “what”
  • 17. ©2016 Copyright Apteligent Build Better, Acquire More, Engage Deeper, Monetize Faster Apteligent: Real. Enterprise. Mobility Apteligent provides tools that empower mobile developers and product managers to troubleshoot, prioritize, and resolve issues that damage their users’ app experience. •  Developers get detailed, real-time information to find and resolve crashes, freezes, and issues in key user flows. •  Product managers and KPI owners get global mobile industry and competitive insight to better plan and focus their mobile initiatives, as well as real-time visibility to app metrics that enable rapid issue detection, prioritization, and release-over-release app improvement.
  • 18. ©2016 Copyright Apteligent Thank You! www.apteligent.com @robkwok