我正在使用Google API V4 https://developers.google.com/analytics/devguides/reporting/core/v4/quickstart/service-php
我遇到了setAlias函数的问题。如果选择了多个指标,则所有返回的标题都相同。
代码:
<?php
$metrices = {FORM ARRY WITH MULTIPLE METRICES}
$nmetrices = array();
if(is_array($metrices) && count($metrices) > 0){
$i=0;
foreach($metrices as $metric){
$nmetrices[$i] = new Google_Service_AnalyticsReporting_Metric();
$nmetrices[$i]->setExpression($metric);
$nmetrices[$i]->setAlias($metric);
$i+=1;
}
}?>
示例:
我选择了“ga:users”和“ga:percentNewSessions”,但返回的结果标题为:“ga:users”这两个指标。
ga:medium: (none)
ga:date: 20150810
Metric type: INTEGER
**ga:users: 764
ga:users: 97.38219895287958**
ga:medium: (none)
ga:date: 20150811
Metric type: INTEGER
**ga:users: 2495
ga:users: 85.50284629981024**
答案 0 :(得分:1)
我刚开始使用Analytics API v4并遇到了这个问题。提供的PHP代码不允许示例中的printResults()函数有多个指标,但Google的数据包含正确的别名。
来自Google的指标对象是单根,但指标标题对象是每个请求指标类型的单独条目。
这是一个更新的printResults()函数,可以满足多个指标。
function printResults($reports) {
for ( $reportIndex = 0; $reportIndex < count( $reports ); $reportIndex++ ) {
$report = $reports[ $reportIndex ];
$header = $report->getColumnHeader();
$dimensionHeaders = $header->getDimensions();
$metricHeaders = $header->getMetricHeader()->getMetricHeaderEntries();
$rows = $report->getData()->getRows();
for ( $rowIndex = 0; $rowIndex < count($rows); $rowIndex++) {
$row = $rows[ $rowIndex ];
$dimensions = $row->getDimensions();
$metrics = $row->getMetrics();
for ($i = 0; $i < count($dimensionHeaders) && $i < count($dimensions); $i++) {
print($dimensionHeaders[$i] . ": " . $dimensions[$i] . "\n");
}
for ($j = 0; $j < count( $metricHeaders ); $j++) {
$entry = $metricHeaders[$j];
$values = $metrics[$rowIndex];
$value = $values->getValues()[$j];
print($entry->getName() . ": " . $value . "\n");
}
}
}
}