Zend gdata analytics get next results set

gdata возвращает по умолчанию до 1000 результатов, можно выставить максимум 10 тыс. но если и этого мало - то надо делать серию запросов с использованием max-results и start-index.

Благо в либе Zend Gdata уже предусмотрели все это дело и добавили метод getNextFeed

Пример:

$email = "[email protected]";
$pass = "PASSWORD";
$siteId = "ga:2266524";

$currentDate = date("Y-m-01");
$startDate = date("Y-m-d", strtotime(date("Y-m-d", strtotime($currentDate)) . " -6 month"));
$endDate = date("Y-m-d", strtotime(date("Y-m-d", strtotime($currentDate)) . " -0 month"));

require_once("Zend/Loader.php");
Zend_Loader::loadClass('Zend_Gdata');
Zend_Loader::loadClass('Zend_Gdata_Query');
Zend_Loader::loadClass('Zend_Gdata_ClientLogin');

$client = Zend_Gdata_ClientLogin::getHttpClient($email, $pass, "analytics");
$gdClient = new Zend_Gdata($client);

$reportURL = "https://www.google.com/analytics/feeds/data" .
    "?start-date=" . $startDate .
    "&end-date=" . $endDate .
    "&dimensions=ga:month,ga:browser,ga:browserVersion" .
    "&metrics=ga:pageviews" .
    "&sort=ga:month" .
    //"&max-results=8" .
    "&filters=ga:browser%3D%3DFirefox,ga:browser%3D%3DOpera,ga:browser%3D%3DChrome,ga:browser%3D%3DInternet%20Explorer" .
    "&ids=" . $siteId;

$results = $gdClient->getFeed($reportURL);
while($results != null) {
    echo count($results).'<br />';
    try {
        $results = $results->getNextFeed();
    }
    catch(Exception $e) {$results = null;}
}