NEW REPORT! Defining and measuring mobile SLOs: Best practices for modern DevOps, SRE, and mobile teams

Download report
App Performance

Sampled vs unsampled data in mobile app performance monitoring

Unsampled data provides the most accurate picture of mobile app performance, enabling capabilities that aren't possible with sampled data.

In a recent survey of more than 1,000 mobile engineers, respondents said optimizing app performance was their top day-to-day priority, while one of their top frustrations was not having access to the tools they needed to do so.

One reason mobile engineers may feel under-resourced is because so many of today’s mobile monitoring platforms rely on sampled data.

Mobile apps produce a ton of data, and many tools — both free and paid — only collect and process a portion (or sample) of that data. Statistically speaking, samples should be representative of the whole, and therefore provide sufficient insight for the engineers tasked with maintaining and optimizing performance. But in practice, there can be drawbacks.

When a mobile monitoring platform collects and processes all of your data, that’s considered unsampled data.

However, providing lightweight, cost-efficient, high-fidelity mobile data is extremely difficult, and so many tools, including popular platforms like Firebase, opt to sample data instead.

Using sampled data can actually make measuring app performance more difficult. Rather than reduce noise, these platforms present the risk of not collecting, and therefore effectively hiding, valuable data and insights about your app’s performance and stability.

This is especially risky for apps that serve a core mobile function like call and texting apps; for apps that rely on high up-times during peak seasons like ecomm and entertainment apps; and for apps that push hardware to their limits, like in mobile games.

Why unsampled data is important for maintaining and optimizing mobile app performance

Mobile apps are built for people, so improving performance is all about improving your user experience.

It can be incredibly difficult to do that if you don’t have a clear understanding of the issues and errors that are disrupting said experience.

When platforms collect unsampled data, that means they’re capturing 100% of user session events. That’s important because user sessions encapsulate everything the user does from when they launch their app to closing it.

Capturing this data makes issue reproduction seamless, since all of the actions the user took, the sequence of their activities, and the issues they encountered, can all be accounted for and tied together.

This is incredibly valuable when trying to debug an issue in production, when you don’t have direct access to your users, or when the issue is globally distributed.

The advantage of unsampled data in mobile app monitoring

Unsampled data provides the clearest and most accurate picture of your mobile app’s performance, and enables capabilities that are impossible with sampled data alone.

Measure app performance and stability more accurately with unsampled data

Overall app health is a measure of your app’s stability and performance. Issues that impact stability encompass anything which contributes to app failures, while issues that impact performance encompass anything which interrupts app functions.

Collecting unsampled data helps mobile developers more accurately measure stability metrics like percentage of slow-starting sessions, percentage of sessions with low memory warnings, percentage of sessions in low power mode, and percentage of sessions that end in an Application Not Responding (ANR) error.

On the performance side, unsampled data allows for a more accurate measure of the success or failure for critical user flows like startup, login, or payment, as well as network call response codes, latency, and other connection issues.

Surface high-priority crashes through intelligent grouping and analysis powered by unsampled data

The collection of unsampled data from mobile apps can also enhance the crash analysis and resolution process.

This data enables the application of sophisticated grouping, correlation, and scoring methodologies, fundamentally changing how developers identify, prioritize, and resolve mobile app crashes.

This approach not only streamlines the crash resolution process but also enhances the overall user experience by minimizing the impact of crashes on end users.

Capture ANRs in production with unsampled data

ANR errors are a great example of issues that are hard to resolve and have an outsized impact on the user experience.

Platforms that provide unsampled data are able to capture every ANR event in real-time, along with crucial contextual details often overlooked by other platforms.

Unlike approaches that depend on sampled data or necessitate manual reproduction, platforms that capture unsampled data are able to uniquely secure call stack snapshots prior to ANR incidents. This enables developers to understand what was executing on the main thread before an ANR was triggered, offering a detailed and accurate insight into app performance issues across all users.

Easily identify faulty third-party SDKs with unsampled data

Unsampled data also makes it easier to identify third-party SDKs that might be at fault for a specific issue or crash, more clearly bringing this issue to the attention of the SDK owner.

This is particularly important for mobile game developers, as ad SDKs are a key revenue stream but can also be a key driver of issues, and therefore user churn.

When it comes to third-party SDKs, unsampled data allows developers to pinpoint exactly when and how an external component is contributing to a crash or issue. By having access to detailed, event-level data for every instance of app failure, teams can quickly identify patterns or anomalies that suggest a third-party SDK is at fault.

Make improving app performance easier with unsampled data

If improving app performance is your top priority, you can’t afford to compromise on data.

Platforms like Embrace, that capture 100% of user session insights and provide an unsampled view of your mobile data, make it easier for developers to identify, prioritize, and resolve the issues that impact their users.

To learn more and experience the Embrace difference first hand, request a demo today.

Embrace Deliver incredible mobile experiences with Embrace.

Get started today with 1 million free user sessions.

Get started free

Build better mobile apps with Embrace

Find out how Embrace helps engineers identify, prioritize, and resolve app issues with ease.