Anomalies

L'API Google Play Developer Reporting vous permet de récupérer les anomalies détectées dans les ensembles de métriques. Une anomalie est générée chaque fois que la valeur de la métrique dépasse la plage attendue, en fonction des valeurs des 28 jours précédents pour cette même métrique. Les anomalies sur plusieurs jours consécutifs sont fusionnées en un seul résultat d'anomalie.

Si l'augmentation anormale de la valeur d'une métrique persiste suffisamment longtemps, le modèle de détection s'adapte et élargit les valeurs attendues jusqu'à ce que les points de données suivants ne soient plus considérés comme anormaux.

Récupérer les anomalies

Les anomalies peuvent être listées avec la méthode anomalies.list.

Requête simple :

Cette requête HTTP GET spécifie le paramètre de nom d'application et renvoie la liste complète des anomalies détectées pour votre application.

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

Réponse à l'anomalie :

La réponse inclut suffisamment d'informations pour identifier précisément l'emplacement de l'anomalie :

{
  "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"
        }
      }
    },
  ]
}

Demande filtrée :

Il est possible d'appliquer un filtre pour n'afficher que les anomalies qui étaient actives pendant une période spécifique. Pour ce faire, spécifiez la fonction activeBetween(start, end) dans le champ de filtre de la requête. Il est possible de spécifier des limites illimitées de chaque côté de la plage avec le mot clé spécial UNBOUNDED. Si vous spécifiez une limite de début ou de fin, elle doit respecter le format RFC 3339, par exemple 2022-02-22T04:00Z.

GET https://playdeveloperreporting.googleapis.com/v1beta1/apps/com.example.app/anomalies?filter=activeBetween("2022-01-01T00:00:00Z", UNBOUNDED)

Réponse filtrée :

La réponse n'inclut que les anomalies qui étaient actives dans la plage de temps spécifiée :

{
  "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étriques disponibles

La détection des anomalies n'est pas compatible avec toutes les métriques et tous les ensembles de métriques pour le moment. Voici la liste des métriques actuellement acceptées :

Ensemble de métriques Métriques acceptées
vitals.anrrate anrRate
vitals.crashrate crashRate
vitals.excessivewakeuprate excessiveWakeupRate
vitals.stuckbackgroundwakelockrate stuckBgWakelockRate