这将得到前10页的数据。我把它限制在10个,以防止它吃掉我的配额。如果你删除它,它将继续抓走所有的行,吃掉你的配额。
注意:只有在您有一份报告的情况下,这才有效。如果你有不止一个报告,那么你必须做一些奇特的事情,将正确的pageToken应用到每个报告,并删除完整的报告。此时,除了返回的报告在报告数组中的位置外,没有报告Id或匹配发送到报告的内容的方法。
$service = new Google_Service_AnalyticsReporting($client);
// Create the DateRange object.
$dateRange = new Google_Service_AnalyticsReporting_DateRange();
$dateRange->setStartDate("2016-01-01");
$dateRange->setEndDate("2017-06-30");
// Create the Metrics object.
$sessions = new Google_Service_AnalyticsReporting_Metric();
$sessions->setExpression("ga:sessions");
$sessions->setAlias("sessions");
//Create the Dimensions object.
$date = new Google_Service_AnalyticsReporting_Dimension();
$date->setName("ga:date");
$pagePath = new Google_Service_AnalyticsReporting_Dimension();
$pagePath->setName("ga:pagePath");
// Create the ReportRequest object.
$request = new Google_Service_AnalyticsReporting_ReportRequest();
$request->setViewId("81692014");
$request->setPageSize("10000");
$request->setDateRanges($dateRange);
$request->setDimensions(array($date,$pagePath));
$request->setMetrics(array($sessions));
$request->setMetrics(array($sessions));
$body = new Google_Service_AnalyticsReporting_GetReportsRequest();
$body->setReportRequests( array( $request) );
$data = $service->reports->batchGet( $body );
// Remove count if you really want everything.
$cnt = 0;
while ($data->reports[0]->nextPageToken > 0 && $cnt < 10) {
// There are more rows for this report.
$body->reportRequests[0]->setPageToken($data->reports[0]->nextPageToken);
$data = $service->reports->batchGet( $body );
$cnt++;
}
Google Analytics V4 pagination
我使用的完整代码可以在
GitHub
注意,这段代码是从我的示例项目中删除的。