1

Google アナリティクス API を使用して、プロファイルの 1 つのレポート データを取得しています。レポートの行数が 1000 を超える場合、応答には 1,000 の結果と、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 に組み込まれているはずですよね?

4

1 に答える 1

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は、到達するまで複数のリクエストを行う例を示しています。

于 2015-01-28T02:24:21.210 に答える