Loading anomaly data...

Critical Alerts ({{vm.alerts.length}})

App icon

{{vm.getAppTitle(alert.packageName)}}

v{{alert.versionName}}

{{vm.getAlertTypeLabel(alert.alertType)}}
{{alert.metricValue | number:2}}%
Threshold: {{alert.thresholdValue}}%
{{vm.calculateDelta(alert.metricValue, alert.comparisonValue)}}%

{{alert.details.message}}

Detected {{vm.formatTimeAgo(alert.lastDetected)}}

First time here?

Click the "Run Detection" button to fetch extended metrics from Google APIs and detect anomalies. This may take 1-2 minutes for all apps.

All Apps ({{vm.apps.length}})
🔴 Critical ({{vm.getCriticalCount()}})
🟡 Warning ({{vm.getWarningCount()}})
🟢 Healthy ({{vm.getHealthyCount()}})
{{app.title}}

{{app.title || app.packageName}}

{{app.packageName}}

PRODUCTION
v{{app.production.versionName || '—'}}
Code: {{app.production.versionCodes.join(', ')}}
{{(app.production.installs | number:0) || '—'}} installs
Released: {{app.production.date | date:'dd/MM/yyyy'}}
ROLLING OUT
v{{app.progress.versionName || '—'}}
Code: {{app.progress.versionCodes.join(', ')}}
{{app.progress.rollout || '—'}}
Released: {{app.progress.date | date:'dd/MM/yyyy'}}
No version data

Loading metrics...

Crash Rate
{{app.production.extendedMetrics.crashRate24h | number:2}}%
Click for details
ANR Rate
{{app.production.extendedMetrics.anrRate24h | number:2}}%
Click for details
Trial Conv
{{app.production.extendedMetrics.trialConversionRate | number:2}}%
Ad Show Rate
{{app.production.extendedMetrics.adShowRateAggregate | number:2}}%
Click for details

⚠️ No extended metrics available

Click "Run Detection" to fetch metrics