Руководство по полным отчетам для разработчиков

API управления Google Analytics позволяет создавать полные отчеты программными средствами.

Введение

Полные отчеты Google Analytics формируются без выборки данных и в настоящий момент доступны только пользователям Google Analytics Премиум.

С помощью этого API вы можете:

  • получать сведения о конфигурации всех существующих полных отчетов и создавать отдельные полные отчеты;
  • отслеживать статус обработки полных отчетов;
  • получать ссылку на файл полного отчета после обработки.
  • удалять полные отчеты.

Как извлечь данные для полного отчета

Создание полного отчета занимает некоторое время. Информация о том, что обработка отчета завершена и он доступен для скачивания, появляется в поле status. После того как отчет получит статус COMPLETED, извлеките его файл с помощью downloadType и ещё одного поля: Пример:

  • Если downloadType имеет значение GOOGLE_DRIVE, используйте поле driveDownloadDetails.
  • Если downloadType имеет значение GOOGLE_CLOUD_STORAGE, используйте поле cloudStorageDownloadDetails.

Мы не рекомендуем слишком часто запрашивать статус отчета, поскольку в этом случае дневная квота будет исчерпана достаточно быстро. Между запросами должен оставаться определенный временной интервал.

Использование Google Drive API и Google Cloud Storage API

После обработки отчета вы получите ссылку для скачивания файла с Google Диска или Google Cloud Storage. Это можно сделать при помощи Google Drive API или Google Cloud Storage API. Подробнее читайте в документации по Google Drive API и Google Cloud Storage API.

Например, чтобы скачать полный отчет с Google Диска, создайте авторизованный HTTP-запрос GET для URL источника файла и добавьте в него параметр запроса alt=media.

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

XXXXXX – это полный отчет driveDownloadDetails.documentId.

Аутентификация

Если вы планируете скачивать файлы с помощью Google Drive API или Google Cloud Storage API, при запросе токена OAuth 2.0 для Google Analytics API необходимо дополнительно определить соответствующую область доступа.

Как удалить полный отчет

Вы можете удалять запланированные и созданные полные отчеты, однако помните, что вызов команды delete во время создания отчета приведет к ошибке. При удалении полного отчета удаляется только ресурс из представления (профиля) Google Analytics, экспортированные данные сохраняются на Google Диске или в Google Cloud Storage.

Ограничения

При создании полных отчетов действуют следующие ограничения:

  • Вы можете указать не более 4 параметров.
  • Не поддерживаются некоторые типы данных, например данные AdWords.
  • Не обрабатываются запросы, расходующие слишком большой объем ресурсов.

В последнем случае при создании отчета будет возвращена ошибка. Что вы можете сделать:

  • Уменьшить количество параметров в запросе.
  • Разделить запрос на несколько частей с более короткими диапазонами дат и объединить полученные отчеты.

Примеры использования

Полные отчеты и Core Reporting API

Если вы используете Core Reporting API для извлечения данных отчета с выборкой, для этого же запроса можно создать полный отчет. Вот как это сделать:

  1. Выполните запрос к Core Reporting API.
  2. Проверьте свойство containsSampledData ответа, которое определяет наличие выборки.
  3. Если оно имеет значение true, вы можете запросить полный отчет с помощью полей query и profileInfo ответа.

Пример поля query в ответе 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
}

Пример поля profileInfo в ответе Core Reporting API:

"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();
}

Полные отчеты за несколько дней

Если запрос без выборки возвращает слишком большой объем данных, вы можете объединить отчеты за несколько дней. В таком случае следует выполнить несколько запросов, указав для каждого из них часть нужного диапазона дат, а затем объединить результаты.

Правила относительно квот

Полный перечень квот и ограничений, применяемых к полным отчетам, приведен в этой статье.