我使用Google的数据API从度量和维度中获取不同类型的数据。但在某些情况下,我的维度与日期相同,并且希望获取基于相同维度的多个度量。
下面是我的代码,我根据当前日期获取activeUsers。我想要获取多个指标,如activeUsers、newUsers、使用一个API报告的会话,我必须通过传递不同的度量来获取数据,从而在API下面调用3次。还有其他解决办法吗?
$property_id = 'PROPERTY-ID';
$client = new BetaAnalyticsDataClient();
$response = $client->runReport([
'property' => 'properties/' . $property_id,
'dateRanges' => [
new DateRange([
'start_date' => '2021-06-01',
'end_date' => '2021-06-01',
]),
],
'dimensions' => [new Dimension(
[
'name' => 'date',
]
),
],
'metrics' => [new Metric(
[
'name' => 'activeUsers',
]
)
]
]);
foreach ($response->getRows() as $row) {
print $row->getDimensionValues()[0]->getValue()
. ' ' . $row->getMetricValues()[0]->getValue() . PHP_EOL;
}
我尝试使用以下代码发送两个度量标准:
'metrics' => [new Metric([
'name' => 'activeUsers',
],[
'name' => 'newUsers',
])]
但我如何才能从回应中得到回报呢?当前,我正在使用下面的
foreach ($response->getRows() as $row) {
print $row->getDimensionValues()[0]->getValue()
. ' ' . $row->getMetricValues()[0]->getValue() . PHP_EOL;
}
使用$row->getMetricValues()[0]->getValue()
可以返回activeUsers
的值,但是如何获得newUsers
的值,因为我使用了两个度量标准。我试过使用$row->getMetricValues()[1]->getValue()
,但不起作用。
发布于 2022-06-17 01:48:58
下面是一个包含2个维度和2个度量的API调用的示例:
// Make an API call.
$response = $client->runReport([
'property' => 'properties/' . $property_id,
'dateRanges' => [
new DateRange([
'start_date' => '2022-06-16',
'end_date' => 'today',
]),
],
'metrics' => [
new Metric([
'name' => 'activeUsers',
]),
new Metric([
"name" => "sessions"
])
],
'dimensions' => [
new Dimension([
"name" => "city"
]),
new Dimension([
'name' => 'firstUserSource',
])
],
]);
现在,在您的foreach
循环中执行以下操作:
foreach ($response->getRows() as $row) {
$return[] = [
'city' => $row->getDimensionValues()[0]->getValue(),
'source' => $row->getDimensionValues()[1]->getValue(),
'users' => $row->getMetricValues()[0]->getValue(),
'sessions' => $row->getMetricValues()[1]->getValue(),
];
}
然后就是json_encode
$return
,就这样。
https://stackoverflow.com/questions/67833346
复制相似问题