如何在Python中使用Google Analytics 4 API设置多维度筛选器
GA4 Data API Python客户端多维度筛选实现方法
要实现country为United States且region为New York的多维度筛选,核心是用and_group组合多个FilterExpression,每个筛选条件都要单独包装成FilterExpression对象,具体代码如下:
完整实现代码
from google.analytics.data_v1beta import Filter, FilterExpression, FilterExpressionList from google.analytics.data_v1beta.services.analytics_data import AnalyticsDataClient from google.analytics.data_v1beta.types import RunReportRequest, Dimension, Metric # 初始化客户端 client = AnalyticsDataClient() PROPERTY_ID = "你的GA4属性ID" # 构建第一个筛选条件:country为United States country_filter_expr = FilterExpression( filter=Filter( field_name="country", string_filter=Filter.StringFilter( match_type=Filter.StringFilter.MatchType.EXACT, value="United States" ) ) ) # 构建第二个筛选条件:region为New York region_filter_expr = FilterExpression( filter=Filter( field_name="region", string_filter=Filter.StringFilter( match_type=Filter.StringFilter.MatchType.EXACT, value="New York" ) ) ) # 组合两个筛选条件(逻辑AND) combined_filter = FilterExpression( and_group=FilterExpressionList( expressions=[country_filter_expr, region_filter_expr] ) ) # 构建报表请求 request = RunReportRequest( property=f"properties/{PROPERTY_ID}", dimensions=[Dimension(name="country"), Dimension(name="region")], metrics=[Metric(name="activeUsers")], dimension_filter=combined_filter ) # 执行请求并获取结果 response = client.run_report(request)
关键注意事项
- 每个维度筛选条件必须单独封装为
FilterExpression,不能直接把Filter对象放进expressions列表(这就是你第三种尝试出错的原因) dimension_filter参数只能接收单个FilterExpression对象,不能传列表(对应你第二种尝试的错误)- 单个
FilterExpression的filter参数只能接收单个Filter对象,不能传列表(对应你第一种尝试的错误)
内容的提问来源于stack exchange,提问作者Stevoisiak
相关产品推荐
相关产品推荐

