Ringkasan

Google Analytics Data API v1 memungkinkan Anda membuat tabel pivot. Putar adalah alat peringkas data yang memvisualisasikan data dengan mengatur ulang informasi di tabel dengan membuat pivot (memutar) data pada satu atau beberapa dimensi kustom.

Sebagai contoh, pertimbangkan tabel data mentah berikut:

Tabel data mentah

Dengan menggunakan data ini dimungkinkan untuk membuat tabel pivot, menguraikan data sesi menurut browser, dengan dimensi negara dan bahasa dipilih sebagai pivot tambahan.

Tabel data pivot

Fitur Bersama dengan Laporan Inti

Permintaan pelaporan pivot memiliki semantik yang sama dengan permintaan laporan Inti untuk banyak fitur bersama. Misalnya, penomoran halaman, Filter Dimensi, dan Pengguna Properti, berperilaku sama di Laporan Pivot dengan Laporan Inti. Ini berfokus pada fitur pelaporan pivot. Untuk membiasakan diri dengan Core Fungsi pelaporan Data API v1, baca panduan dasar-dasar pelaporan, serta panduan kasus penggunaan lanjutan.

Metode pelaporan pivot

Data API v1 mendukung fungsi pivot dalam metode pelaporan berikut:

  • runPivotReport Metode ini mengembalikan laporan pivot yang disesuaikan dari data peristiwa Google Analytics Anda. Masing-masing pivot menjelaskan kolom dan baris dimensi yang terlihat dalam respons laporan.

  • batchRunPivotReports adalah versi batch dari metode runPivotReport yang memungkinkan pembuatan beberapa laporan menggunakan satu panggilan API.

Memilih Entitas Pelaporan

Semua metode Data API v1 memerlukan ID properti Google Analytics ditentukan di dalam jalur permintaan URL dalam bentuk properties/GA_PROPERTY_ID, seperti:

  POST  https://analyticsdata.googleapis.com/v1beta/properties/GA_PROPERTY_ID:runPivotReport

Hasil laporan akan dibuat berdasarkan data peristiwa Google Analytics yang dikumpulkan di properti Google Analytics yang ditentukan.

Jika menggunakan salah satu library klien Data API, Anda tidak perlu memanipulasi jalur URL permintaan secara manual. Sebagian besar klien API menyediakan parameter property yang mengharapkan string dalam bentuk properties/GA_PROPERTY_ID. Lihat Panduan memulai cepat untuk mengetahui contoh penggunaan library klien.

Permintaan Laporan Pivot

Untuk membuat permintaan dengan tabel pivot, gunakan runPivotReport atau batchRunPivotReports .

Untuk meminta data pivot, Anda dapat membuat RunPivotReportRequest . Sebaiknya mulai dengan parameter permintaan ini:

  • Entri yang valid di kolom dateRanges.
  • Setidaknya satu entri yang valid di kolom dimensi.
  • Minimal satu entri valid di kolom metrics.
  • Minimal dua entri pivot yang valid di kolom pivot.

Berikut adalah contoh permintaan dengan kolom yang direkomendasikan:

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

Menggunakan objek Pivot di kolom pivot permintaan untuk menentukan pivot laporan. Setiap Pivot menjelaskan dimensi yang terlihat kolom dan baris di respons laporan.

Data API v1 mendukung beberapa pivot selama hasil dari batas untuk setiap pivot tidak melebihi 100.000.

Berikut adalah cuplikan yang menunjukkan penggunaan pivots untuk membuat laporan jumlah sesi menurut negara, diputar berdasarkan dimensi browser. Perhatikan bagaimana kueri menggunakan kolom orderBys untuk pengurutan, serta batas dan kolom offset untuk menerapkan paginasi.

    "pivots": [
      {
        "fieldNames": [
          "country"
        ],
        "limit": 250,
        "orderBys": [
          {
            "dimension": {
              "dimensionName": "country"
            }
          }
        ]
      },
      {
        "fieldNames": [
          "browser"
        ],
        "offset": 3,
        "limit": 3,
        "orderBys": [
          {
            "metric": {
              "metricName": "sessions"
            },
            "desc": true
          }
        ]
      }
    ],
    ...

Dimensi

Dimensi mendeskripsikan dan mengelompokkan data peristiwa untuk situs web atau aplikasi Anda. Dimensi city, misalnya, menunjukkan kota ("Paris" atau "New York") tempat setiap peristiwa berasal. Dalam permintaan laporan, Anda dapat menentukan nol atau beberapa dimensi.

Dimensi harus ditentukan di dalam elemen dimensi isi permintaan. Agar terlihat dalam laporan, dimensi tersebut juga harus tercantum di kolom fieldNames kolom objek Pivot. Dimensi tidak akan terlihat dalam laporan jika tidak digunakan di pivot dari kueri pivot. Tidak semua dimensi harus ada dalam fieldNames. Dimensi dapat digunakan secara eksklusif dalam filter dan bukan di fieldNames dari pivot apa pun.

Di bawah ini adalah cuplikan yang menunjukkan penggunaan kolom dimension dan fieldNames untuk tabel dengan pivot browser, country, dan language:

    "pivots": [
      {
        "fieldNames": [
          "browser"
        ],
        "limit": 5,
        "orderBys": [
          {
            "metric": {
              "metricName": "sessions"
            },
            "desc": true
          }
        ]
      },
      {
        "fieldNames": [
          "country"
        ],
        "limit": 250,
        "orderBys": [
          {
            "dimension": {
              "dimensionName": "country"
            }
          }
        ]
      },
      {
        "fieldNames": [
          "language"
        ],
        "limit": 10
      }
    ],

Metrik

Metrik adalah pengukuran kuantitatif data peristiwa untuk situs web atau aplikasi Anda. Dalam permintaan laporan, Anda dapat menentukan satu atau beberapa metrik. Lihat Metrik API untuk daftar lengkap nama Metrik API yang tersedia untuk ditentukan dalam permintaan.

Dalam permintaan laporan pivot, metrik ditentukan menggunakan kolom metrics pada isi permintaan, yang mirip dengan metode Pelaporan Inti.

Contoh di bawah ini menentukan jumlah sesi yang akan digunakan sebagai nilai metrik dalam laporan:

    "metrics": [
      {
        "name": "sessions"
      }
    ],

Agregasi metrik

Menggunakan metricAggregations kolom objek Pivot untuk menghitung metrik gabungan untuk setiap pivot.

Agregasi hanya akan dihitung jika kolom metricAggregations ditentukan dalam permintaan.

Di bawah ini adalah cuplikan kueri yang meminta total untuk Dimensi pivot browser:

"pivots": [
  {
    "fieldNames": [
      "browser"
    ],
    "limit": 10,
    "metricAggregations": [
      "TOTAL",
    ]
  },
  ...

Metrik yang dihitung ditampilkan di bagian agregat dari kolom RunPivotReportResponse . Untuk baris metrik gabungan, kolom dimensionValues berisi nilai khusus RESERVED_TOTAL, RESERVED_MAX, atau 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"
        }
      ]
    },
  ....

  }

Penomoran halaman

Mirip dengan metode Pelaporan Inti, permintaan pivot memungkinkan Anda untuk menentukan batas dan offset dalam kolom Objek Pivot untuk menerapkan penomoran halaman. Setelan penomoran halaman diterapkan ke setiap pivot satu per satu. Kolom limit wajib ada untuk setiap objek Pivot guna membatasi kardinalitas laporan.

Data API v1 mendukung beberapa pivot selama produk parameter limit untuk setiap pivot tidak melebihi 100.000.

Di bawah ini adalah cuplikan yang menunjukkan penggunaan kolom offset dan limit untuk mengambil lima dimensi language berikutnya dengan offset 10:

      {
        "fieldNames": [
          "language"
        ],
        "offset": 10,
        "limit": 5
      }

Pemfilteran

Serupa dengan fungsi Pelaporan Inti, filter dimensi cakupan permintaan harus digunakan jika pemfilteran dimensi diinginkan dalam pelaporan pivot permintaan.

Pengurutan

Perilaku pengurutan kueri laporan pivot dapat dikontrol untuk setiap pivot satu per satu menggunakan orderBys kolom objek Pivot yang berisi daftar Objek OrderBy.

Setiap OrderBy dapat berisi salah satu dari hal berikut:

Contoh ini menunjukkan cuplikan definisi pivot yang melakukan pivot pada laporan dimensi browser, mengurutkan hasil menurut metrik sessions dalam urutan menurun.

      {
        "fieldNames": [
          "browser"
        ],
        "limit": 5,
        "orderBys": [
          {
            "metric": {
              "metricName": "sessions"
            },
            "desc": true
          }
        ]
      }

Respons Laporan

Respons Laporan Pivot dari pivot permintaan API laporan utamanya adalah header dan baris.

Header Respons

Header laporan pivot terdiri dari PivotHeaders, DimensionHeaders dan MetricHeaders yang mencantumkan kolom dalam laporan pivot.

Misalnya, laporan dengan dimensi pivot browser, country, dan language dan metrik sessions akan menghasilkan header seperti ini:

{
  "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"
    }
  ],
  ...

}

Bagan di bawah ini mengilustrasikan peran setiap komponen Laporan Pivot Respons dalam merender laporan pivot:

Tabel data mentah

Baris Respons

Respons laporan pivot runPivotReport dan batchRunPivotReports berbeda dengan respons untuk metode Pelaporan Inti seperti runReport dan batchRunReports di setiap baris respons laporan pivot mewakili satu sel , sedangkan di laporan reguler, satu baris respons mewakili respons lengkap tabel sementara.

Di bawah ini adalah fragmen respons laporan pivot untuk dengan dimensi pivot browser, country, dan language, serta Metrik sessions. Setiap sel laporan pivot ditampilkan satu per satu:

  "rows": [
    {
      "dimensionValues": [
        {
          "value": "Chrome"
        },
        {
          "value": "United States"
        },
        {
          "value": "English"
        }
      ],
      "metricValues": [
        {
          "value": "1"
        }
      ]
    },
    {
      "dimensionValues": [
        {
          "value": "Firefox"
        },
        {
          "value": "Canada"
        },
        {
          "value": "French"
        }
      ],
      "metricValues": [
        {
          "value": "3"
        }
      ]
    },
    ...

  ]

Data ini sesuai dengan dua sel yang disorot pada tabel di bawah:

Tabel data mentah

Library klien

Lihat Panduan memulai cepat untuk penjelasan tentang cara menginstal dan mengonfigurasi library klien.

Contoh berikut menggunakan library klien untuk menjalankan kueri pivot guna membangun laporan jumlah sesi menurut negara, yang diputar berdasarkan dimensi browser.

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

Aplikasi demo

Lihat Demo Laporan Pivot Google Analytics API v1 pendaftaran domain contoh cara membuat dan menampilkan laporan pivot menggunakan JavaScript.