将 pageToken 与 Google Analytics Reporting API v4

我遵循了有关如何使用 GA Reporting API 使用 Python 从 Google Analytics 下载数据的教程。我能够查询我想要的数据,尽管达到了行数限制。我在文档中看到有一个 pageToken 可以避免这个问题。我已将此字段添加到我的请求中(如文档中所述),但我无法使其工作。


sample_request = {

      'viewId': '12345678',

      'dateRanges': {

          'startDate': datetime.strftime(datetime.now() - timedelta(days = 30),'%Y-%m-%d'),

          'endDate': datetime.strftime(datetime.now(),'%Y-%m-%d')

      },

      'dimensions': [

          {'name': 'ga:date'},

          {'name': 'ga:dimension7'},

          {'name': 'ga:dimension6'},

          {'name': 'ga:dimension9'}

      ],

      'metrics': [

          {'expression': 'ga:users'},

          {'expression': 'ga:totalevents'}

      ],

      "pageSize": 100000,

      'pageToken': 'abc'

    }


response = api_client.reports().batchGet(

      body={

        'reportRequests': sample_request

      }).execute()


慕娘9325324
浏览 295回答 2
2回答

慕桂英4014372

我是这样解决的def handle_report(analytics,pagetoken,rows):      response = get_report(analytics, pagetoken)    columnHeader = response.get("reports")[0].get('columnHeader', {})    dimensionHeaders = columnHeader.get('dimensions', [])    metricHeaders = columnHeader.get('metricHeader', {}).get('metricHeaderEntries', [])    pagetoken = response.get("reports")[0].get('nextPageToken', None)    rowsNew = response.get("reports")[0].get('data', {}).get('rows', [])    rows = rows + rowsNew    print("len(rows): " + str(len(rows)))    if pagetoken != None:        return handle_report(analytics,pagetoken,rows)    else:        return rowsdef main():        analytics = initialize_analyticsreporting()    global dfanalytics    dfanalytics = []    rows = []    rows = handle_report(analytics,'0',rows)    dfanalytics = pd.DataFrame(list(rows))
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python