Google Analytics API, как получить следующую страницу данных

Я использую API Google Analytics для получения данных отчетов для одного из моих профилей. Если количество строк в отчете превышает 1000, ответ содержит 1000 результатов плюс параметр с именем nextPage, который содержит URL для следующей страницы данных. Я запутался, как на самом деле использовать этот URL для получения данных. Какой метод API я использую, чтобы фактически получить следующую страницу данных. Вот мой код:

$client = new Google_Client();
$client->setApplicationName('Google Analytics'); // name of your app

// set assertion credentials
$client->setAssertionCredentials(
new Google_Auth_AssertionCredentials(

GOOGLE_ANALYTICS_SERVICE_EMAIL, // email you added to GA

array('https://www.googleapis.com/auth/analytics.readonly'),

file_get_contents(storage_path().'/keys/privatekey.p12')  // keyfile you downloaded

));

$client->setClientId(GOOGLE_ANALYTICS_CLIENT_ID);           // from API console

$service = new Google_Service_Analytics($client);

$result = $service->data_ga->get(
'ga:'.DEFAULT_VIEW_ID,
'2014-09-01',
'2015-01-26',
'ga:uniquePageViews',
array(
'dimensions'=>'ga:dimension1',
'filters'=>'ga:dimension3==product'
)
);

print_r($result);

Результатом этого является Google_Service_Analytics_GaData объект, который содержит данные для 1000 строк плюс это:

[nextLink] => https://www.googleapis.com/analytics/v3/data/ga?ids=ga:86454007&dimensions=ga:dimension1&metrics=ga:uniquePageViews&filters=ga:dimension3%3D%3Dproduct&start-date=2014-09-01&end-date=2015-01-26&start-index=1001&max-results=1000

Как я могу использовать это nextLink получить следующую страницу данных? Должен быть какой-то механизм для этого, встроенный в Google SDK, верно?

1

Решение

Если вы посмотрите на параметры в этой ссылке, то заметите, что она совпадает с исходным запросом, но start-index значение установлено в 1001:

https://www.googleapis.com/analytics/v3/data/ga?
ids=ga:86454007&
dimensions=ga:dimension1&
metrics=ga:uniquePageViews&
filters=ga:dimension3%3D%3Dproduct&
start-date=2014-09-01&
end-date=2015-01-26&
start-index=1001&
max-results=1000

Так что в основном вы должны продолжать делать запросы, пока start-index + itemsPerPage > totalResults, Кроме того, если вы знаете, что у вас будет большой набор данных, вы часто можете установить max-results поле к чему-то выше, как 10000,

Это не часть PHP SDK, но этот модуль показывает пример выполнения нескольких запросов до totalResults достигнуто

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]