public function GAFeed::queryReportFeed in Google Analytics Reports 7
Same name and namespace in other branches
- 6 GAFeed.lib.inc \GAFeed::queryReportFeed()
Query and sanitize report data
File
- ./
GAFeed.lib.inc, line 292 - Provides the GAFeed object type and associated methods.
Class
- GAFeed
- GAFeed class to authorize access to and request data from the Google Analytics Data Export API.
Code
public function queryReportFeed($params = array(), $cache_options = array()) {
/* Provide defaults if the developer did not override them */
$params += array(
'profile_id' => 0,
'dimensions' => NULL,
'metrics' => 'ga:visits',
'sort_metric' => NULL,
'filters' => NULL,
'segment' => NULL,
'start_date' => NULL,
'end_date' => NULL,
'start_index' => 1,
'max_results' => 10000,
);
$parameters = array(
'ids' => $params['profile_id'],
);
if (is_array($params['dimensions'])) {
$parameters['dimensions'] = implode(',', $params['dimensions']);
}
elseif ($params['dimensions'] !== NULL) {
$parameters['dimensions'] = $params['dimensions'];
}
if (is_array($params['metrics'])) {
$parameters['metrics'] = implode(',', $params['metrics']);
}
else {
$parameters['metrics'] = $params['metrics'];
}
if ($params['sort_metric'] == NULL && isset($parameters['metrics'])) {
$parameters['sort'] = $parameters['metrics'];
}
elseif (is_array($params['sort_metric'])) {
$parameters['sort'] = implode(',', $params['sort_metric']);
}
else {
$parameters['sort'] = $params['sort_metric'];
}
if ($params['start_date'] == NULL) {
/* Use the day that Google Analytics was released (1 Jan 2005) */
$start_date = '2005-01-01';
}
elseif (is_int($params['start_date'])) {
/* Assume a Unix timestamp */
$start_date = date('Y-m-d', $params['start_date']);
}
$parameters['start-date'] = $start_date;
if ($params['end_date'] == NULL) {
$end_date = date('Y-m-d');
}
elseif (is_int($params['end_date'])) {
/* Assume a Unix timestamp */
$end_date = date('Y-m-d', $params['end_date']);
}
$parameters['end-date'] = $end_date;
/* Accept only strings, not arrays, for the following parameters */
if (!empty($params['filters'])) {
$parameters['filters'] = $params['filters'];
}
if (!empty($params['segment'])) {
$parameters['segment'] = $params['segment'];
}
$parameters['start-index'] = $params['start_index'];
$parameters['max-results'] = $params['max_results'];
$this
->setQueryPath('analytics/v2.4/data');
if ($this
->query($this->queryPath, $parameters, 'GET', $cache_options)) {
$this
->sanitizeReport();
}
}