为了账号安全,请及时绑定邮箱和手机立即绑定

将 pageToken 与 Google Analytics Reporting API v4

将 pageToken 与 Google Analytics Reporting API v4

慕娘9325324 2021-10-19 16:49:50
我遵循了有关如何使用 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()
查看完整描述

2 回答

?
慕桂英4014372

TA贡献1871条经验 获得超13个赞

我是这样解决的


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 rows


def main():    

    analytics = initialize_analyticsreporting()


    global dfanalytics

    dfanalytics = []


    rows = []

    rows = handle_report(analytics,'0',rows)


    dfanalytics = pd.DataFrame(list(rows))


查看完整回答
反对 回复 2021-10-19
  • 2 回答
  • 0 关注
  • 282 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信