我使用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.">
答案 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与批处理中的正确报告进行匹配。
注意:此时无法在批处理中标记报告我有一个功能请求,并由团队添加。