Übersicht

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:

Rohdatentabelle

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.

Datentabelle mit Pivoting

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:

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:

Rohdatentabelle

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:

Rohdatentabelle

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

<ph type="x-smartling-placeholder"></ph> google-analytics-data/src/run_pivot_report.php
<ph type="x-smartling-placeholder"></ph> In Cloud Shell öffnen Auf GitHub ansehen
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

<ph type="x-smartling-placeholder"></ph> google-analytics-data/run_pivot_report.py
<ph type="x-smartling-placeholder"></ph> In Cloud Shell öffnen Auf GitHub ansehen
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

<ph type="x-smartling-placeholder"></ph> google-analytics-data/run_pivot_report.js
<ph type="x-smartling-placeholder"></ph> In Cloud Shell öffnen Auf GitHub ansehen
  // 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.