如何从Google Analytics Reporting API v4 Python获取前50个会话

如何从Google Analytics Reporting API v4 Python获取前50个会话,python,python-3.x,google-analytics,google-analytics-api,Python,Python 3.x,Google Analytics,Google Analytics Api,我有一个Python中的analytics reporting api v4脚本,它返回给我特定登录页的会话以及会话来自哪个城市 是否有办法将此限制为会话的每个登录页上的前50个城市位置,这样我就不会返回正在登录的城市位置,例如有1个会话 以下是分析请求的基本代码: api_client = google_build(serviceName=api_name, version=api_version, http=authorized) for i in developments: sample

我有一个Python中的analytics reporting api v4脚本,它返回给我特定登录页的会话以及会话来自哪个城市

是否有办法将此限制为会话的每个登录页上的前50个城市位置,这样我就不会返回正在登录的城市位置,例如有1个会话

以下是分析请求的基本代码:

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'}],
      'orderBys':
        [
            {'fieldName': 'ga:pagePath', 'sortOrder': 'ASCENDING'},
            {'fieldName': 'ga:sessions', 'sortOrder': 'DESCENDING'}
        ],
      'dimensions': [{'name': 'ga:pagePath'},{'name': 'ga:city'},{'name': 'ga:latitude'},{'name': 'ga:longitude'}],
      'dimensionFilterClauses' : [
        {

编辑-要获得特定登录页的top
x
城市,通过单个查询是不可行的,您必须使用内容分组功能或处理更广泛的响应才能实现这一点

原始响应- 添加到代码中可能不完整,请查看仅添加的metricFilterClauses部分

通过使用分页和PageSize限制获得的行数,可以获得前50个结果。在应用分页之前,请确保使用
排序
进行排序

您必须使用
batchGet请求
执行此操作-


您可以使用筛选出所需的特定度量。您可以使用来根据要使用的条件进行筛选。

是否尝试添加筛选器?我已经考虑过了,但不完全确定我将如何为我的处境做这件事。嗨,这里,这与我所希望的有所不同。这显示了该市举办了50多场会议。但是我正在尝试导出为登录页提供会话的前50个城市。编辑了PageSize的答案,您可以通过排序将行数限制为50,以获得它。编辑的问题是,它只会输出50个结果,但我希望每个登录页都有前50个会话。不幸的是,这种编辑将其限制在前50个会话中,仅在第一个登录页停止。我认为这在单个查询中是不可行的,可以通过内容分组或运行多个查询或处理总响应来实现。
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