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()); + +?> + +
+
+
+
+
+
+ +

Sessions

+

Lorem ipsum psdea itgum rixt.

+
+
+
+
+
+
+
+ +

Users

+

Lorem ipsum psdea itgum rixt.

+
+
+
+
+
+
+
+ +

Page views

+

Lorem ipsum psdea itgum rixt.

+
+
+
+
+
+
+
%
+ +

New sessions

+

Lorem ipsum psdea itgum rixt.

+
+
+
+ +
+
+ 'Analytics', + 'toolbarLayout' => '{collapse}', + ] + ); ?> + + [ + 'colors' => [ + '#9ABCC3', + '#A8E3D6', + ], + 'chart' => [ + 'type' => 'area', + 'zoomType' => 'x', + ], + 'title' => [ + 'text' => 'Analytics', + ], + 'yAxis' => [ + 'title' => [ + 'text' => 'Sessions count', + ], + ], + 'series' => [ + [ + 'name' => 'Sessions', + 'data' => $data[ 0 ], + ], + [ + 'name' => 'Users', + 'data' => $data[ 1 ], + ], + ], + 'credits' => [ + 'enabled' => false, + ], + 'plotOptions' => [ + 'area' => [ + 'marker' => [ + 'enabled' => false, + 'symbol' => 'circle', + 'radius' => 2, + 'states' => [ + 'hover' => [ + 'enabled' => true, + ], + ], + ], + ], + ], + ], + ] + ); + ?> + + + +
+
+ +
+
+ 'Analytics', + 'toolbarLayout' => '{collapse}', + ] + ); ?> + + [ + 'exporting' => [ + 'enabled' => false, + ], + 'colors' => [ + '#9ABCC3', + '#A8E3D6', + ], + 'chart' => [ + 'plotBackgroundColor' => null, + 'plotBorderWidth' => null, + 'plotShadow' => false, + 'type' => 'pie', + ], + 'title' => [ + 'text' => 'Analytics', + ], + 'series' => [ + [ + 'name' => 'Sessions', + 'data' => [ + [ + 'name' => 'New visitor', + 'y' => round(intval($data[ 'new' ]), 2), + ], + [ + 'name' => 'Returning Visitor', + 'y' => 100 - round(intval($data[ 'new' ]), 2), + ], + ], + ], + ], + 'credits' => [ + 'enabled' => false, + ], + 'plotOptions' => [ + 'pie' => [ + 'allowPointSelect' => true, + 'cursor' => 'pointer', + ], + ], + ], + ] + ); + ?> + + +
+ +
\ No newline at end of file -- libgit2 0.21.4