Anomalías

La API de Google Play Developer Reporting te permite recuperar las anomalías detectadas en los conjuntos de métricas. Se produce una anomalía cada vez que el valor de la métrica supera el rango esperado de la métrica, según los 28 días anteriores de valores 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 el tiempo suficiente, el modelo de detección adapta y amplía los valores esperados hasta que los puntos de datos posteriores ya no se consideran anómalos.

Recupera anomalías

Las anomalías se pueden enumerar con el método anomalies.list.

Solicitud simple:

Esta solicitud GET HTTP especifica el parámetro del nombre de la aplicación y muestra la lista completa de las anomalías detectadas para tu aplicación.

GET https://playdeveloperreporting.googleapis.com/v1beta1/apps/com.example.app/anomalies

Respuesta de anomalías:

La respuesta incluye suficiente información para consultar con exactitud 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 mostrar solo las anomalías que estuvieron activas en 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 ilimitados en cualquier lado del rango con la palabra clave especial UNBOUNDED. Si especificas un límite de inicio o fin, 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

Por el momento, no todas las métricas ni los conjuntos de métricas admiten la detección de anomalías. Esta es la lista de las métricas admitidas en la actualidad:

Conjunto de métricas Métricas admitidas
vitals.anrrate Tasa de retención
vitals.crashrate Tasa de bloqueos
vitals.excessivewakeuprate Tasa de despertador excesiva
vitals.stuckbackgroundwakelockrate Porcentaje de bloqueo de activación fijo