我是GA API的新手,所以我不知道在这种情况下如何以正确的方式提取结果。
e.g。我正在尝试根据ga:pagePath = ...
中的过滤提取avgTimeOnPage值但是每个人都在ga:pagePath
上返回一个数字值。所以我认为ga:pagePath
和ga: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;
答案 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