Advertisement
michaelyuen

Untitled

Jan 13th, 2018
102
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 4.08 KB | None | 0 0
  1. <?php
  2. require_once('google-analytics/vendor/autoload.php');
  3.  
  4. function initializeAnalytics($json_path) {
  5.    
  6.     // Use the developers console and download your service account
  7.     // credentials in JSON format. Place them in this directory or
  8.     // change the key file location if necessary.
  9.     $KEY_FILE_LOCATION = $json_path;
  10.  
  11.     // Create and configure a new client object.
  12.     $client = new Google_Client();
  13.     $client->setApplicationName("Hello Analytics Reporting");
  14.     $client->setAuthConfig($KEY_FILE_LOCATION);
  15.     $client->setScopes(['https://www.googleapis.com/auth/analytics.readonly']);
  16.     $analytics = new Google_Service_AnalyticsReporting($client);
  17.  
  18.     return $analytics;
  19. }
  20.  
  21. function getReport($analytics) {
  22.  
  23.     // Replace with your view ID, for example XXXX.
  24.     $VIEW_ID = "XXXXXXXX";
  25.  
  26.     // Create the DateRange object.
  27.   // Create the DateRange object.
  28.   $dateRange = new Google_Service_AnalyticsReporting_DateRange();
  29.   $dateRange->setStartDate("7daysAgo");
  30.   $dateRange->setEndDate("today");
  31.    
  32.     //Create the Dimensions object.
  33.    
  34.     $year = new Google_Service_AnalyticsReporting_Dimension();
  35.     $year->setName("ga:year");
  36.    
  37.     $month = new Google_Service_AnalyticsReporting_Dimension();
  38.     $month->setName("ga:month");
  39.    
  40.     $browser = new Google_Service_AnalyticsReporting_Dimension();
  41.     $browser->setName("ga:browser");
  42.    
  43.     $country = new Google_Service_AnalyticsReporting_Dimension();
  44.     $country->setName("ga:country");
  45.    
  46.     $search = new Google_Service_AnalyticsReporting_Dimension();
  47.     $search->setName("ga:searchUsed");
  48.    
  49.     $page = new Google_Service_AnalyticsReporting_Dimension();
  50.     $page->setName("ga:pagePath");
  51.  
  52.   // Create the Metrics object.
  53.   $sessions = new Google_Service_AnalyticsReporting_Metric();
  54.   $sessions->setExpression("ga:sessions");
  55.   $sessions->setAlias("sessions");
  56.    
  57.   // Create the Metrics object.
  58.   $pageviews = new Google_Service_AnalyticsReporting_Metric();
  59.   $pageviews->setExpression("ga:pageviews");
  60.   $pageviews->setAlias("pageviews");
  61.    
  62.   // Create the Metrics object.
  63.   $timeOnPage = new Google_Service_AnalyticsReporting_Metric();
  64.   $timeOnPage->setExpression("ga:timeOnPage");
  65.   $timeOnPage->setAlias("timeOnPage");
  66.  
  67.   // Create the ReportRequest object.
  68.   $requestSession = new Google_Service_AnalyticsReporting_ReportRequest();
  69.   $requestSession->setViewId($VIEW_ID);
  70.   $requestSession->setDateRanges($dateRange);
  71.     $requestSession->setDimensions(array($year, $month, $browser, $search, $country));
  72.   $requestSession->setMetrics(array($sessions));
  73.    
  74.   // Create the ReportRequest object.
  75.   $requestPageviews = new Google_Service_AnalyticsReporting_ReportRequest();
  76.   $requestPageviews->setViewId($VIEW_ID);
  77.   $requestPageviews->setDateRanges($dateRange);
  78.     $requestPageviews->setDimensions(array($year, $month, $page));
  79.   $requestPageviews->setMetrics(array($sessions, $timeOnPage));
  80.  
  81.   $body = new Google_Service_AnalyticsReporting_GetReportsRequest();
  82.   $body->setReportRequests( array( $requestSession, $requestPageviews) );
  83.   return $analytics->reports->batchGet( $body );
  84. }
  85.  
  86. function printResults($reports) {
  87.     for ( $reportIndex = 0; $reportIndex < count( $reports ); $reportIndex++ ) {
  88.     $report = $reports[ $reportIndex ];
  89.     $header = $report->getColumnHeader();
  90.     $dimensionHeaders = $header->getDimensions();
  91.     $metricHeaders = $header->getMetricHeader()->getMetricHeaderEntries();
  92.     $rows = $report->getData()->getRows();
  93.     echo '<pre>';
  94.     print_r($rows);
  95.     echo '</pre>';
  96.  
  97.         for ( $rowIndex = 0; $rowIndex < count($rows); $rowIndex++) {
  98.             $row = $rows[ $rowIndex ];
  99.             $dimensions = $row->getDimensions();
  100.             $metrics = $row->getMetrics();
  101.             for ($i = 0; $i < count($dimensionHeaders) && $i < count($dimensions); $i++) {
  102.                 echo $dimensionHeaders[$i] . ": " . $dimensions[$i] . "<br>";
  103.             }
  104.  
  105.             for ($j = 0; $j < count($metrics); $j++) {
  106.                 $values = $metrics[$j]->getValues();
  107.                 for ($k = 0; $k < count($values); $k++) {
  108.                     $entry = $metricHeaders[$k];
  109.                     echo $entry->getName() . ": " . $values[$k] . "<br>";
  110.                 }
  111.             }
  112.         }
  113.     }
  114. }
  115.  
  116. $analytics = initializeAnalytics($json_path);
  117. $response = getReport($analytics);
  118. printResults($response);
  119. }
  120. ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement