实时数据:get

需要授权

返回数据视图(配置文件)的实时数据。 立即试用查看示例

请求

HTTP 请求

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

参数

参数名称 说明
必需参数
ids string 用于提取 Google Analytics(分析)数据的唯一表格 ID。ga:XXXX 形式的表格 ID,其中 XXXX 是 Google Analytics(分析)数据视图(配置文件) ID。
metrics string 以英文逗号分隔的 Google Analytics(分析)指标列表。例如:“rt:activeUsers”。至少必须指定一个指标。
可选参数
dimensions string 以英文逗号分隔的实时维度列表。例如:“rt:medium,rt:city”。
filters string 以英文逗号分隔的维度或指标过滤条件(应用于实时数据)列表。
max-results integer 可在 Feed 中加入的条目数上限。
sort string 以英文逗号分隔的维度或指标(用于确定实时数据的排序依据)列表。

授权

此请求至少需要获得以下任一范围的授权(详细了解身份验证和授权)。

范围
https://www.googleapis.com/auth/analytics
https://www.googleapis.com/auth/analytics.readonly

请求正文

请勿使用此方法提供请求正文。

响应

如果成功,此方法将在响应正文中返回一个实时数据资源

示例

备注:此方法的代码示例并未列出所有受支持的编程语言(请参阅客户端库页面,查看受支持的语言列表)。

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 针对实时数据调用此方法并查看响应。或者,您还可以尝试使用独立的 Explorer