Anomalias

A API Google Play Developer Reporting permite recuperar anomalias detectadas em conjuntos de métricas. Uma anomalia é produzida sempre que o valor da métrica excede o intervalo esperado, com base nos últimos 28 dias de valores para essa mesma métrica. As anomalias por dias consecutivos são mescladas em um único resultado de anomalia.

Se o aumento anômalo no valor de uma métrica persistir por tempo suficiente, o modelo de detecção adaptará e ampliará os valores esperados até que os pontos de dados subsequentes não sejam mais considerados anômalos.

Como recuperar anomalias

As anomalias podem ser listadas com o método anomalies.list.

Solicitação simples:

Essa solicitação HTTP GET especifica o parâmetro de nome do aplicativo e retorna a lista completa de anomalias detectadas para seu aplicativo.

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

Resposta da anomalia:

A resposta inclui informações suficientes para consultar exatamente onde a anomalia ocorreu:

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

Solicitação filtrada:

É possível aplicar um filtro para retornar apenas anomalias que estavam ativas em um período específico. Para fazer isso, especifique a função activeBetween(start, end) no campo de filtro na solicitação. É possível especificar limites ilimitados em qualquer lado do intervalo com a palavra-chave especial UNBOUNDED. Se um limite de início ou fim for especificado, ele precisará seguir o formato RFC 3339, por exemplo, 2022-02-22T04:00Z.

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

Resposta filtrada:

A resposta inclui apenas anomalias que estavam ativas no 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 disponíveis

No momento, nem todas as métricas e conjuntos de métricas são compatíveis com a detecção de anomalias. Veja a lista de métricas atualmente compatíveis:

Conjunto de métricas Métricas aceitas
vitals.anrrate taxa anr.
vitals.crashrate Taxa de falhas
vitals.excessivewakeuprate Taxa excessiva de ativação
vitals.stuckbackgroundwakelockrate taxa fixa do BgWakelock