La API de Google Play Developer Reporting te permite recuperar las anomalías detectadas en los conjuntos de métricas. Se genera una anomalía cada vez que el valor de la métrica supera el rango esperado de la métrica, según los valores de los 28 días anteriores para esa misma métrica. Las anomalías de días consecutivos se combinan en un solo resultado de anomalía.
Si el aumento anómalo en el valor de una métrica persiste durante el tiempo suficiente, el modelo de detección se adapta y amplía los valores esperados hasta que los puntos de datos posteriores ya no se consideran anómalos.
Cómo recuperar anomalías
Las anomalías se pueden enumerar con el método anomalies.list.
Solicitud simple:
Esta solicitud HTTP GET
especifica el parámetro del nombre de la aplicación y devuelve la lista completa de anomalías detectadas para tu aplicación.
GET https://playdeveloperreporting.googleapis.com/v1beta1/apps/com.example.app/anomalies
Respuesta a anomalías:
La respuesta incluye suficiente información para consultar exactamente dónde ocurrió la anomalía:
{ "anomalies": [ { "name": "apps/com.example.app/anomalies/12345" "metric_set": "apps/com.example.app/anrRateMetricSet" "timeline_spec": { "aggregation_period": "DAILY" "start_time": { "year": 2022 "month": 1 "day": 23 "time_zone": { "id": "America/Los_Angeles" } } "end_time": { "year": 2022 "month": 1 "day": 23 "time_zone": { "id": "America/Los_Angeles" } } } "metric": { "metric": "anrRate", "decimal_value": { "value": "3.1415926535" } } }, { "name": "apps/com.example.app/anomalies/12345" "metric_set": "apps/com.example.app/crashRateMetricSet" "timeline_spec": { "aggregation_period": "DAILY" "start_time": { "year": 2021 "month": 12 "day": 10 "time_zone": { "id": "America/Los_Angeles" } } "end_time": { "year": 2021 "month": 12 "day": 10 "time_zone": { "id": "America/Los_Angeles" } } } "metric": { "metric": "crashRate", "decimal_value": { "value": "2.7182818284" } } }, ] }
Solicitud filtrada:
Es posible aplicar un filtro para devolver solo las anomalías que estuvieron activas durante un período específico. Para ello, especifica la función activeBetween(start, end)
en el campo de filtro de la solicitud. Es posible especificar límites no acotados en cualquiera de los lados del rango con la palabra clave especial UNBOUNDED
. Si se especifica un límite de inicio o finalización, debe seguir el formato RFC 3339, p.ej., 2022-02-22T04:00Z
.
GET https://playdeveloperreporting.googleapis.com/v1beta1/apps/com.example.app/anomalies?filter=activeBetween("2022-01-01T00:00:00Z", UNBOUNDED)
Respuesta filtrada:
La respuesta solo incluye las anomalías que estuvieron activas en el período especificado:
{ "anomalies": [ { "name": "apps/com.example.app/anomalies/12345" "metric_set": "apps/com.example.app/anrRateMetricSet" "timeline_spec": { "aggregation_period": "DAILY" "start_time": { "year": 2022 "month": 1 "day": 23 "time_zone": { "id": "America/Los_Angeles" } } "end_time": { "year": 2022 "month": 1 "day": 23 "time_zone": { "id": "America/Los_Angeles" } } } "metric": { "metric": "anrRate", "decimal_value": { "value": "3.1415926535" } } }, ] }
Métricas disponibles
Actualmente, no todas las métricas ni los conjuntos de métricas admiten la detección de anomalías. A continuación, se incluye la lista de las métricas admitidas actualmente:
Conjunto de métricas | Métricas admitidas |
---|---|
vitals.anrrate |
anrRate |
vitals.crashrate |
crashRate |
vitals.excessivewakeuprate |
excessiveWakeupRate |
vitals.stuckbackgroundwakelockrate |
stuckBgWakelockRate |