title = Yii::t('app', 'Report'); $this->params['breadcrumbs'][] = $this->title; ?>

title) ?>

setAuthConfig('./client_secrets.json'); $client->addScope(Google_Service_Analytics::ANALYTICS_READONLY); // Если пользователь уже авторизовал это приложение, предоставьте токен доступа. // В противном случае перенаправьте пользователя на страницу авторизации доступа в Google Analytics. if (isset($_SESSION['access_token']) && $_SESSION['access_token']) { // Установка токена доступа на клиентском компьютере. $client->setAccessToken($_SESSION['access_token']); // Создание авторизованного объекта службы аналитики. $analytics = new Google_Service_AnalyticsReporting($client); // Вызов the Analytics Reporting API V4. $response = getReport($analytics); // Вывод ответа. printResults($response); } else { $redirect_uri = 'http://' . $_SERVER['HTTP_HOST'] . '/admin/report/callback'; header('Location: ' . filter_var($redirect_uri, FILTER_SANITIZE_URL)); } function getReport($analytics) { // Замена на свой идентификатор представления, напр. XXXX. $VIEW_ID = "119240817"; // Создание объекта DateRange. $dateRange = new Google_Service_AnalyticsReporting_DateRange(); $dateRange->setStartDate("7daysAgo"); $dateRange->setEndDate("today"); // Создание объекта Metrics. $sessions = new Google_Service_AnalyticsReporting_Metric(); $sessions->setExpression("ga:sessions"); $sessions->setAlias("sessions"); // Создание объекта ReportRequest. $request = new Google_Service_AnalyticsReporting_ReportRequest(); $request->setViewId($VIEW_ID); $request->setDateRanges($dateRange); $request->setMetrics(array($sessions)); $body = new Google_Service_AnalyticsReporting_GetReportsRequest(); $body->setReportRequests( array( $request) ); return $analytics->reports->batchGet( $body ); } 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 < count( $metrics ); $j++) { $entry = $metricHeaders[$j]; $values = $metrics[$j]; print("Metric type: " . $entry->getType() . "\n" ); for ( $valueIndex = 0; $valueIndex < count( $values->getValues() ); $valueIndex++ ) { $value = $values->getValues()[ $valueIndex ]; print($entry->getName() . ": " . $value . "\n"); } } } } } /** * Note: This code assumes you have an authorized Analytics service object. * See the Segments Developer Guide for details. */ /** * Example #1: * Requests a list of all Segments for the authorized user. */ try { $segments = $analytics->management_segments->listManagementSegments(); } catch (apiServiceException $e) { print 'There was an Analytics API service error ' . $e->getCode() . ':' . $e->getMessage(); } catch (apiException $e) { print 'There was a general API error ' . $e->getCode() . ':' . $e->getMessage(); } /* * Example #2: * The results of the list method are stored in the segments object. * The following code shows how to iterate through them. */ foreach ($segments->getItems() as $segment) { $html .= << Segment ID = {$segment->getId()} Kind = {$segment->getKind()} Self Link = {$segment->getSelfLink()} Name = {$segment->getName()} Definition = {$segment->getDefinition()} Created = {$segment->getCreated()} Updated = {$segment->getUpdated()} HTML; print $html; }