Google Analytics API-不完整的报告批次 - php

因此,我们有一个有效的API,可以在特定日期范围内获取报告。最近,我们尝试获取行数达到40,000个结果的报告。我们从API得到响应,并且能够提取前1000行。

现在的问题是分页。查询设置为每批检索1,000行,因此总共40批(基于40,000行)。根据analytics api pagination,从api响应中检索nextPageToken并将其设置为下一个批处理请求。大多数情况下,我们得到的报告不完整,因为响应返回的nextPageToken为空。因此,我们无法继续获取下一批。我们尝试手动填充nextPageToken,因为它是从零开始的行索引,但是api调用失败。

知道为什么响应中的nextPageToken随机失败吗?

迭代代码:

$body = new Google_Service_AnalyticsReporting_GetReportsRequest();
$body->setReportRequests( array( $request) );
$data =  $service->reports->batchGet( $body );

$cnt = 0; 
while ($data->reports[0]->nextPageToken > 0 && $cnt < 10) {
    \Log::info($data->reports[0]->nextPageToken); // Token log
    $body->reportRequests[0]->setPageToken($data->reports[0]->nextPageToken);
    $data =  $service->reports->batchGet( $body );
    showData($data->reports[0]->nextPageToken);
    $cnt++;
}

Log results:
Attempt 1
[2018-08-28 03:43:57] local.INFO: 1000  
[2018-08-28 03:43:59] local.INFO: 2000  
[2018-08-28 03:44:04] local.INFO: (failed/ empty next page token)
Attempt 2
[2018-08-28 03:45:01] local.INFO: 1000  
[2018-08-28 03:45:26] local.INFO: 2000  
[2018-08-28 03:45:42] local.INFO: (failed/ empty next page token) 
Attempt 3
[2018-08-28 03:48:47] local.INFO: 1000  
[2018-08-28 03:49:01] local.INFO: 2000  
[2018-08-28 03:49:15] local.INFO: 3000  
[2018-08-28 03:49:31] local.INFO: 4000  
[2018-08-28 03:49:46] local.INFO: 5000  
[2018-08-28 03:50:02] local.INFO: (failed/ empty next page token)  
Attempt 4
[2018-08-28 03:54:10] local.INFO: 1000  
[2018-08-28 03:54:12] local.INFO: 2000  
[2018-08-28 03:54:13] local.INFO: 3000  
[2018-08-28 03:54:14] local.INFO: 4000  
[2018-08-28 03:54:15] local.INFO: 5000  
[2018-08-28 03:54:16] local.INFO: 6000  
[2018-08-28 03:54:31] local.INFO: (failed/ empty next page token)

参考方案

您需要设置每个页面令牌,例如nextPageToken

do {
   //your processing code
    $request->setPageToken($response[0]->getNextPageToken());//set next page token
} while ($response[0]->getNextPageToken() != '');

Google Analytics PHP API:找不到目标 - php

在我公司,我们决定使用Google Analytics(分析)来获取有关访问者,进入渠道等的一些有趣指标...当访问者提交联系表单时,我创建了一个“触发”的目标,一切工作正常,我什至创建了一个细分来预览使用该表单的人与其他人之间的区别。使用PHP API,我有自己的仪表板表,其中逐个列出了每个会话的一些详细信息,其中包括:每个访问的URL约会时间如果来自Ad…

Google Analytics(分析)报告中的分页 - php

在这里,我正在获取下一个和上一个URL,但是当尝试使用该URL访问下一页时,由于网址= https://www.googleapis.com/analytics/v3/data/ga?ids=ga:85914642&dimensions=ga:pagePath,ga:date&metrics=ga:pageviews,ga:uniquePag…

Google AdWords PHP客户端库v201702 - php

我正在将Google Adwords API v201702用于php客户端库和try to accessing an API on behalf of clients我已经使用以下代码成功创建了$ oauth2数据use Google\Auth\OAuth2; session_start(); $oauth2 = new OAuth2([ 'au…

Dropbox API限制 - php

考虑到我不是业余爱好者,是否可以使用dropbox api直接在我的网页上显示我dropbox帐户上的文件夹的内容,并允许dropbox用户向其添加内容(也可以直接从我的网站)向其添加内容专业的编码员。 参考方案 您可能会对Dropbox Chooser和Saver JavaScript小部件感兴趣,这些小部件允许您执行类似操作。如果您的用户不仅仅使用Dro…

Google Calendar API未收到确认响应 - java

我们已经在Java中完成了Google Calendar API的集成,我们能够发送会议请求,并且与会者可以接收该请求。但是,当与会者单击邮件中的“是”或“否”按钮时,响应存在一些问题,组织者将无法获得响应。问题是,当与会者试图接受或拒绝会议时,组织者没有得到回应。 java参考方案 我怀疑您尚未在事件上设置推送notifications,然后将通知您更改并…