如何使用gaapi4py库为Google Analytics请求正确添加过滤器
gaapi4py 过滤器配置方案
gaapi4py的filter参数支持字符串简写、结构化字典两种传参方式,需要使用PARTIAL/IN_LIST这类明确指定操作符的场景时,直接使用结构化字典传参即可,不需要拼接过滤字符串。
1. PARTIAL操作符匹配路径片段
PARTIAL为包含匹配规则,只要维度值中包含指定的字符串片段就会被命中,匹配ga:pagePath包含/name/id/片段的配置示例如下:
from gaapi4py import GAClient KEY_FILE_LOCATION = r'C:/.../key.json' c = GAClient(json_keyfile=KEY_FILE_LOCATION) request = c.get_all_data({ 'view_id': 'id', 'start_date': '2022-07-05', 'end_date': '2022-07-05', 'dimensions': {'ga:date'}, 'metrics': {'ga:sessions'}, 'filter': { 'dimensionName': 'ga:pagePath', 'operator': 'PARTIAL', 'expressions': ['/name/id/'] } })
注意:PARTIAL匹配默认大小写敏感,如果需要忽略大小写可以加caseSensitive: False配置
2. IN_LIST操作符匹配事件分类
IN_LIST用于批量匹配维度值属于指定列表内任意值的场景,不需要拼接多个OR条件,针对ga:eventCategory维度的配置示例如下:
request = c.get_all_data({ 'view_id': 'id', 'start_date': '2022-07-05', 'end_date': '2022-07-05', 'dimensions': {'ga:date', 'ga:eventCategory'}, 'metrics': {'ga:sessions', 'ga:totalEvents'}, 'filter': { 'dimensionName': 'ga:eventCategory', 'operator': 'IN_LIST', 'expressions': ['button_click', 'form_submit', 'page_exposure'] # 替换为实际需要匹配的事件分类值 } })
多条件过滤补充
如果需要同时配置多个过滤规则,可以通过逻辑组嵌套实现:
- 多条件同时满足:filter传
{'and': [规则1, 规则2, 规则3]} - 多条件满足任意一个:filter传
{'or': [规则1, 规则2, 规则3]}
内容的提问来源于stack exchange,提问作者Alex
相关产品推荐
相关产品推荐

