You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.18 19:37:08