我在Python中有一个分析报告api v4脚本,该脚本向我返回了某些登陆页面的会话以及会话来自哪个城市。
是否有一种方法可以将其限制为每个登陆页面仅能访问会话的前50个城市,这样我就不会得到正在登陆的城市(例如有1个会话)的返回信息。
以下是分析请求的基本代码:
[v0][v1][v2][v3]concat=n=4:unsafe=1
答案 0 :(得分:0)
编辑-要通过单个查询获取特定着陆页的x
个热门城市不可行,您将不得不使用内容分组功能或处理更广泛的响应以实现这个。
原始回复- 添加到您的代码中可能并不完整,请仅添加添加的metricFilterClauses部分
通过使用分页和使用PageSize来限制获得的行数,您可以获得前50个结果。只需在应用分页之前使用ordering
进行排序即可。
您将必须使用batchGet request
来执行此操作-link to official guide of batchquest
api_client = google_build(serviceName=api_name, version=api_version,
http=authorized)
for i in developments:
sample_request = {
'viewId': '6690350',
'pageSize': 100000,
'dateRanges': {
'startDate': datetime.strftime(datetime.now() - timedelta(days = 30),'%Y-%m-%d'),
'endDate': datetime.strftime(datetime.now(),'%Y-%m-%d')
},
'metrics': [{'expression': 'ga:sessions'}],
#add this metric filter to filter out with session more than 50
'metricFilterClauses': [{
"filters": [{
"metricName": "ga:sessions",
"operator": "GREATER_THAN",
"comparisonValue": "50"
}]
}]
'orderBys':
[
{'fieldName': 'ga:pagePath', 'sortOrder': 'ASCENDING'},
{'fieldName': 'ga:sessions', 'sortOrder': 'DESCENDING'}
],
'dimensions': [{'name': 'ga:pagePath'},{'name': 'ga:city'},{'name': 'ga:latitude'},{'name': 'ga:longitude'}]
#top 50 results
'pageSize': 50
您可以使用MetricFilterClauses过滤出所需的特定指标。您可以使用different operators available根据要使用的条件进行过滤。