Google Analytics Reporting API v4:nextPagetoken不能超过10000行(Python)

Google Analytics Reporting API v4:nextPagetoken不能超过10000行(Python),python,google-analytics,google-analytics-api,Python,Google Analytics,Google Analytics Api,我是Google analytics API的新手,我正在尝试使用Python查询超过10000行的数据。我请求中的每一行都是一个客户端id。在做了一些研究之后,我知道我必须指定pageToken和pagesize参数来实现这个目标。下面的函数显示了我的基本查询结构 def get_报告(分析,pageToken=None): 样本_请求={ “视图ID”:“1111111”, “页面大小”:2000, “pageToken”:pageToken, “日期范围”:{ 'startDate':da

我是Google analytics API的新手,我正在尝试使用Python查询超过10000行的数据。我请求中的每一行都是一个客户端id。在做了一些研究之后,我知道我必须指定pageToken和pagesize参数来实现这个目标。下面的函数显示了我的基本查询结构

def get_报告(分析,pageToken=None):
样本_请求={
“视图ID”:“1111111”,
“页面大小”:2000,
“pageToken”:pageToken,
“日期范围”:{
'startDate':datetime.strftime(datetime.now()-timedelta(days=30),“%Y-%m-%d”),
“endDate”:datetime.strftime(datetime.now(),“%Y-%m-%d”)
},
'dimensions':[{'name':'ga:clientid'}],
#'metrics':[{'expression':'ga:sessions'},{'expression':'ga:avgSessionDuration'}]
'metrics':[{'expression':'ga:sessions'},
{'expression':'ga:avgSessionDuration'},
{'expression':'ga:bounceRate'},
{'expression':'ga:goalConversionRateAll'},
{'expression':'ga:pageviews'}
],
'orderBys':[{“fieldName”:“ga:sessions”,“sortOrder”:“DESCENDING”}],
#{“fieldName”:“ga:pageviews”,“sortOrder”:“DESCENDING”}],
}
return analytics.reports().batchGet(
身体={
“reportRequests”:示例请求,
}
).execute()
我使用本文中出现的类似想法实现了分页功能 . 基本上,我每次查询2000行,并将这些行转换为dataframe。虽然我可以从以前的请求中接收pageToken,但我会继续基于pageToken请求额外的2000行,并将它们附加到现有的数据帧中。这是我的分页代码

#分页
def main():
全球结果
#初始请求
分析=初始化\u分析报告()
响应=获取报告(分析)
pageToken=响应['reports'][0]。获取('nextPageToken')
response_data=response.get('reports',[])[0]
#将报告转换为数据帧
结果=pd.数据帧(prase_响应(响应数据)[0])
而pageToken!=无:#更多可用数据
打印(pageToken)
打印(“仍在运行”)
分析=初始化\u分析报告()
响应=获取报告(分析,str(int(pageToken)+1))
pageToken=response['reports'][0]。获取('nextPageToken')#更新pageToken
response_data=response.get('reports',[])[0]
#temp是要添加的新数据帧
温度=局部放电数据帧(实际响应(响应数据)[0])
结果=局部放电浓度([结果,温度],轴=0)
如果uuuu name uuuuuu='\uuuuuuu main\uuuuuuu':
main()
此程序按预期工作,但当pageToken达到“10000”时将停止;也就是说,在这种情况下,主函数可以将5个数据帧连接在一起,每个数据帧有2000行。我应该有超过60000行可用。我知道每个请求最多可以请求10000行,但我也知道我们可以使用pageToken参数绕过这个限制。我不确定我的代码哪一部分出错了。如果我将pageSize设置为10000,那么主函数将只创建一个包含10000行的数据帧并停止

那么,我如何获取所有60000行数据,以及为什么分页功能失败。还是不可能请求超过10000个客户端ID?非常感谢您的帮助!谢谢大家!


更新(2020年5月15日):我对其他维度使用了分页功能,例如“ga:pagePath”,它工作得非常好。因此,我想仅仅查询10000行以上的客户机id是不可能的。如果我错了,请纠正我。

我认为这是权限或配置问题。我有两个不同的账户,其中一个账户我收回了所有东西,而另一个账户只有10000。回报率较低的账户最糟糕的是360账户。

我也有同样的问题。恐怕它与python库无关。我在这个页面上尝试了api资源管理器,但也遇到了同样的问题。我想我将使用BigQuery作为解决方法。它与clientid维度的限制有关。如果您用另一个维度更改clientid维度,我很确定它将按预期工作。是的,我检查了相同的维度。您可能需要报告此错误。