Данные в режиме реального времени: метод get

Требуется авторизация

В реальном времени возвращает данные по представлению (профилю). Испытайте его в действии или изучите пример.

Запрос

HTTP-запрос

GET https://www.googleapis.com/analytics/v3/data/realtime

Параметры

Название параметра Значение Описание
Обязательные параметры
ids string Уникальный идентификатор таблицы для извлечения данных Google Analytics. Имеет вид ga:XXXX, где XXXX – это идентификатор представления (профиля) Google Analytics.
metrics string Разделенный запятыми список показателей Google Analytics. Например, "rt:activeUsers". Необходимо указать хотя бы один показатель.
Необязательные параметры
dimensions string Разделенный запятыми список параметров отчетов "В режиме реального времени". Например, "rt:medium,rt:city".
filters string Разделенный запятыми список фильтров параметров или показателей, которые будут применяться к отчетам "В режиме реального времени".
max-results integer Максимально допустимое количество записей, включаемых в фид.
sort string Разделенный запятыми список параметров или показателей, которые будут определять порядок сортировки отчетов "В режиме реального времени".

Авторизация

Для выполнения этого запроса требуется авторизация как минимум в одной из следующих областей доступа. Подробнее...

Область доступа
https://www.googleapis.com/auth/analytics
https://www.googleapis.com/auth/analytics.readonly

Тело запроса

При работе с данным методом тело запроса не используется.

Ответ

В случае успеха этот метод возвращает ресурс RealTimeData в теле ответа.

Примеры

Примечание. Примеры кода для этого метода не охватывают все поддерживаемые языки программирования (их список опубликован на странице, посвященной клиентским библиотекам).

Java

Используется клиентская библиотека Java.

/**
 * 1. Create and Execute a Real Time Report
 * An application can request real-time data by calling the get method on the Analytics service object.
 * The method requires an ids parameter which specifies from which view (profile) to retrieve data.
 * For example, the following code requests real-time data for view (profile) ID 56789.
 */

Get realtimeRequest = analytics.data().realtime()
    .get("ga:56789",
         "rt:activeUsers")
    .setDimensions("rt:medium");

try {
  RealtimeData realtimeData = realtimeRequest.execute();
  // Success.

} catch (GoogleJsonResponseException e) {
  // Catch API specific errors.
  handleApiError(e);

} catch (IOException e) {
  // Catch general parsing network errors.
  e.printStackTrace();
}

/**
 * 2. Print out the Real-Time Data
 * The components of the report can be printed out as follows:
 */

private void printRealtimeReport(RealtimeData realtimeData) {
  System.out.println();
  System.out.println("Response:");
  System.out.println("ID:" + realtimeData.getId());
  System.out.println("realtimeData Kind: " + realtimeData.getKind());
  System.out.println();

  printQueryInfo(realtimeData.getQuery());
  printProfileInfo(realtimeData.getProfileInfo());
  printPaginationInfo(realtimeData);
  printDataTable(realtimeData);
}

private void printQueryInfo(Query query) {
  System.out.println("Query Info:");
  System.out.println("Ids: " + query.getIds());
  System.out.println("Metrics: " + query.getMetrics());
  System.out.println("Dimensions: " + query.getDimensions());
  System.out.println("Sort: " + query.getSort());
  System.out.println("Filters: " + query.getFilters());
  System.out.println("Max results: " + query.getMaxResults());
  System.out.println();
}

private void printProfileInfo(ProfileInfo profileInfo) {
  System.out.println("Info:");
  System.out.println("Account ID:" + profileInfo.getAccountId());
  System.out.println("Web Property ID:" + profileInfo.getWebPropertyId());
  System.out.println("Profile ID:" + profileInfo.getProfileId());
  System.out.println("Profile Name:" + profileInfo.getProfileName());
  System.out.println("Table Id:" + profileInfo.getTableId());
  System.out.println();
}

private void printPaginationInfo(RealtimeData realtimeData) {
  System.out.println("Pagination info:");
  System.out.println("Self link: " + realtimeData.getSelfLink());
  System.out.println("Total Results: " + realtimeData.getTotalResults());
  System.out.println();
}

private void printDataTable(RealtimeData realtimeData) {
  if (realtimeData.getTotalResults() > 0) {
    System.out.println("Data Table:");
    for (ColumnHeaders header : realtimeData.getColumnHeaders()) {
      System.out.format("%-32s", header.getName() + '(' + header.getDataType() + ')');
    }
    System.out.println();
    for (List<String> row : realtimeData.getRows()) {
      for (String element : row) {
        System.out.format("%-32s", element);
      }
      System.out.println();
    }
  } else {
    System.out.println("No data");
  }
}

PHP

Используется клиентская библиотека PHP

/**
 * 1.Create and Execute a Real Time Report
 * An application can request real-time data by calling the get method on the Analytics service object.
 * The method requires an ids parameter which specifies from which view (profile) to retrieve data.
 * For example, the following code requests real-time data for view (profile) ID 56789.
 */
$optParams = array(
    'dimensions' => 'rt:medium');

try {
  $results = $analytics->data_realtime->get(
      'ga:56789',
      'rt:activeUsers',
      $optParams);
  // Success.
} catch (apiServiceException $e) {
  // Handle API service exceptions.
  $error = $e->getMessage();
}

/**
 * 2. Print out the Real-Time Data
 * The components of the report can be printed out as follows:
 */

function printRealtimeReport($results) {
  printReportInfo($results);
  printQueryInfo($results);
  printProfileInfo($results);
  printColumnHeaders($results);
  printDataTable($results);
  printTotalsForAllResults($results);
}

function printDataTable(&$results) {
  if (count($results->getRows()) > 0) {
    $table .= '<table>';

    // Print headers.
    $table .= '<tr>';

    foreach ($results->getColumnHeaders() as $header) {
      $table .= '<th>' . $header->name . '</th>';
    }
    $table .= '</tr>';

    // Print table rows.
    foreach ($results->getRows() as $row) {
      $table .= '<tr>';
        foreach ($row as $cell) {
          $table .= '<td>'
                 . htmlspecialchars($cell, ENT_NOQUOTES)
                 . '</td>';
        }
      $table .= '</tr>';
    }
    $table .= '</table>';

  } else {
    $table .= '<p>No Results Found.</p>';
  }
  print $table;
}

function printColumnHeaders(&$results) {
  $html = '';
  $headers = $results->getColumnHeaders();

  foreach ($headers as $header) {
    $html .= <<<HTML
<pre>
Column Name       = {$header->getName()}
Column Type       = {$header->getColumnType()}
Column Data Type  = {$header->getDataType()}
</pre>
HTML;
  }
  print $html;
}

function printQueryInfo(&$results) {
  $query = $results->getQuery();
  $html = <<<HTML
<pre>
Ids         = {$query->getIds()}
Metrics     = {$query->getMetrics()}
Dimensions  = {$query->getDimensions()}
Sort        = {$query->getSort()}
Filters     = {$query->getFilters()}
Max Results = {$query->getMax_results()}
</pre>
HTML;

  print $html;
}

function printProfileInfo(&$results) {
  $profileInfo = $results->getProfileInfo();

  $html = <<<HTML
<pre>
Account ID               = {$profileInfo->getAccountId()}
Web Property ID          = {$profileInfo->getWebPropertyId()}
Internal Web Property ID = {$profileInfo->getInternalWebPropertyId()}
Profile ID               = {$profileInfo->getProfileId()}
Profile Name             = {$profileInfo->getProfileName()}
Table ID                 = {$profileInfo->getTableId()}
</pre>
HTML;

  print $html;
}

function printReportInfo(&$results) {
  $html = <<<HTML
  <pre>
Kind                  = {$results->getKind()}
ID                    = {$results->getId()}
Self Link             = {$results->getSelfLink()}
Total Results         = {$results->getTotalResults()}
</pre>
HTML;

  print $html;
}

function printTotalsForAllResults(&$results) {
  $totals = $results->getTotalsForAllResults();

  foreach ($totals as $metricName => $metricTotal) {
    $html .= "Metric Name  = $metricName\n";
    $html .= "Metric Total = $metricTotal";
  }

  print $html;
}

Python

Используется клиентская библиотека Python

# 1. Create and Execute a Real Time Report
# An application can request real-time data by calling the get method on the Analytics service object.
# The method requires an ids parameter which specifies from which view (profile) to retrieve data.
# For example, the following code requests real-time data for view (profile) ID 56789.

try:
  service.data().realtime().get(
      ids='ga:56789',
      metrics='rt:activeUsers',
      dimensions='rt:medium').execute()

except TypeError, error:
  # Handle errors in constructing a query.
  print ('There was an error in constructing your query : %s' % error)

except HttpError, error:
  # Handle API errors.
  print ('Arg, there was an API error : %s : %s' %
         (error.resp.status, error._get_reason()))

# 2. Print out the Real-Time Data
# The components of the report can be printed out as follows:

def print_realtime_report(results):
  print '**Real-Time Report Response**'	
  print_report_info(results)
  print_query_info(results.get('query'))
  print_profile_info(results.get('profileInfo'))
  print_column_headers(results.get('columnHeaders'))
  print_data_table(results)
  print_totals_for_all_results(results)

def print_data_table(results):
  print 'Data Table:'
  # Print headers.
  output = []
  for header in results.get('columnHeaders'):
    output.append('%30s' % header.get('name'))
  print ''.join(output)
  # Print rows.
  if results.get('rows', []):
    for row in results.get('rows'):
      output = []
      for cell in row:
        output.append('%30s' % cell)
      print ''.join(output)
  else:
    print 'No Results Found'

def print_column_headers(headers):
  print 'Column Headers:'
  for header in headers:
    print 'Column name           = %s' % header.get('name')
    print 'Column Type           = %s' % header.get('columnType')
    print 'Column Data Type      = %s' % header.get('dataType')

def print_query_info(query):
  if query:
    print 'Query Info:'
    print 'Ids                   = %s' % query.get('ids')
    print 'Metrics:              = %s' % query.get('metrics')
    print 'Dimensions            = %s' % query.get('dimensions')
    print 'Sort                  = %s' % query.get('sort')
    print 'Filters               = %s' % query.get('filters')
    print 'Max results           = %s' % query.get('max-results')

def print_profile_info(profile_info):
  if profile_info:
    print 'Profile Info:'
    print 'Account ID            = %s' % profile_info.get('accountId')
    print 'Web Property ID       = %s' % profile_info.get('webPropertyId')
    print 'Profile ID            = %s' % profile_info.get('profileId')
    print 'Profile Name          = %s' % profile_info.get('profileName')
    print 'Table Id              = %s' % profile_info.get('tableId')

def print_report_info(results):
  print 'Kind                    = %s' % results.get('kind')
  print 'ID                      = %s' % results.get('id')
  print 'Self Link               = %s' % results.get('selfLink')
  print 'Total Results           = %s' % results.get('totalResults')

def print_totals_for_all_results(results):
  totals = results.get('totalsForAllResults')
  for metric_name, metric_total in totals.iteritems():
    print 'Metric Name  = %s' % metric_name
    print 'Metric Total = %s' % metric_total

Практическое занятие

Воспользуйтесь инструментом API Explorer ниже, чтобы применить этот метод к реальным данным и посмотреть, как он работает. Также можно перейти на эту страницу.