public function init() { parent::init(); $client = Google\Api::getServiceClient(); if (!$client) { die("Google Analytics is not configured"); } $this->service = new Google_Service_Analytics($client); }
/** * @param null $fields * @param null $drillDownFilters * @param bool $useDimensionHandling * @return mixed * @throws \Exception */ protected function getDataHelper($fields = null, $drillDownFilters = null, $useDimensionHandling = true) { $configuration = clone $this->config; if (is_array($fields) && sizeof($fields)) { $configuration = $this->handleFields($configuration, $fields); } if ($this->fullConfig && $useDimensionHandling) { $configuration = $this->handleDimensions($configuration); } $client = \Pimcore\Google\Api::getServiceClient(); if (!$client) { throw new \Exception("Google Analytics is not configured"); } $service = new \Google_Service_Analytics($client); if (!$configuration->profileId) { throw new \Exception("no profileId given"); } if (!$configuration->metric) { throw new \Exception("no metric given"); } $options = array(); if ($configuration->filters) { $options['filters'] = $configuration->filters; } if ($configuration->dimension) { $options['dimensions'] = $configuration->dimension; } if ($configuration->sort) { $options['sort'] = $configuration->sort; } if ($configuration->startIndex) { $options['start-index'] = $configuration->startIndex; } if ($configuration->maxResults) { $options['max-results'] = $configuration->maxResults; } if ($configuration->segment) { $options['segment'] = $configuration->segment; } $configuration->startDate = $this->calcDate($configuration->startDate, $configuration->relativeStartDate); $configuration->endDate = $this->calcDate($configuration->endDate, $configuration->relativeEndDate); if (!$configuration->startDate) { throw new \Exception("no start date given"); } if (!$configuration->endDate) { throw new \Exception("no end date given"); } return $service->data_ga->get('ga:' . $configuration->profileId, date('Y-m-d', $configuration->startDate), date('Y-m-d', $configuration->endDate), $configuration->metric, $options); }