Interfejs Google Analytics Data API w wersji 1 umożliwia generowanie tabel przestawnych. Tabela przestawna są narzędziem do podsumowania danych, które wizualizują dane przez zmianę ich kolejności wyświetlane w tabeli przez przestawianie (obracanie) danych na jednej lub kilku stronach wymiarów.
Przyjrzyjmy się przykładowo tej tabeli nieprzetworzonych danych:
Przy użyciu tych danych możesz utworzyć tabelę przestawną, dzieląc danych sesji wg przeglądarki, przy czym wymiary kraju i języka wybrano jako dodatkowe punkty.
Udostępniane funkcje z podstawowymi raportami
Żądania raportów przestawnych mają taką samą semantykę jak żądania dotyczące raportu podstawowego wiele wspólnych funkcji. Na przykład podział na strony, Filtry wymiarów i Użytkownik Właściwości są w raportach przestawnych tak samo jak w głównych raportach. Ten skupia się na funkcjach raportowania tabeli przestawnej. Aby zapoznać się z podstawowymi informacjami funkcje raportowania interfejsu Data API v1, przeczytaj przewodnik po podstawach raportowania, oraz przewodnik po zaawansowanych zastosowaniach.
Przestawianie metod raportowania
Interfejs Data API w wersji 1 obsługuje funkcję przestawiania w tych metodach raportowania:
runPivotReport. Ta metoda zwraca niestandardowy raport przestawny danych zdarzeń Google Analytics. Każdy Tabela przestawna opisuje kolumny wymiarów i wiersze widoczne w odpowiedzi raportu.
batchRunPivotReports, to wersja wsadowa metody
runPivotReport
, która umożliwia generowanie wiele raportów za pomocą jednego wywołania API.
Wybieranie podmiotu zgłaszającego
Wszystkie metody interfejsu Data API w wersji 1 wymagają identyfikatora usługi w Google Analytics.
ma być określony w ścieżce żądania adresu URL w formacie
properties/GA_PROPERTY_ID
, na przykład:
POST https://analyticsdata.googleapis.com/v1beta/properties/GA_PROPERTY_ID:runPivotReport
Wynikowy raport zostanie wygenerowany na podstawie danych o zdarzeniach w Google Analytics gromadzonych w określonej usłudze w Google Analytics.
Jeśli używasz jednej z bibliotek klienta interfejsu Data API,
nie ma potrzeby ręcznego modyfikowania ścieżki adresu URL żądania. Większość klientów API
podaj parametr property
, który oczekuje ciągu znaków w formacie
properties/GA_PROPERTY_ID
Zobacz krótki przewodnik.
.
Żądanie raportu przestawnego
Aby utworzyć żądanie przy użyciu tabeli przestawnej, użyj runPivotReport lub batchRunPivotReports .
Aby zażądać danych przestawnych, możesz utworzyć żądanie RunPivotReportRequest obiektu. Zalecamy, aby zacząć od tych parametrów żądania:
- Prawidłowy wpis w polu dateRanges.
- Co najmniej 1 prawidłowy wpis w polu dimensions.
- Co najmniej jeden prawidłowy wpis w polu dane.
- Co najmniej dwa prawidłowe wpisy tabeli przestawnej w polu prowadów.
Oto przykładowe żądanie z zalecanymi polami:
HTTP
POST https://analyticsdata.googleapis.com/v1beta/properties/GA_PROPERTY_ID:runPivotReport
{
"dateRanges": [{ "startDate": "2020-09-01", "endDate": "2020-09-15" }],
"dimensions": [
{ "name": "browser" },
{ "name": "country" },
{ "name": "language" }
],
"metrics": [{ "name": "sessions" }],
"pivots": [
{
"fieldNames": [
"browser"
],
"limit": 5
},
{
"fieldNames": [
"country"
],
"limit": 250
},
{
"fieldNames": [
"language"
],
"limit": 15
}
]
}
Przestawienia
Użyj obiektów Pivot w polu pivot
żądania.
, aby zdefiniować tabele przestawne raportów. Każda wartość Pivot
opisuje widoczny wymiar
kolumn i wierszy w odpowiedzi raportu.
Interfejs Data API w wersji 1 obsługuje wiele przestawień, o ile iloczyn limitu dla każdej tabeli przestawnej nie przekracza 100 000.
Poniżej znajdziesz fragment kodu pokazujący, jak wykorzystać pivots
do utworzenia raportu
liczby sesji według kraju, przestawione przez wymiar browser
. Zwróć uwagę, że funkcja
używa pola orderBys do
sortowanie oraz limit i
przesunięcie, aby wdrożyć podział na strony.
"pivots": [
{
"fieldNames": [
"country"
],
"limit": 250,
"orderBys": [
{
"dimension": {
"dimensionName": "country"
}
}
]
},
{
"fieldNames": [
"browser"
],
"offset": 3,
"limit": 3,
"orderBys": [
{
"metric": {
"metricName": "sessions"
},
"desc": true
}
]
}
],
...
Wymiary
Wymiary opisują i grupują dane o zdarzeniach w ramach
witrynie lub aplikacji. np. wymiar city
wskazuje miasto („Paryż”)
lub „Nowy Jork”), z którego pochodzi każde zdarzenie. W żądaniu raportu możesz
określić zero lub więcej wymiarów.
Wymiary muszą być zdefiniowane w sekcji
wymiarów
w treści żądania. Aby wymiary te były widoczne w raporcie, muszą też być widoczne
znajdą się w polu fieldNames.
obiektu Pivot
.
Wymiar nie będzie widoczny w raporcie, jeśli nie jest używany w żadnym
tabeli przestawnej. Nie każdy wymiar musi znajdować się w tabeli przestawnej
fieldNames
Wymiarów można używać wyłącznie w filtrach, a nie w
fieldNames
dowolnej tabeli przestawnej.
Poniżej znajdziesz fragment kodu ilustrujący użycie pól dimension
i fieldNames
dla tabeli z przestawnymi tabelami browser
, country
i language
:
"pivots": [
{
"fieldNames": [
"browser"
],
"limit": 5,
"orderBys": [
{
"metric": {
"metricName": "sessions"
},
"desc": true
}
]
},
{
"fieldNames": [
"country"
],
"limit": 250,
"orderBys": [
{
"dimension": {
"dimensionName": "country"
}
}
]
},
{
"fieldNames": [
"language"
],
"limit": 10
}
],
Dane
Dane to ilościowe pomiary danych zdarzeń związanych z: do witryny lub aplikacji. W żądaniu raportu możesz określić co najmniej 1 rodzaj danych. Pełną listę nazw wskaźników interfejsu API znajdziesz w sekcji Wskaźniki interfejsu API. które można określić we wnioskach.
W żądaniach raportów przestawnych dane definiuje się za pomocą pola metrics
sekcji
treść żądania, która jest podobna do podstawowych metod raportowania.
W przykładzie poniżej podano liczbę sesji, która ma być używana jako wartość danych w funkcji raport:
"metrics": [
{
"name": "sessions"
}
],
Agregacje wskaźników
Użycie metody metricAggregations. w obiekcie Pivot do obliczania wskaźnika zagregowanego dla każdej tabeli przestawnej.
Agregacje są obliczane tylko wtedy, gdy parametr metricAggregations jest określone w żądaniu.
Poniżej znajduje się fragment zapytania, które pozwala uzyskać łączne dane dla
browser
wymiar tabeli przestawnej:
"pivots": [
{
"fieldNames": [
"browser"
],
"limit": 10,
"metricAggregations": [
"TOTAL",
]
},
...
Obliczone dane są zwracane w danych zbiorczych.
w polu RunPivotReportResponse
obiektu. W przypadku wierszy danych zbiorczych, pole dimensionValues
zawiera specjalną wartość RESERVED_TOTAL
, RESERVED_MAX
lub RESERVED_MIN
.
"aggregates": [
{
"dimensionValues": [
{
"value": "Chrome"
},
{
"value": "RESERVED_TOTAL"
},
{
"value": "RESERVED_TOTAL"
}
],
"metricValues": [
{
"value": "4"
}
]
},
{
"dimensionValues": [
{
"value": "Firefox"
},
{
"value": "RESERVED_TOTAL"
},
{
"value": "RESERVED_TOTAL"
}
],
"metricValues": [
{
"value": "6"
}
]
},
....
}
Podział na strony
Podobnie jak podstawowe metody raportowania żądania przestawne umożliwiają
aby określić limit,
i offset w argumencie
Obiekt Pivot do wdrożenia podziału na strony.
Ustawienia podziału na strony są stosowane do każdej tabeli przestawnej oddzielnie.
Pole limit
jest wymagane dla każdego obiektu Pivot
w celu ograniczenia
moc zbioru raportów.
Interfejs Data API w wersji 1 obsługuje wiele przestawień, o ile jest to iloczyn elementu limit
dla każdej tabeli przestawnej nie przekracza 100 000.
Poniżej znajdziesz fragment kodu pokazujący, jak można wykorzystać pola offset
i limit
do:
pobierz następne pięć wymiarów language
z przesunięciem 10:
{
"fieldNames": [
"language"
],
"offset": 10,
"limit": 5
}
Filtrowanie
Podobnie jak w przypadku funkcji podstawowego raportowania, filtr wymiaru o zakresie na poziomie żądania należy używać, jeśli w raportach przestawnych wymagane jest filtrowanie wymiarów. użytkownika.
Sortowanie
Można kontrolować kolejność zapytań dotyczących raportu przestawnego dla każdej tabeli przestawnej pojedynczo za pomocą parametru orderBys obiektu Pivot, który zawiera listę OrderBy.
Każdy element OrderBy
może zawierać jeden z tych elementów:
- DimensionOrderBy, sortuje wyniki według wartości wymiaru.
- MetricOrderBy, sortuje według wartości danych.
- PivotOrderBy, używane w zapytania przestawne i sortuje wyniki według wartości danych; w grupie kolumn tabeli przestawnej.
Ten przykład pokazuje fragment definicji tabeli przestawnej, według której raport jest przestawiany
wymiar browser
, porządkując wyniki według danych sessions
w
w kolejności malejącej.
{
"fieldNames": [
"browser"
],
"limit": 5,
"orderBys": [
{
"metric": {
"metricName": "sessions"
},
"desc": true
}
]
}
Zgłoś odpowiedź
Odpowiedź raportu przestawnego dotycząca tabeli przestawnej Żądanie do interfejsu API raportu jest głównie nagłówkiem i wierszami.
Nagłówki odpowiedzi
Nagłówek raportu przestawnego składa się z nagłówków PivotHeaders, DimensionHeaders i MetricHeaders, aby zobaczyć kolumny w tabeli w raporcie przestawnym.
Na przykład raport z wymiarami przestawnymi browser
, country
i language
a wskaźnik sessions
zwróci nagłówki podobne do tych:
{
"pivotHeaders": [
{
"pivotDimensionHeaders": [
{
"dimensionValues": [
{
"value": "Chrome"
}
]
},
{
"dimensionValues": [
{
"value": "Firefox"
}
]
},
...
],
...
},
{
"pivotDimensionHeaders": [
{
"dimensionValues": [
{
"value": "United States"
}
]
},
{
"dimensionValues": [
{
"value": "Canada"
}
]
},
...
],
...
},
{
"pivotDimensionHeaders": [
{
"dimensionValues": [
{
"value": "English"
}
]
},
{
"dimensionValues": [
{
"value": "French"
}
]
},
...
],
...
}
],
"dimensionHeaders": [
{
"name": "browser"
},
{
"name": "country"
},
{
"name": "language"
}
],
"metricHeaders": [
{
"name": "sessions",
"type": "TYPE_INTEGER"
}
],
...
}
Poniższy wykres ilustruje rolę każdego komponentu w raporcie przestawnym Odpowiedź podczas renderowania raportu przestawnego:
Wiersze odpowiedzi
Odpowiedź raportu przestawnego runPivotReport i batchRunPivotReports metody różnią się od odpowiedzi w przypadku metod podstawowego raportowania np. runReport i batchRunReports ponieważ każdy wiersz odpowiedzi raportu przestawnego reprezentuje jedną komórkę , a w zwykłym raporcie pojedynczy wiersz odpowiedzi tabeli.
Poniżej znajduje się fragment odpowiedzi raportu przestawnego na temat
z wymiarami przestawnymi browser
, country
i language
oraz wymiarami
sessions
. Każda komórka raportu przestawnego jest zwracana osobno:
"rows": [
{
"dimensionValues": [
{
"value": "Chrome"
},
{
"value": "United States"
},
{
"value": "English"
}
],
"metricValues": [
{
"value": "1"
}
]
},
{
"dimensionValues": [
{
"value": "Firefox"
},
{
"value": "Canada"
},
{
"value": "French"
}
],
"metricValues": [
{
"value": "3"
}
]
},
...
]
Dane te odpowiadają dwóm komórkom wyróżnionym w tabeli poniżej:
Biblioteki klienta
Wyjaśnienia znajdziesz w krótkim przewodniku. jak zainstalować i skonfigurować biblioteki klienta.
W podanych niżej przykładach użyto biblioteki klienta do uruchomienia zapytania przestawnego w celu utworzenia raport liczby sesji według kraju, przestawiony według wymiaru przeglądarki.
PHP
use Google\Analytics\Data\V1beta\Client\BetaAnalyticsDataClient; use Google\Analytics\Data\V1beta\DateRange; use Google\Analytics\Data\V1beta\Dimension; use Google\Analytics\Data\V1beta\Metric; use Google\Analytics\Data\V1beta\OrderBy; use Google\Analytics\Data\V1beta\OrderBy\DimensionOrderBy; use Google\Analytics\Data\V1beta\OrderBy\MetricOrderBy; use Google\Analytics\Data\V1beta\Pivot; use Google\Analytics\Data\V1beta\RunPivotReportRequest; use Google\Analytics\Data\V1beta\RunPivotReportResponse; /** * Runs a pivot query to build a report of session counts by country, * pivoted by the browser dimension. * @param string $propertyId Your GA-4 Property ID */ function run_pivot_report(string $propertyId) { // Create an instance of the Google Analytics Data API client library. $client = new BetaAnalyticsDataClient(); // Make an API call. $request = (new RunPivotReportRequest()) ->setProperty('properties/' . $propertyId) ->setDateRanges([new DateRange([ 'start_date' => '2021-01-01', 'end_date' => '2021-01-30', ]), ]) ->setPivots([ new Pivot([ 'field_names' => ['country'], 'limit' => 250, 'order_bys' => [new OrderBy([ 'dimension' => new DimensionOrderBy([ 'dimension_name' => 'country', ]), ])], ]), new Pivot([ 'field_names' => ['browser'], 'offset' => 3, 'limit' => 3, 'order_bys' => [new OrderBy([ 'metric' => new MetricOrderBy([ 'metric_name' => 'sessions', ]), 'desc' => true, ])], ]), ]) ->setMetrics([new Metric(['name' => 'sessions'])]) ->setDimensions([ new Dimension(['name' => 'country']), new Dimension(['name' => 'browser']), ]); $response = $client->runPivotReport($request); printPivotReportResponse($response); } /** * Print results of a runPivotReport call. * @param RunPivotReportResponse $response */ function printPivotReportResponse(RunPivotReportResponse $response) { print 'Report result: ' . PHP_EOL; foreach ($response->getRows() as $row) { printf( '%s %s' . PHP_EOL, $row->getDimensionValues()[0]->getValue(), $row->getMetricValues()[0]->getValue() ); } }
Python
from google.analytics.data_v1beta import BetaAnalyticsDataClient from google.analytics.data_v1beta.types import ( DateRange, Dimension, Metric, OrderBy, Pivot, RunPivotReportRequest, ) def run_sample(): """Runs the sample.""" # TODO(developer): Replace this variable with your Google Analytics 4 # property ID before running the sample. property_id = "YOUR-GA4-PROPERTY-ID" run_pivot_report(property_id) def run_pivot_report(property_id="YOUR-GA4-PROPERTY-ID"): """Runs a pivot query to build a report of session counts by country, pivoted by the browser dimension.""" client = BetaAnalyticsDataClient() request = RunPivotReportRequest( property=f"properties/{property_id}", date_ranges=[DateRange(start_date="2021-01-01", end_date="2021-01-30")], pivots=[ Pivot( field_names=["country"], limit=250, order_bys=[ OrderBy( dimension=OrderBy.DimensionOrderBy(dimension_name="country") ) ], ), Pivot( field_names=["browser"], offset=3, limit=3, order_bys=[ OrderBy( metric=OrderBy.MetricOrderBy(metric_name="sessions"), desc=True ) ], ), ], metrics=[Metric(name="sessions")], dimensions=[Dimension(name="country"), Dimension(name="browser")], ) response = client.run_pivot_report(request) print_run_pivot_report_response(response) def print_run_pivot_report_response(response): """Prints results of a runPivotReport call.""" print("Report result:") for row in response.rows: for dimension_value in row.dimension_values: print(dimension_value.value) for metric_value in row.metric_values: print(metric_value.value)
Node.js
// TODO(developer): Uncomment this variable and replace with your // Google Analytics 4 property ID before running the sample. // propertyId = Y'OUR-GA4-PROPERTY-ID;' // Imports the Google Analytics Data API client library. const {BetaAnalyticsDataClient} = require(@'google-analytics/data)'; // Initialize client that will be used to send requests. This client only // needs to be created once, and can be reused for multiple requests. const analyticsDataClient = new BetaAnalyticsDataClient(); // Runs a pivot query to build a report of session counts by country, pivoted by the browser dimension. async function runPivotReport() { const [response] = await analyticsDataClient.runPivotReport({ property: `properties/${propertyId}`, dateRanges: [ { startDate: 2'021-01-01,' endDate: 2'021-01-30,' }, ], pivots: [ { fieldNames: [c'ountry]', limit: 250, orderBys: [ { dimension: { dimensionName: c'ountry,' }, }, ], }, { fieldNames: [b'rowser]', offset: 3, limit: 3, orderBys: [ { metric: { metricName: s'essions,' }, desc: true, }, ], }, ], metrics: [ { name: s'essions,' }, ], dimensions: [ { name: c'ountry,' }, { name: b'rowser,' }, ], }); printPivotReportResponse(response); } runPivotReport(); // Prints results of a runReport call. function printPivotReportResponse(response) { console.log(R'eport result:)'; response.rows.forEach(row = >{ row.dimensionValues.forEach(dimensionValue = >{ console.log(dimensionValue.value); }); row.metricValues.forEach(metricValue = >{ console.log(metricValue.value); }); }); }r
Aplikacja w wersji demonstracyjnej
Zobacz prezentację dotyczącą raportu przestawnego interfejsu Google Analytics API w wersji 1 aplikacji na przykład tworzenia i wyświetlania raportu przestawnego w języku JavaScript.