Anomalie

Interfejs Google Play Developer Reporting API umożliwia pobieranie anomalii wykrytych w zestawach danych. Anomalia jest wykrywana za każdym razem, gdy wartość danych przekracza oczekiwany zakres wartości tych danych na podstawie wartości z poprzednich 28 dni. Anomalie z kolejnych dni są łączone w jeden wynik anomalii.

Jeśli nietypowy wzrost wartości danych utrzymuje się wystarczająco długo, model wykrywania dostosowuje się i poszerza zakres oczekiwanych wartości, aż kolejne punkty danych przestaną być uznawane za anomalie.

Pobieranie anomalii

Anomalie można wyświetlić za pomocą metody anomalies.list.

Proste żądanie:

To żądanie HTTP GET określa parametr nazwy aplikacji i zwraca pełną listę wykrytych anomalii w aplikacji.

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

Odpowiedź na anomalię:

Odpowiedź zawiera wystarczającą ilość informacji, aby dokładnie określić, gdzie wystąpiła anomalia:

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

Odfiltrowane żądanie:

Możesz zastosować filtr, aby zwracać tylko anomalie, które były aktywne w określonym przedziale czasu. Aby to zrobić, w polu filtra w żądaniu określ funkcję activeBetween(start, end). Możesz określić nieograniczone limity po obu stronach zakresu za pomocą specjalnego słowa kluczowego UNBOUNDED. Jeśli określasz początek lub koniec zakresu, musi on być zgodny z formatem RFC 3339, np. 2022-02-22T04:00Z.

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

Odfiltrowana odpowiedź:

Odpowiedź zawiera tylko anomalie, które były aktywne w określonym przedziale czasu:

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

Dostępne dane

Nie wszystkie dane i zestawy danych obsługują obecnie wykrywanie anomalii. Oto lista obecnie obsługiwanych danych:

Zestaw metryczny Obsługiwane dane
vitals.anrrate anrRate
vitals.crashrate crashRate
vitals.excessivewakeuprate excessiveWakeupRate
vitals.stuckbackgroundwakelockrate stuckBgWakelockRate