Mit dem Google Analytics Data API Version 1 können Sie Pivot-Tabellen generieren. Pivot-Tabelle sind ein Tool zur Datenzusammenfassung, mit dem Daten durch Neuanordnung Informationen in der Tabelle durch Drehen der Daten auf einer oder mehreren Dimensionen.
Sehen Sie sich als Beispiel die folgende Rohdatentabelle an:
Mit diesen Daten ist es möglich, eine Pivot-Tabelle zu erstellen, in der Sitzungsdaten nach Browser mit folgenden Dimensionen für Land und Sprache: zusätzliche Drehpunkte.
Gemeinsam genutzte Funktionen für grundlegende Berichte
Pivot-Berichtsanfragen haben dieselbe Semantik wie Hauptberichtsanfragen für viele gemeinsame Funktionen. z. B. Paginierung, Dimensionsfilter und Das Verhalten der Eigenschaften in Pivot-Berichten entspricht der in grundlegenden Berichten. Dieses konzentriert sich auf Pivot-Berichtsfunktionen. Um sich mit Core vertraut zu machen Berichtsfunktionen der Data API Version 1, finden Sie im Leitfaden zu den Grundlagen der Berichterstellung. sowie im Leitfaden zu erweiterten Anwendungsfällen.
Pivot-Berichterstellungsmethoden
Die Data API Version 1 unterstützt die Pivot-Funktion in den folgenden Berichterstellungsmethoden:
runPivotReport: Diese Methode gibt einen benutzerdefinierten Pivot-Bericht mit Ihren Google Analytics-Ereignisdaten zurück. Jedes pivot beschreibt die Spalten und Zeilen der sichtbaren Dimension in der Berichtsantwort.
batchRunPivotReports und ist eine Batch-Version der Methode
runPivotReport
, mit der mehrere Berichte mit einem einzigen API-Aufruf erstellen.
Berichtseinheit auswählen
Für alle Methoden der Data API Version 1 ist die Google Analytics-Property-ID erforderlich.
in einem URL-Anfragepfad in der Form
properties/GA_PROPERTY_ID
, z. B.:
POST https://analyticsdata.googleapis.com/v1beta/properties/GA_PROPERTY_ID:runPivotReport
Der Bericht wird anhand der Google Analytics-Ereignisdaten erstellt die in der angegebenen Google Analytics-Property erfasst wurden.
Wenn Sie eine der Data API-Clientbibliotheken verwenden, gibt es
muss der Anforderungs-URL-Pfad nicht manuell bearbeitet werden. Die meisten API-Clients
Einen property
-Parameter angeben, der einen String in der Form von
properties/GA_PROPERTY_ID
. Siehe Kurzanleitung
finden Sie Beispiele für die Verwendung der Clientbibliotheken.
Pivot-Berichtsanfrage
Um eine Anfrage mit einer Pivot-Tabelle zu erstellen, verwenden Sie entweder die runPivotReport oder die batchRunPivotReports .
Um pivotierte Daten anzufordern, können Sie eine RunPivotReportRequest erstellen. -Objekt enthält. Wir empfehlen, mit den folgenden Anfrageparametern zu beginnen:
- Ein gültiger Eintrag im Feld dateRanges.
- Mindestens ein gültiger Eintrag im Feld Dimensionen
- Mindestens ein gültiger Eintrag im Feld metrics
- Mindestens zwei gültige Pivot-Einträge im Feld pivots.
Hier ist eine Beispielanfrage mit den empfohlenen Feldern:
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
}
]
}
Pivot-Tabellen
Verwenden Sie Pivot-Objekte im Feld pivot
der Anfrage.
um die Pivots von Berichten zu definieren. Jeder Pivot
beschreibt die sichtbare Dimension.
Spalten und Zeilen in der Berichtsantwort.
Die Data API v1 unterstützt mehrere Pivots, solange das Produkt des limit für jeden Drehpunkt nicht größer als 100.000 ist.
Das folgende Snippet veranschaulicht die Verwendung von pivots
zum Erstellen eines Berichts für
Anzahl der Sitzungen nach Land, pivotiert nach der Dimension „browser
“. Beachten Sie, dass die
das Feld orderBys für
Sortierung und das Limit und
offset-Feldern, um die Paginierung zu implementieren.
"pivots": [
{
"fieldNames": [
"country"
],
"limit": 250,
"orderBys": [
{
"dimension": {
"dimensionName": "country"
}
}
]
},
{
"fieldNames": [
"browser"
],
"offset": 3,
"limit": 3,
"orderBys": [
{
"metric": {
"metricName": "sessions"
},
"desc": true
}
]
}
],
...
Abmessungen
Mit Dimensionen werden Ereignisdaten für Ihre Kampagne beschrieben und gruppiert.
Website oder App. Die Dimension city
gibt z. B. die Stadt („Paris“) an.
oder "New York"), von dem das jeweilige Ereignis ausging. In einer Berichtsanfrage können Sie
null oder mehr Dimensionen angeben.
Die Abmessungen müssen im
Dimensionen
eines Anfragetexts. Damit diese Dimensionen in einem Bericht sichtbar sind, müssen sie auch
im Feld fieldNames
eines Pivot
-Objekts.
Dimensionen, die in keinem Bericht verwendet werden, sind in einem Bericht sichtbar.
Pivot-Tabelle einer Pivot-Abfrage. Nicht jede Dimension muss in der
fieldNames
Dimensionen können ausschließlich in Filtern und nicht in der
fieldNames
eines beliebigen Pivots.
Unten sehen Sie ein Snippet, das die Verwendung der Felder dimension
und fieldNames
veranschaulicht
für eine Tabelle mit browser
-, country
- und language
-Pivots:
"pivots": [
{
"fieldNames": [
"browser"
],
"limit": 5,
"orderBys": [
{
"metric": {
"metricName": "sessions"
},
"desc": true
}
]
},
{
"fieldNames": [
"country"
],
"limit": 250,
"orderBys": [
{
"dimension": {
"dimensionName": "country"
}
}
]
},
{
"fieldNames": [
"language"
],
"limit": 10
}
],
Messwerte
Messwerte sind quantitative Messungen von Ereignisdaten für Ihrer Website oder App. In einer Berichtsanfrage können Sie einen oder mehrere Messwerte angeben. Eine vollständige Liste der API-Messwertnamen finden Sie unter API-Messwerte. die in Anfragen angegeben werden können.
In Pivot-Berichtsanfragen werden Messwerte mithilfe des Felds metrics
der
-Anfragetext, der den Core Reporting-Methoden ähnelt.
Im folgenden Beispiel wird die Anzahl der Sitzungen angegeben, die als Messwert in einem Bericht:
"metrics": [
{
"name": "sessions"
}
],
Messwertaggregationen
Verwenden Sie die Methode metricAggregations. Feld eines Pivot-Objekts zur Berechnung des aggregierten Messwerts für jeden Drehpunkt.
Aggregationen werden nur berechnet, wenn die metricAggregations wird in einer Anfrage angegeben.
Unten sehen Sie ein Snippet einer Abfrage, mit der die Summen
browser
Pivot-Dimension:
"pivots": [
{
"fieldNames": [
"browser"
],
"limit": 10,
"metricAggregations": [
"TOTAL",
]
},
...
Die berechneten Messwerte werden im Bereich Aggregate zurückgegeben.
des Felds RunPivotReportResponse
-Objekt enthält. Bei Zeilen mit aggregierten Messwerten: Das Feld dimensionValues
enthält den speziellen Wert RESERVED_TOTAL
, RESERVED_MAX
oder 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"
}
]
},
....
}
Seitenumbruch
Ähnlich wie bei den Core Reporting-Methoden können Sie mit Pivot-Anfragen
um das Limit anzugeben
und offset in der
Pivot-Objekt, um die Paginierung zu implementieren.
Die Paginierungseinstellungen werden auf jeden Pivot einzeln angewendet.
Das Feld limit
ist für jedes Pivot
-Objekt erforderlich, um den
die Kardinalität des Berichts.
Die Data API v1 unterstützt mehrere Pivots, solange das Produkt von limit
für jeden Drehpunkt nicht größer als 100.000 ist.
Unten sehen Sie ein Snippet, das die Verwendung der Felder offset
und limit
veranschaulicht,
rufen Sie die nächsten fünf language
-Dimensionen mit einem Versatz von 10 ab:
{
"fieldNames": [
"language"
],
"offset": 10,
"limit": 5
}
Filtern
Ähnlich wie bei den Hauptdiensten wird ein Dimensionsfilter auf Anfrageebene muss verwendet werden, wenn in einem Pivot-Bericht das Filtern von Dimensionen erwünscht ist
Sortieren
Das Sortierverhalten von Abfragen für Pivot-Berichte kann für jeden Pivot gesteuert werden. einzeln mithilfe der orderBys eines Pivot-Objekts, das eine Liste von OrderBy-Objekte.
Jedes OrderBy
kann eines der folgenden Elemente enthalten:
- DimensionOrderBy, sortiert die Ergebnisse nach den Werten einer Dimension.
- MetricOrderBy, Sortierung die Ergebnisse eines Messwerts.
- PivotOrderBy, verwendet in Pivot-Abfragen und sortiert die Ergebnisse nach den Werten eines Messwerts innerhalb einer Pivot-Spaltengruppe.
Dieses Beispiel zeigt ein Snippet für eine Pivot-Definition, das den Bericht
browser
-Dimension, wobei die Ergebnisse nach dem Messwert sessions
sortiert werden, in
absteigend sortiert.
{
"fieldNames": [
"browser"
],
"limit": 5,
"orderBys": [
{
"metric": {
"metricName": "sessions"
},
"desc": true
}
]
}
Antwort melden
Pivot-Berichtsantwort auf einen Pivot report API-Anfrage besteht hauptsächlich aus einer Kopfzeile und Zeilen.
Antwortheader
Der Header des Pivot-Berichts besteht aus PivotHeaders, DimensionHeaders und MetricHeaders, die die Spalten in der Pivot-Bericht erstellen.
Beispiel: ein Bericht mit den Pivot-Dimensionen browser
, country
und language
und der Messwert sessions
gibt Überschriften wie diese zurück:
{
"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"
}
],
...
}
Das folgende Diagramm zeigt die Rolle der einzelnen Komponenten des Pivot-Berichts. Antwort beim Rendern des Pivot-Berichts:
Antwortzeilen
Antwort für Pivot-Berichte auf runPivotReport und batchRunPivotReports -Methoden unterscheiden sich von einer Antwort für Core Reporting-Methoden wie z. B. runReport und batchRunReports jeder Antwortzeile eines Pivot-Berichts eine einzelne Zelle der Tabelle, während in einem regulären Bericht eine einzelne Antwortzeile für eine vollständige Tabellenzeile.
Unten sehen Sie ein Fragment einer Antwort auf einen Pivot-Bericht für eine
mit den Pivot-Dimensionen browser
, country
und language
sowie den
Messwert sessions
. Jede Zelle des Pivot-Berichts wird einzeln zurückgegeben:
"rows": [
{
"dimensionValues": [
{
"value": "Chrome"
},
{
"value": "United States"
},
{
"value": "English"
}
],
"metricValues": [
{
"value": "1"
}
]
},
{
"dimensionValues": [
{
"value": "Firefox"
},
{
"value": "Canada"
},
{
"value": "French"
}
],
"metricValues": [
{
"value": "3"
}
]
},
...
]
Diese Daten entsprechen den beiden Zellen, die in der folgenden Tabelle hervorgehoben sind:
Clientbibliotheken
In der Kurzanleitung finden Sie eine Erläuterung der Clientbibliotheken installieren und konfigurieren
In den folgenden Beispielen wird mithilfe der Clientbibliothek eine Pivot-Abfrage ausgeführt, um eine Bericht zur Sitzungsanzahl nach Land, pivotiert nach der Browserdimension.
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
Demoanwendung
Sehen Sie sich die Demo zu den Pivot-Berichten der Google Analytics API Version 1 an. App finden Sie ein Beispiel dafür, wie ein Pivot-Bericht mit JavaScript erstellt und angezeigt wird.