HotCodePush

Analytics

What the analytics page of a HotCodePush app shows per channel and period, where every figure comes from, and how to read the same numbers from the CLI and the API.

The analytics page of an app shows what every device did with every release. It holds the updates per day with their failure and skip reasons, the adoption of each release, what the fleet runs today, and the monthly active devices the invoice counts. The short version is the site's OTA update analytics page.

Every figure comes from the devices. A device reports the result of each update it handled, and the console counts the reports per release, app and channel. Results are counted exactly, while update checks and bytes are approximate by design.

Reading the page

The filter at the top holds the channel, the app's default channel to begin with, and the period: 7, 30 or 90 days. The charts that show the fleet as it is today ignore the period, and the monthly active devices ignore the channel.

Charts appear with the first reports. Until a device has reported, each chart shows what it will hold.

Release health

ChartWhat it shows
UpdatesStacked bars per day: applied, failed and rolled back. A bar's height is the day's attempts, and each day's bar names its counts.
Failure reasonsA ring of the reasons failed updates carried over the period: the download, the verification or a crash on launch, as results and reasons lists them.
Skipped reasonsA ring of the reasons devices waited, such as a low battery or a metered network.
Time to adoptionTwo tiles for the newest release of the channel: when it reached half of the devices active that day, and when it reached nine in ten.
AdoptionOne line per recent release of the channel, each the share of that day's active devices running it. A release's own page keeps its single curve.
Auto-rollback rateA line of the updates devices rolled back on their own, per day. It is the early sign of a bad release, and the signal auto-pause watches.

The denominator of every rate is the devices active that day, so a release reaching a quiet fleet is not read as slow.

Fleet composition

ChartWhat it shows
DistributionWhich releases the fleet runs today, as a ring with a legend.
Native versionsThe devices per store build. The chart tells you when an old build can lose compatibility.
SDK versionsThe devices per SDK version. The chart tells you which devices a release with a newer condition will not reach.

The three rings are snapshots of the device registry as of today, so the period does not apply to them.

Usage and billing

ChartWhat it shows
Monthly active devicesOne line per month, the same count the invoice carries. See Billing and MAU. The channel filter does not apply.
TrafficUpdate checks and bytes per day, approximate by design, beside the download bytes the devices report themselves. These are the figures fair use is measured against.

The same numbers elsewhere

The CLI prints the three statistics an app has with hotcodepush statistics get: the fleet, the updates per day and the usage, narrowed by channel and period like the page.

The API returns them at the app's statistics endpoints, so your own dashboard or an alert can read them on a schedule.

Last updated on

On this page