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
| Chart | What it shows |
|---|---|
| Updates | Stacked 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 reasons | A 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 reasons | A ring of the reasons devices waited, such as a low battery or a metered network. |
| Time to adoption | Two 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. |
| Adoption | One 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 rate | A 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
| Chart | What it shows |
|---|---|
| Distribution | Which releases the fleet runs today, as a ring with a legend. |
| Native versions | The devices per store build. The chart tells you when an old build can lose compatibility. |
| SDK versions | The 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
| Chart | What it shows |
|---|---|
| Monthly active devices | One line per month, the same count the invoice carries. See Billing and MAU. The channel filter does not apply. |
| Traffic | Update 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
Account
The sign-in methods of a HotCodePush account, two-factor authentication and its recovery codes, sessions, API tokens, notification preferences and deletion.
Audit log
What the HotCodePush audit log records, the event types per object, how to filter it by object, actor, app and time, and how to download it as a CSV file.