diff --git a/backend/controllers/SiteController.php b/backend/controllers/SiteController.php index 1288744..6b1ff44 100755 --- a/backend/controllers/SiteController.php +++ b/backend/controllers/SiteController.php @@ -108,6 +108,6 @@ public function actionAnalytic() { - return $this->renderPartial('analytic'); + return $this->render('analytic'); } } diff --git a/backend/views/site/analytic.php b/backend/views/site/analytic.php index bf32e38..69ff4c8 100644 --- a/backend/views/site/analytic.php +++ b/backend/views/site/analytic.php @@ -1,4 +1,6 @@ setExpression('ga:sessions'); $sessions->setAlias('Сеансы'); + $users = new Google_Service_AnalyticsReporting_Metric(); + $users->setExpression('ga:users'); + $users->setAlias('Пользователи'); + + $views = new Google_Service_AnalyticsReporting_Metric(); + $views->setExpression('ga:pageviews'); + $views->setAlias('Просмотры'); + + $new_sessions = new Google_Service_AnalyticsReporting_Metric(); + $new_sessions->setExpression('ga:percentNewSessions'); + $new_sessions->setAlias('Новые сессии'); + $dimensions = new Google_Service_AnalyticsReporting_Dimension(); $dimensions->setName('ga:date'); $request = new Google_Service_AnalyticsReporting_ReportRequest(); $request->setViewId($profile_id); $request->setDateRanges($dateRange); - $request->setMetrics($sessions); + $request->setMetrics( + [ + $sessions, + $users, + $views, + $new_sessions, + ] + ); $request->setDimensions($dimensions); $body = new Google_Service_AnalyticsReporting_GetReportsRequest(); $body->setReportRequests([ $request ]); $response = $analytics->reports->batchGet($body); - VarDumper::dump($response, 10, true); \ No newline at end of file + // VarDumper::dump($response, 10, true);die(); + + function printResults($reports) + { + $data = []; + for ($reportIndex = 0; $reportIndex < count($reports); $reportIndex++) { + $report = $reports[ $reportIndex ]; + $header = $report->getColumnHeader(); + $dimensionHeaders = $header->getDimensions(); + $metricHeaders = $header->getMetricHeader() + ->getMetricHeaderEntries(); + $rows = $report->getData() + ->getRows(); + $totals = $report->getData() + ->getTotals(); + $total_values = $totals[ 0 ]->getValues(); + + $data[ 'sessions' ] = $total_values[ 0 ]; + $data[ 'users' ] = $total_values[ 1 ]; + $data[ 'views' ] = $total_values[ 2 ]; + $data[ 'new' ] = $total_values[ 3 ]; + + 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 < count($metrics); $j++) { + $values = $metrics[ $j ]; + for ($valueIndex = 0; $valueIndex < count($values->getValues()); $valueIndex++) { + $value = $values->getValues()[ $valueIndex ]; + $data[ $valueIndex ][] = (int) $value; + } + } + } + } + + return $data; + } + + $data = printResults($response->getReports()); + +?> + +
Lorem ipsum psdea itgum rixt.
+Lorem ipsum psdea itgum rixt.
+Lorem ipsum psdea itgum rixt.
+Lorem ipsum psdea itgum rixt.
+