GA4单属性数据采集10000行受限问题及page token设置咨询
GA4 数据采集行数限制与分页解决方案
为什么会有10000行数据限制?
GA4 RunReport API 设定了单次请求的最大返回行数为10000,这是官方为控制API服务负载、保障整体稳定性而设置的默认上限,并非可修改的参数。当查询的日期范围过大或维度组合导致结果行数超过10000时,就需要通过分页来获取完整数据。
可行解决方案:分页拉取数据
通过API的page_token和page_size参数实现分批拉取:
page_size:设置单次请求返回的行数,最大值为10000(和默认上限一致)page_token:每次请求后,API会返回next_page_token,将该值传入下一次请求的page_token参数,即可获取下一页数据,直到next_page_token为空时,说明所有数据已拉取完成。
配置page token的代码示例
修改你的代码,添加分页循环逻辑:
client = BetaAnalyticsDataClient() # 初始化请求参数 request = RunReportRequest( property=f"properties/{property_id}", dimensions=[Dimension(name=dim) for dim in dimensions], metrics=[Metric(name=m) for m in metrics], date_ranges=[DateRange(start_date=str(start_date), end_date=str(end_date))], page_size=10000 # 设置单页最大行数,可选,默认就是10000 ) output = {} headers = None rows = [] while True: response = client.run_report(request) # 首次请求获取表头 if not headers: headers = [header.name for header in response.dimension_headers] + [ header.name for header in response.metric_headers ] # 追加当前页数据 for row in response.rows: rows.append( [dimension_value.value for dimension_value in row.dimension_values] + [metric_value.value for metric_value in row.metric_values] ) # 检查是否有下一页 if not response.next_page_token: break # 更新请求的page_token,准备下一次请求 request.page_token = response.next_page_token output["headers"] = headers output["rows"] = rows analytics_df = pd.DataFrame(columns=output["headers"], data=output["rows"])
内容的提问来源于stack exchange,提问作者Julio
相关产品推荐
相关产品推荐

