개요

Google 애널리틱스 Data API v1을 사용하면 피벗 테이블을 생성할 수 있습니다. 피벗 테이블은 데이터를 정렬하고 정리하여 데이터를 시각화하는 데이터 요약 도구입니다 데이터를 하나 또는 여러 개로 피봇 (회전)하여 표의 정보 측정기준에 따라 달라집니다.

예를 들어 다음 원시 데이터 테이블을 생각해 보세요.

원시 데이터 테이블

이 데이터를 사용하여 피벗 테이블을 만들어 피벗 테이블을 만들고 국가 및 언어 측정기준이 다음과 같이 선택된 브라우저별 세션수 데이터 추가적인 피벗을 제공할 수 있습니다

피벗 데이터 표

핵심 보고서와 공유 기능

피벗 보고 요청의 의미는 많은 공유 기능을 제공합니다 예: 페이지로 나누기, 측정기준 필터, 사용자 속성은 피벗 보고서에서 핵심 보고서와 동일하게 작동합니다. 이 피벗 보고 기능을 중점적으로 다룹니다 핵심 과정과 Data API v1의 보고 기능에 대한 자세한 내용은 보고 기본사항 가이드를 참고하세요. 고급 사용 사례 가이드를 참조하세요

피벗 보고 방법

Data API v1은 다음 보고 메서드에서 피벗 기능을 지원합니다.

  • runPivotReport: 이 메서드 는 Google 애널리틱스 이벤트 데이터의 맞춤설정된 피벗 보고서를 반환합니다. 각 pivot은 보고서 응답에 표시되는 측정기준의 열과 행을 설명합니다.

  • batchRunPivotReports: runPivotReport 메서드의 일괄 버전입니다. 여러 보고서를 생성할 수 있습니다.

보고 항목 선택

Data API v1의 모든 메서드에는 Google 애널리틱스 속성 식별자가 필요합니다. 는 properties/GA_PROPERTY_ID. 예:

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

Google 애널리틱스 이벤트 데이터를 기반으로 결과 보고서가 생성됩니다. 지정된 Google 애널리틱스 속성에서 수집됩니다.

Data API 클라이언트 라이브러리 중 하나를 사용하는 경우 요청 URL 경로를 수동으로 조작할 필요가 없습니다. 대부분의 API 클라이언트는 properties/GA_PROPERTY_ID 형식의 문자열을 예상하는 property 매개변수를 제공합니다. 클라이언트 라이브러리 사용 예는 빠른 시작 가이드를 참고하세요.

보고서 피벗 요청

피벗 테이블이 포함된 요청을 생성하려면 runPivotReport 또는 batchRunPivotReports 메서드를 사용하여 축소하도록 요청합니다.

피벗된 데이터를 요청하려면 RunPivotReportRequest 객체를 지정합니다. 다음 요청 매개변수로 시작하는 것이 좋습니다.

  • dateRanges 필드의 유효한 항목.
  • 측정기준 입력란에 유효한 항목이 1개 이상 있어야 합니다.
  • 측정항목 입력란에 하나 이상의 유효한 항목을 입력해야 합니다.
  • pivots 입력란에 2개 이상의 유효한 피벗 항목이 있어야 합니다.

다음은 추천 필드가 포함된 샘플 요청입니다.

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 필드에서 피벗 객체 사용 본문을 사용하여 보고서 피벗을 정의합니다. 각 Pivot은 표시되는 크기를 설명합니다. 열과 행을 수정합니다.

Data API v1은 한도의 곱이 되는 한 여러 피벗을 지원합니다. 매개변수가 100,000을 넘지 않아야 합니다.

아래는 pivots를 사용하여 보고서를 빌드하는 방법을 보여주는 스니펫입니다. browser 측정기준을 기준으로 피벗된 국가별 세션수입니다. 참고: 쿼리는 다음과 같이 orderBys 필드를 사용합니다. 정렬, 한도페이지로 나누기를 구현하는 offset 필드

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

크기

측정기준은 다음에 대한 이벤트 데이터를 설명하고 그룹화합니다. 확인할 수 있습니다 예를 들어 city 측정기준은 도시('파리')를 나타냅니다. '뉴욕')을 입력합니다. 보고서 요청에서 다음 작업을 할 수 있습니다. 0개 이상의 차원을 지정합니다.

측정기준은 측정기준 요청 본문의 필드입니다. 이러한 측정기준은 보고서에 fieldNames 필드에 나열되는 값이어야 합니다. Pivot 객체의 필드입니다. 어떤 측정기준에서도 사용되지 않는 측정기준은 보고서에 표시되지 않습니다. 피벗 쿼리의 피벗입니다. 모든 측정기준이 피벗의 fieldNames 측정기준은 필터에서만 사용할 수 있고 피벗의 fieldNames입니다.

아래는 dimensionfieldNames 필드의 사용을 보여주는 스니펫입니다. browser, country, language 피벗이 있는 테이블의 경우:

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

측정항목

측정항목은 일정 기간에 발생한 이벤트 데이터의 정량적 측정치입니다. 확인할 수 있습니다 보고서 요청에서 하나 이상의 측정항목을 지정할 수 있습니다. API 측정항목 이름의 전체 목록은 API 측정항목을 참조하세요. 요청에 지정할 수 있습니다

피벗 보고서 요청에서 측정항목은metrics 요청 본문입니다. 이 메서드는 핵심 보고 메서드와 유사합니다.

아래 예에서는 보고서:

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

측정항목 집계

metricAggregations 사용 집계된 측정항목을 계산하기 위한 피벗 객체의 필드 값을 지정할 수 있습니다.

집계는 요청에 metricAggregates 필드가 지정된 경우에만 계산됩니다.

다음은 browser 피벗 측정기준:

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

계산된 측정항목은 집계로 반환됩니다. RunPivotReportResponse의 필드 객체를 지정합니다. 집계된 측정항목 행의 경우 dimensionValues 필드 RESERVED_TOTAL, RESERVED_MAX 또는 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"
        }
      ]
    },
  ....

  }

페이지로 나누기

핵심 보고 메서드와 마찬가지로 피벗 요청을 사용하면 한도를 및 offset 필드를 Pivot 객체를 사용하여 페이지로 나누기를 구현합니다. 페이지로 나누기 설정은 각 피벗에 개별적으로 적용됩니다. limit 필드는 모든 Pivot 객체에 필요합니다. 보고서 카디널리티

Data API v1은 각 피봇의 limit 매개변수 곱이 100,000을 초과하지 않는 한 여러 피봇을 지원합니다.

다음은 offsetlimit 필드의 사용을 보여주는 스니펫입니다. 오프셋 10으로 다음 5개의 language 차원을 검색합니다.

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

필터링

핵심 보고서 기능과 마찬가지로 요청 범위 측정기준 필터 피벗 보고에서 측정기준 필터링을 사용하려는 경우 합니다.

정렬

피벗 보고서 검색어의 순서 지정 동작은 각 피벗에 대해 제어할 수 있습니다. orderBys를 사용하여 개별적으로 피벗 객체의 필드이며 OrderBy 객체

모든 OrderBy에는 다음 중 하나가 포함될 수 있습니다.

  • DimensionOrderBy, 측정기준의 값을 기준으로 결과를 정렬합니다.
  • MetricOrderBy: 정렬 결과를 필터링할 수 있습니다.
  • PivotOrderBy: 다음에서 사용됩니다. 피벗 쿼리 및 측정항목 값에 따라 결과 정렬 피벗 열 그룹 내에서 생성됩니다.

이 예는 보고서를 피봇팅하는 피봇 정의의 스니펫을 보여줍니다. browser 측정기준(sessions 측정항목 기준) 내림차순으로 정렬합니다.

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

응답 신고

피벗의 피벗 보고서 응답 report API 요청은 주로 헤더와 행입니다.

응답 헤더

피벗 보고서 헤더는 PivotHeadersDimensionHeaders 및 측정기준의 열을 나열하는 MetricHeaders 피벗 보고서

예를 들어 browser, country, language 피벗 측정기준이 포함된 보고서입니다. 그리고 sessions 측정항목은 다음과 같은 헤더를 생성합니다.

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

}

아래 차트는 피벗 보고서의 각 구성요소의 역할을 보여줍니다. 피벗 보고서 렌더링 시의 응답:

원시 데이터 테이블

응답 행

runPivotReport의 피벗 보고서 응답입니다. 및 batchRunPivotReports 메서드가 핵심 보고 메서드에 대한 응답과 다름 예: runReportbatchRunReports 피벗 보고서 응답 행이 피벗 보고서 응답의 표에 있는 반면, 일반 보고서에서는 단일 응답 행이 전체 응답의 행입니다.

다음은 피벗 보고서 응답의 일부입니다. browser, country, language 피벗 측정기준으로 쿼리하고 sessions 측정항목 피벗 보고서의 각 셀은 개별적으로 반환됩니다.

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

  ]

이 데이터는 아래 표에서 강조표시된 2개의 셀에 해당합니다.

원시 데이터 테이블

클라이언트 라이브러리

다음에 대한 설명은 빠른 시작 가이드를 참조하세요. 클라이언트 라이브러리를 설치하고 구성하는 방법을 알아보세요.

다음 예에서는 클라이언트 라이브러리를 사용하여 피벗 쿼리를 실행하여 브라우저 측정기준을 기준으로 피벗된 국가별 세션수 보고서입니다.

PHP

<ph type="x-smartling-placeholder"></ph> google-analytics-data/src/run_pivot_report.php 를 통해 개인정보처리방침을 정의할 수 있습니다.
<ph type="x-smartling-placeholder"></ph> Cloud Shell에서 열기 GitHub에서 보기
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> Cloud Shell에서 열기 GitHub에서 보기
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> Cloud Shell에서 열기 GitHub에서 보기

  // TODO(developer): Uncomment this variable and replace with your
  // Google Analytics 4 property ID before running the sample.
  // propertyId = 'YOUR-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: '2021-01-01',
          endDate: '2021-01-30',
        },
      ],
      pivots: [
        {
          fieldNames: ['country'],
          limit: 250,
          orderBys: [
            {
              dimension: {
                dimensionName: 'country',
              },
            },
          ],
        },
        {
          fieldNames: ['browser'],
          offset: 3,
          limit: 3,
          orderBys: [
            {
              metric: {
                metricName: 'sessions',
              },
              desc: true,
            },
          ],
        },
      ],
      metrics: [
        {
          name: 'sessions',
        },
      ],
      dimensions: [
        {
          name: 'country',
        },
        {
          name: 'browser',
        },
      ],
    });
    printPivotReportResponse(response);
  }

  runPivotReport();

  // Prints results of a runReport call.
  function printPivotReportResponse(response) {
    console.log('Report result:');
    response.rows.forEach(row => {
      row.dimensionValues.forEach(dimensionValue => {
        console.log(dimensionValue.value);
      });

      row.metricValues.forEach(metricValue => {
        console.log(metricValue.value);
      });
    });
  }

데모 애플리케이션

Google Analytics API v1 피벗 보고서 데모 참조 애플리케이션 을 참조하세요.