샘플링되지 않은 보고서 개발자 가이드

Google 애널리틱스 관리 API를 사용하면 샘플링되지 않은 보고서를 프로그래매틱 방식으로 만들 수 있습니다.

소개

샘플링되지 않은 보고서는 샘플링되지 않은 데이터를 사용하여 생성된 Google 애널리틱스 보고서입니다. 샘플링되지 않은 보고서는 현재 Google 애널리틱스 360 사용자에게만 제공됩니다.

이 API를 사용하면 다음을 수행할 수 있습니다.

  • 모든 기존 샘플링되지 않은 보고서에 대한 구성 정보를 가져옵니다. 샘플링되지 않은 일회성 보고서를 만듭니다.
  • 샘플링되지 않은 보고서의 처리 상태를 확인합니다.
  • 처리가 완료되면 샘플링되지 않은 보고서에 대한 데이터 파일 링크를 가져옵니다.
  • 샘플링되지 않은 보고서를 삭제합니다.

샘플링되지 않은 보고서를 위한 데이터 검색

샘플링되지 않은 보고서를 만들 때 보고서를 다운로드할 수 있게 되기까지 시간이 걸릴 수 있습니다. 샘플링되지 않은 보고서의 status 필드는 해당 보고서의 처리가 완료되었는지 여부를 나타냅니다. 상태가 COMPLETED로 표시되면 downloadType 및 상응하는 다운로드 세부정보 필드를 사용하여 보고서 데이터가 포함된 파일을 가져올 수 있습니다. 예를 들면 다음과 같습니다.

일일 할당량이 빠르게 소진될 수 있으므로 보고서의 상태를 확인하기 위해 지속적인 높은 비율의 폴링을 사용하지 마세요. 샘플링되지 않은 보고서의 상태를 확인할 때 요청 사이에 시간 지연이 있어야 합니다.

Google Drive / Google Cloud Storage API 사용

파일을 전송할 위치 (Google Drive 또는 Google Cloud Storage)에 따라 파일에 해당하는 링크가 제공됩니다. Drive API 또는 Cloud Storage API를 사용하여 이 링크를 사용하여 파일을 다운로드할 수 있습니다. 파일을 가져오는 방법에 대한 자세한 내용은 Google Drive API 또는 Google Cloud Storage API 문서를 참고하세요.

예를 들어 샘플링되지 않은 보고서가 Google Drive에 저장된 경우 파일의 리소스 URL에 승인된 HTTP GET 요청을 보내고 쿼리 매개변수 alt=media를 포함할 수 있습니다.

GET /drive/v2/files/XXXXXX?alt=media
Host: www.googleapis.com
Content-length: 0
Authorization: Bearer ya29.AHESVbXTUv5mHMo3RYfmS1YJonjzzdTOFZwvyOAUVhrs

여기서 XXXXXX는 샘플링되지 않은 보고서입니다(driveDownloadDetails.documentId).

인증

샘플링되지 않은 보고서를 파일 다운로드를 위해 Drive 또는 Cloud Storage API와 함께 사용하려는 경우 OAuth 2.0 토큰을 요청할 때 Analytics API 인증 범위 외에 해당 API에 해당하는 인증 범위를 포함해야 합니다. 이렇게 하면 두 API에 동일한 인증 토큰을 사용할 수 있습니다.

샘플링되지 않은 보고서 삭제

예약된 보고서나 완료된 샘플링되지 않은 보고서를 삭제할 수 있지만 보고서가 생성되는 짧은 기간 동안 delete를 호출하면 오류가 발생합니다. 샘플링되지 않은 보고서를 삭제하면 GA 보기 (프로필)에서만 리소스가 삭제되고 Google Drive 또는 Google Cloud Storage에서 내보낸 데이터는 그대로 유지됩니다.

제한사항

샘플링되지 않은 보고서를 만들 때는 다음과 같은 제한사항이 적용됩니다.

  • 측정기준은 최대 4개까지만 지정할 수 있습니다.
  • Google Ads 데이터와 같은 일부 유형의 보고 데이터는 지원되지 않습니다.
  • 너무 비싼 것으로 간주되는 쿼리는 지원되지 않습니다.
  • 샘플링되지 않은 보고서를 너무 많이 만들어 한도에 도달한 경우 샘플링되지 않은 보고서 리소스를 안전하게 삭제하고 생성된 보고서 데이터를 Google 드라이브 또는 Google Cloud에 그대로 남겨둘 수 있습니다.

요청 비용이 너무 비싼 것으로 확인되면 생성 작업에서 적절한 메시지와 함께 오류를 반환합니다. 이 경우 다음을 수행할 수 있습니다.

  • 더 적은 측정기준을 요청합니다.
  • 쿼리를 기간이 짧은 여러 개의 검색어로 분할한 후 결과 보고서를 통합합니다.

사용 사례

샘플링되지 않은 보고서 및 Core Reporting API

Core Reporting API를 사용하여 보고서 데이터를 검색하고 데이터에 샘플 데이터가 포함되어 있으면 다음과 같이 동일한 검색어에 대해 샘플링되지 않은 보고서를 만들 수 있습니다.

  1. Core Reporting API 요청을 전송합니다.
  2. 응답에서 containsSampledData 속성을 확인하여 데이터가 샘플링되었는지 확인합니다.
  3. 이 속성을 true로 설정하면 동일한 응답의 쿼리 및 프로필 정보 필드를 사용하여 샘플링되지 않은 보고서에 대한 요청을 만들 수 있습니다.

Core Reporting API 응답의 샘플 쿼리 필드:

"query": {
  "start-date": "2011-01-01",
  "end-date": "2011-01-31",
  "ids": "ga:1234",
  "dimensions": "ga:browser",
  "metrics": [
  "ga:visits"
  ],
  "filters": "ga:country==US",
  "start-index": 1,
  "max-results": 1000
}

Core Reporting API 응답의 샘플 profileInfo 필드:

"profileInfo": {
  "profileId": "1234",
  "accountId": "12345",
  "webPropertyId": "UA-12345-1",
  "internalWebPropertyId": "11254",
  "profileName": "Name of the profile",
  "tableId": "ga:1234"
}

다음은 Core Reporting API 응답에서 샘플링되지 않은 보고서를 만드는 방법의 예입니다.

Java

// Make a Core Reporting API call.
GaData reportingApiData = v3.data().ga().get(...).execute();

// Check if the response is sampled.
if (reportingApiData.getContainsSampledData()) {

  // Use the “query” object to construct an unsampled report object.
  Query query = reportingApiData.getQuery();
  UnsampledReport report = new UnsampledReport()
      .setDimensions(query.getDimensions())
      .setMetrics(Joiner.on(',').join(query.getMetrics()))
      .setStartDate(startDate)
      .setEndDate(endDate)
      .setSegment(query.getSegment())
      .setFilters(query.getFilters())
      .setTitle(“My unsampled report”);

  // Use “profileInfo” to create an InsertRequest for creating an
  // unsampled report.
  ProfileInfo profileInfo = reportingApiData.getProfileInfo();
  Insert insertRequest = analytics.management().unsampledReports()
  .insert(profileInfo.getAccountId(),
          profileInfo.getWebPropertyId(),
          profileInfo.getProfileId(),
          report);
  UnsampledReport createdReport = insertRequest.execute();
}

여러 날짜에 대한 샘플링되지 않은 데이터 병합

여러 날짜에 대한 보고서를 결합하거나 연결하여 특정 기간에 대한 샘플링되지 않은 데이터를 얻을 수 있습니다. 이 기능은 샘플링되지 않은 데이터 요청이 너무 큰 경우에 유용합니다. 이 경우 요청을 기간이 짧은 여러 개의 요청으로 분할한 다음 결과를 결합할 수 있습니다.

할당량 정책

샘플링되지 않은 보고서를 만들 때 적용되는 전체 한도 및 할당량 목록은 Configuration and Reporting API 한도 및 할당량을 참조하세요.