Использование pageToken с Google Analytics Reporting API v4 и Python - PullRequest
0 голосов
/ 24 января 2019

Я ознакомился с руководством по загрузке данных из Google Analytics с помощью Python с использованием API отчетов GA. Мне удалось запросить данные, которые я хотел, хотя и достиг предела строк. Я видел в документации, что есть страница взята, чтобы избежать проблемы. Я добавил это поле в свой запрос (как описано в документации), но не могу заставить его работать.

sample_request = {
      'viewId': '18149780',
      '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()

1 Ответ

0 голосов
/ 24 января 2019

Вы достигнете предела, но параметр nextPageToken позволит вам пролистывать несколько строк. Например:

def processReport (self, aDimensions):
    """Get a full report, returning the rows"""

    # Get the first set
    oReport   = self.getReport(aDimensions)
    oResponse = self.getResponse(oReport, True)
    aRows     = oResponse.get('rows')

    # Add any additional sets
    while oResponse.get('nextPageToken') != None:
        oResponse = self.getReport(aDimensions, oResponse.get('nextPageToken'))
        oResponse = self.getResponse(oResponse, False)
        aRows.extend(oResponse.get('rows'))

    return aRows

Вы можете увидеть полную программу здесь: https://github.com/aiqui/ga-download

...