diff --git a/application/controllers/gaapi.php b/application/controllers/gaapi.php index f9823a11..33003782 100644 --- a/application/controllers/gaapi.php +++ b/application/controllers/gaapi.php @@ -16,8 +16,9 @@ class Gaapi extends CI_Controller public function user_track() { + $cid = $this->input->get_post('cid'); $analytics = $this->initializeAnalytics(); - $response = $this->getReport($analytics); + $response = $this->getReport($analytics, $cid); $this->printResults($response); } @@ -37,7 +38,7 @@ class Gaapi extends CI_Controller // Create and configure a new client object. $client = new Google_Client(); - $client->setApplicationName("Hello Analytics Reporting"); + $client->setApplicationName("User Tracker"); $client->setAuthConfig($KEY_FILE_LOCATION); $client->setScopes(['https://www.googleapis.com/auth/analytics.readonly']); $analytics = new Google_Service_AnalyticsReporting($client); @@ -52,15 +53,16 @@ class Gaapi extends CI_Controller * @param service An authorized Analytics Reporting API V4 service object. * @return The Analytics Reporting API V4 response. */ - function getReport($analytics) + function getReport($analytics, $cid_no) { + //die($cid); // Replace with your view ID, for example XXXX. $VIEW_ID = "68484932"; // Create the DateRange object. $dateRange = new Google_Service_AnalyticsReporting_DateRange(); - $dateRange->setStartDate("9daysAgo"); + $dateRange->setStartDate("30daysAgo"); $dateRange->setEndDate("today"); // Create the Metrics object. @@ -75,12 +77,24 @@ class Gaapi extends CI_Controller $cid->setName("ga:dimension1"); $hitTime = new Google_Service_AnalyticsReporting_Dimension(); $hitTime->setName("ga:dimension3"); - - //fliter - $dimensionFilter = new Google_Service_AnalyticsReporting_SegmentDimensionFilter(); - $dimensionFilter->setDimensionName("ga:dimension1"); - $dimensionFilter->setOperator("EXACT"); - $dimensionFilter->setExpressions(array("1339237903.1553451389")); + $ip = new Google_Service_AnalyticsReporting_Dimension(); + $ip->setName("ga:dimension3"); + + // Create Dimension Filter 1 + $cidFilter = new Google_Service_AnalyticsReporting_DimensionFilter(); + $cidFilter->setDimensionName("ga:dimension1"); + $cidFilter->setOperator('EXACT'); + $cidFilter->setExpressions($cid_no); + + // Create the DimensionFilterClauses + $dimensionFilterClause = new Google_Service_AnalyticsReporting_DimensionFilterClause(); + $dimensionFilterClause->setFilters(array($cidFilter)); + + // OrderBy maybe some bugs + $order = new Google_Service_AnalyticsReporting_OrderBy; + $order->setFieldName("ga:dimension3"); + $order->setOrderType("VALUE"); + $order->setSortOrder("DESCENDING"); // Create the ReportRequest object. $request = new Google_Service_AnalyticsReporting_ReportRequest(); @@ -88,7 +102,8 @@ class Gaapi extends CI_Controller $request->setDateRanges($dateRange); $request->setMetrics(array($pv)); $request->setDimensions(array($pageUrl, $cid, $hitTime)); - $request->setDimensionFilter($dimensionFilter); + $request->setDimensionFilterClauses(array($dimensionFilterClause)); + $request->setOrderBys(array($order)); $body = new Google_Service_AnalyticsReporting_GetReportsRequest(); $body->setReportRequests(array($request)); @@ -97,36 +112,47 @@ class Gaapi extends CI_Controller /** - * Parses and prints the Analytics Reporting API V4 response. - * - * @param An Analytics Reporting API V4 response. - */ + * Parses and prints the Analytics Reporting API V4 response. + * + * @param An Analytics Reporting API V4 response. + */ function printResults($reports) { + $alais_array = array( + "ga:dimension1" => "cid", + "ga:dimension3" => "hitTime", + "ga:pagePath" => "path" + ); + $rs_array = array(); for ($reportIndex = 0; $reportIndex < count($reports); $reportIndex++) { $report = $reports[$reportIndex]; $header = $report->getColumnHeader(); $dimensionHeaders = $header->getDimensions(); $metricHeaders = $header->getMetricHeader()->getMetricHeaderEntries(); $rows = $report->getData()->getRows(); - + $rs_row = array(); 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"); + //print($dimensionHeaders[$i] . ": " . $dimensions[$i] . "\n"); + $rs_row[$alais_array[$dimensionHeaders[$i]]] = $dimensions[$i]; } for ($j = 0; $j < count($metrics); $j++) { $values = $metrics[$j]->getValues(); for ($k = 0; $k < count($values); $k++) { $entry = $metricHeaders[$k]; - print($entry->getName() . ": " . $values[$k] . "\n"); + //print($entry->getName() . ": " . $values[$k] . "\n"); + $rs_row[$entry->getName()] = $values[$k]; } } + array_push($rs_array, $rs_row); } } + echo(json_encode($rs_array)); } + } //end of gaapi