Google AnalyticsAPI v3如何提取值?

时间:2012-12-19 07:27:02

标签: php google-analytics google-analytics-api

我是GA API的新手,所以我不知道在这种情况下如何以正确的方式提取结果。

e.g。我正在尝试根据ga:pagePath = ...

中的过滤提取avgTimeOnPage值

但是每个人都在ga:pagePath上返回一个数字值。所以我认为ga:pagePathga:avgTimeOnPage结果没有正确显示。也许我没有提出正确的方法。

任何能提供帮助的人都将不胜感激。

$ids   = 'ga:123456789';
// $start_date $end_date already defined
$filter = 'ga:pagePath==/folder/somepage.html';    
$metrics = 'ga:avgTimeOnPage';
$optParams = array('dimensions' => 'ga:pagePath', 'filters' => $filter);
$data = $service->data_ga->
  get($ids, $start_date, $end_date, $metrics, $optParams);

foreach($data['totalsForAllResults'] as $rows) :

    echo $rows['ga:pagePath']; // why returning a single digit value?
    echo $rows['ga:avgTimeOnPage']; // also returns a single digit
endforeach;

1 个答案:

答案 0 :(得分:0)

$data['totalsForAllResults']将返回一行,即总行数。您正在寻找的值不是总数。所以你应该使用:

foreach ($data->getRows() as $row) :

然后你可以为每个单元格迭代$行。

检查这个完整的例子:

private 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;
}

来源:https://developers.google.com/analytics/devguides/reporting/core/v3/coreDevguide#working