Com a API Google Play Developer Reporting, é possível recuperar anomalias detectadas em conjuntos de métricas. Uma anomalia é gerada sempre que o valor da métrica excede o intervalo esperado com base nos valores dos 28 dias anteriores da mesma métrica. Anomalias em dias consecutivos são combinadas em um único resultado.
Se o aumento anômalo no valor de uma métrica persistir por tempo suficiente, o modelo de detecção vai se 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 de 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 as anomalias que estavam ativas em um período específico. Para fazer isso, especifique a função activeBetween(start, end)
no campo de filtro da solicitação. É possível especificar limites sem restrições em qualquer lado do intervalo com a palavra-chave especial UNBOUNDED
. Se você especificar um limite de início ou de término, 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
Nem todas as métricas e conjuntos de métricas oferecem suporte à detecção de anomalias. Confira a lista de métricas compatíveis no momento:
Conjunto de métricas | Métricas compatíveis |
---|---|
vitals.anrrate |
anrRate |
vitals.crashrate |
crashRate |
vitals.excessivewakeuprate |
excessiveWakeupRate |
vitals.stuckbackgroundwakelockrate |
stuckBgWakelockRate |