Przegląd

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:

Tabela 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.

Tabela danych przestawnych

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:

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:

Tabela nieprzetworzonych danych

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:

Tabela nieprzetworzonych danych

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.