2015-01-27 2 views
1

Google Analytics API를 사용하여 내 프로필 중 하나에 대한보고 데이터를 가져옵니다. 보고서의 행 수가 1000을 초과하면 응답에 1,000 개의 결과와 nextPage이라는 매개 변수가 포함되며 여기에는 데이터의 다음 페이지에 대한 URL이 포함됩니다. 데이터를 검색하기 위해이 URL을 실제로 사용하는 방법이 혼란 스럽습니다. 실제로 다음 데이터 페이지를 가져 오기 위해 사용하는 API 메소드입니다. 여기에 내 코드입니다 :Google Analytics 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); 

이 결과 1000 행 플러스 이것에 대한 데이터를 포함 Google_Service_Analytics_GaData 객체 :

[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의 일부가 아니지만 this moduletotalResults에 도달 할 때까지 여러 요청을 한 예를 보여줍니다.