谷歌Analytics(分析)API如何检索数据的下页(Google Analytics API h

2019-10-21 17:12发布

我使用谷歌Analytics(分析)API检索报告数据为我的配置之一。 如果行的报告数量超过1000,响应包含1000个结果加上了一个名为参数nextPage ,其中包含数据的下一个页面的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检索数据的下一个页面? 必须有某种机制这个内置于谷歌SDK,对不对?

Answer 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达到。



文章来源: Google Analytics API how to retrieve next page of data