Wysyłanie zapytań o zestawy danych

Po skonfigurowaniu wszystkiego możesz wysyłać żądania do interfejsu Google Play Developer Reporting API, aby pobierać metadane o zestawach danych i wykonywać zapytania dotyczące ich danych.

Poniższe przykłady kodu pokazują, jak wysłać kilka prostych żądań. Poniższe metody pokazują na przykład, jak pobierać różne dane dotyczące aplikacji. Istnieje kilka różnych parametrów zapytania, których można użyć, aby zawęzić zapytanie.

Pobieranie metadanych zestawu danych

Poniższy przykład pobiera metadane zestawu danych dotyczących wskaźnika awaryjności ustawionego dla fikcyjnej aplikacji com.example.app.

Proste żądanie:

To żądanie HTTP GET określa parametr nazwy aplikacji i zwraca pełny zasób danych powiązany z aplikacją.

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

Odpowiedź z informacjami o rodzaju danych:

Odpowiedź zawiera te pola związane z zestawem danych:

{
  "freshness_info": {
    "freshness": [
      "aggregation_period": "DAILY"
      "latest_end_time": { year: "2021" month: "7" day: "22" time_zone: "America/Los_Angeles" }
    ]
  }
}

Korzystanie z funkcji zapytania

Poniższe żądanie HTTP POST tego samego zasobu używa punktu końcowego query do pobierania określonych danych z zestawu danych.

POST https://playdeveloperreporting.googleapis.com/v1beta1/apps/com.example.app/crashRateMetricSet:query

W treści żądania przekaż opcje zapytania, aby pobrać dane na podstawie określonych kryteriów.

{
  "timeline_spec": {
    "aggregation_period": "DAILY"
    "start_time": { year: "2021" month: "7" day: "1" time_zone: "America/Los_Angeles" }
    "end_time": { year: "2021" month: "7" day: "3" time_zone: "America/Los_Angeles" }
   }
  "dimensions": ["apiLevel"]
  "metrics": ["errorReportCount", "distinctUsers"]
  "page_size": "10"
}

Oto kilka przykładów na poziomie kolekcji:

Pola
timelineSpec

object (TimelineSpec)

Określenie parametrów agregacji osi czasu. Listę obsługiwanych okresów agregacji znajdziesz w dokumentacji każdego zestawu danych.

dimensions[]

string

Wymiary, według których chcesz podzielić dane. Listę obsługiwanych wymiarów znajdziesz w dokumentacji każdego zestawu danych.

metrics[]

string

Dane do agregacji.

pageSize

integer

Maksymalny rozmiar zwracanych danych.

Jeśli nie zostanie określona, zwracanych będzie maksymalnie 1000 wierszy. Maksymalna wartość to 100 000. Wartości powyżej 100 000 zostaną zmienione na 100 000.

Obsługa odpowiedzi

Gdy serwer przetworzy prawidłowe żądanie z prawidłowymi polami, razem z żądanymi danymi wyśle kod stanu HTTP 200 OK. Jeśli parametr zapytania fields zawiera błąd lub jest nieprawidłowy z innego powodu, serwer zwróci kod stanu HTTP 400 Bad Request i komunikat o błędzie z wyjaśnieniem, na czym polega problem z wybranymi polami (na przykład "Invalid field timeline_spec").

Poniżej znajdziesz przykładową odpowiedź, o której była już mowa wcześniej, we wprowadzeniu.

POST https://playdeveloperreporting.googleapis.com/v1beta1/apps/com.example.app/crashRateMetricSet:query

Odpowiedź wygląda tak:

200 OK
{
  rows: [
    {
      aggregation_period: "DAILY"
      start_time: { year: "2021" month: "7" day: "1" time_zone: "America/Los_Angeles" }
      dimensions: [{dimension: "apiLevel" int64_value: "20"}]
      metrics: [
        {metric: "errorReportCount" decimal_value: "100"},
        {metric: "distinctUsers" decimal_value: "57"},
      ]
    }, {
      aggregation_period: "DAILY"
      start_time: { year: "2021" month: "7" day: "1" time_zone: "America/Los_Angeles" }
      dimensions: [{dimension: "apiLevel" int64_value: "21"}]
      metrics: [
        {metric: "errorReportCount" decimal_value: "123"},
        {metric: "distinctUsers" decimal_value: "65"},
      ]
    },
    ...
  ]
  next_page_token: "eW91IGhhdmUgdG9vIG11Y2ggZnJlZSB0aW1l"
}

Uwaga: w interfejsach API, które obsługują parametry zapytania do dzielenia danych na strony (na przykład maxResults i nextPageToken), te parametry pozwalają zmniejszyć liczbę wyników zapytań do rozmiaru, który ułatwia obsługę.