index.php 3.44 KB
<?php
/**
 * Created by PhpStorm.
 * User: Alex Savenko
 * Date: 28.12.2016
 * Time: 21:52
 */

use yii\helpers\Html;
use yii\grid\GridView;
use yii\helpers\Url;

/* @var $this yii\web\View */

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

<div>
    <h1><?= Html::encode($this->title) ?></h1>
    <?php

        $client = new Google_Client();
        //$client->setAuthConfig(__DIR__ . '/client_secrets.json');
        $client->addScope(Google_Service_Analytics::ANALYTICS_READONLY);

        $analytics = new Google_Service_AnalyticsReporting($client);
        //$analytics = new Google_Service_AnalyticsReporting(\Yii::$app->googleApi->client);

        // Вызов the Analytics Reporting API V4.
        $response = getReport($analytics);

        // Вывод ответа.
        printResults($response);

        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");
                        }
                    }
                }
            }
        }
    ?>
</div>