GoogleAnalytics API错误startindex和maxresults

时间:2017-03-06 09:35:56

标签: python google-api google-analytics-api google-api-python-client

我使用Google Analytics Reporting Api V3使用Google APIs Python client library提取数据,我希望我的结果采用给定的索引格式,或者将所有数据放入小块中。

我正在尝试使用索引和结果查询它显示错误

def get_report(analytics, view_id, value): #, index):
    # Use the Analytics Service Object to query the Analytics Reporting API V4.
    return analytics.reports().batchGet(
        body={
            'reportRequests': [
                {
                    'viewId': view_id,
                    # 'pageSize': 5,
                    'startIndex': 5,
                    'maxResults': 15,
                    'dimensions': [{'name': 'ga:sessionDurationBucket'}, {'name': 'ga:eventCategory'},
                                   {'name': 'ga:eventLabel'}, {'name': 'ga:country'}, {'name': 'ga:deviceCategory'}, {'name': 'ga:browser'}],
                    'dateRanges': [{'startDate': 'yesterday', 'endDate': 'yesterday'}],
                    'metrics': [{'expression': 'ga:totalEvents'}],
                    'dimensionFilterClauses': [{"filters": [{"dimensionName": "ga:eventCategory", "operator": "EXACT", "expressions": [value]}]}]

                }]
        }
    ).execute()

响应

<HttpError 400 when requesting https://analyticsreporting.googleapis.com/v4/reports:batchGet?alt=json returned "Invalid JSON payload received. Unknown name "start_index" at 'report_requests[0]': Cannot find field.
Invalid JSON payload received. Unknown name "max_results" at 'report_requests[0]': Cannot find field.">

1 个答案:

答案 0 :(得分:2)

  

'startIndex':5,
     'maxResults':15,

属于Core Reporting API V3的两个参数是否属于您应该使用的Reporting API V4

  

pageToken string用于获取结果下一页的延续令牌。将此添加到请求将返回pageToken之后的行。 pageToken应该是对reports.batchGet请求的响应中的nextPageToken参数中返回的值。

     

pageSize number页面大小用于分页,并指定最大返回行数。页面大小应为&gt; = 0.查询返回默认值1,000行。无论您要求多少,Analytics Core Reporting API每个请求最多返回10,000行。如果没有您期望的维度段,它也可以返回比请求的行少的行。例如,ga:country的可能值少于300,因此,当仅按国家/地区进行细分时,即使将pageSize设置为更高的值,也不能超过300行。

<强>更新

要实现分页,您应该检查从服务器获取的response是否包含nextPageToken,如果有更多结果。

  

nextPageToken string页面标记,用于检索列表中的下一页结果。

要获得下一组结果,您应该接受原始请求,并将其中的pageToken替换为您从响应中收到的nextPageToken。如果您要发送多个报告,请确保尝试将nextPageToken与批处理中的正确报告进行匹配。

注意:此时无法在批处理中标记报告我有一个功能请求,并由团队添加。