面临同样的问题,并决定使用 cronjob 并将数据保存在 .json 文件中,我可以用于显示。
$globalTrendData = $client->runReport([
'property' => 'properties/' . $property_id,
'dateRanges' => [
new DateRange([
'start_date' => '20daysAgo',
'end_date' => 'yesterday',
]),
],
'dimensions' => [
new Dimension(['name' => 'pagePath',]),
new Dimension(['name' => 'pageTitle',]),
new Dimension(['name' => 'city',]),
new Dimension(['name' => 'sessionSource',]),
new Dimension(['name' => 'date',])
],
'metrics' => [
new Metric(['name' => 'screenPageViews',]),
new Metric(['name' => 'userEngagementDuration',]),
new Metric(['name' => 'activeUsers',]),
]
]);
foreach ($globalTrendData->getRows() as $key => $row) {
$saved['globalTrendData'][$key]['dimension']['pagePath'] = (array) $row->getDimensionValues()[0]->getValue() ;
$saved['globalTrendData'][$key]['dimension']['pageTitle'] = (array) $row->getDimensionValues()[1]->getValue() ;
$saved['globalTrendData'][$key]['dimension']['city'] = (array) $row->getDimensionValues()[2]->getValue() ;
$saved['globalTrendData'][$key]['dimension']['source'] = (array) $row->getDimensionValues()[3]->getValue() ;
$saved['globalTrendData'][$key]['dimension']['date'] = (array) $row->getDimensionValues()[4]->getValue() ;
$saved['globalTrendData'][$key]['metric']['screenPageViews'] = (array) $row->getMetricValues()[0]->getValue() ;
$saved['globalTrendData'][$key]['metric']['userEngagementDuration'] = (array) $row->getMetricValues()[1]->getValue() ;
$saved['globalTrendData'][$key]['metric']['activeUsers'] = (array) $row->getMetricValues()[2]->getValue() ;
}
file_put_contents($GLOBALS['serverPath'].'/monitoring/statistics.json',json_encode($saved, JSON_PRETTY_PRINT)) ;
Json 文件输出示例:
"globalTrendData": {
"0": {
"dimension": {
"pagePath": {
"0": "\/modeles-maison\/liste"
},
"pageTitle": {
"0": "Plans de maisons 100% personnalisables - adapt\u00e9s \u00e0 votre style et \u00e0 votre budget"
},
"city": {
"0": "(not set)"
},
"source": {
"0": "(direct)"
},
"date": {
"0": "20220128"
}
},
"metric": {
"screenPageViews": {
"0": "18"
},
"userEngagementDuration": {
"0": "152"
},
"activeUsers": {
"0": "1"
}
}
}
}