查询针对30天活跃用户的Google AnalyticsAPI

时间:2017-11-07 01:54:37

标签: python api google-analytics active-users

我在使用python查询Google Analytics时,无法获取30天活跃用户的数据。我的代码如下。我的问题是我需要指定日期或日期作为维度。 "必须将ga:nthDay,ga:date或ga:day中的至少一个指定为查询此指标的维度。"我只是不确定这个的正确语法是什么。

from oauth2client.service_account import ServiceAccountCredentials
from apiclient.discovery import build
import httplib2

#create service credentials
#this is where you'll need your json key
#replace "keys/key.json" with the path to your own json key
key_file_location = 'maypath'
credentials = 
ServiceAccountCredentials.from_json_keyfile_name(key_file_location, 

['https://www.googleapis.com/auth/analytics.readonly'])


# create a service object you'll later on to create reports
http = credentials.authorize(httplib2.Http())
service = build('analytics', 'v4', http=http, 
            discoveryServiceUrl=
('https://analyticsreporting.googleapis.com/$discovery/rest'))

response = service.reports().batchGet(
body={
    'reportRequests': [
        {
            'viewId': 'ga:thisismyid',
            'dateRanges': [{'startDate': '2017-10-01', 'endDate': '2017-10-01'}],
            'metrics': [{'expression': 'ga:sessions'}, 
                        {'expression': 'ga:bounceRate'},
                        {'expression': 'ga:avgSessionDuration'},
                        {'expression': 'ga:users'},
                        {'expression': 'ga:newUsers'},
                        {'expression': 'ga:sessionsPerUser'},
                        {'expression': 'ga:30dayUsers'}],
            'dimensions': [{"name": "ga:pagePath"}, 
                           {"name": "ga:city"}],
            'orderBys': [{"fieldName": "ga:sessions", "sortOrder": "DESCENDING"}],  
            'pageSize': 10
        }]
}
).execute()

因此,在这个例子中,我要求在一个日期上提供一系列指标,包括30天的活跃用户。我一直看到这个错误:"无法一起查询选定的维度和指标,"这可能是因为我没有指定ga:date或ga:day作为我的维度之一。我已尝试过两种方式,但我的语法必须关闭。

那么我如何指定ga:day作为一个维度,以便在我为数据提取的日期结束30天用户的数量?请注意,如果我只是在上面的代码中删除ga:30dayUsers的请求,它可以正常工作。

1 个答案:

答案 0 :(得分:0)

这是一个简单的批处理案例,我引用了GA API V4 Dimensions&Metrics



body={
        'reportRequests': [
        {
          'viewId': VIEW_ID,
          'dateRanges': [{'startDate': '2018-01-11',
                        'endDate': '2018-01-18'}],
          'metrics': [{'expression': 'ga:28dayUsers'}],
          # 'metrics': [{'expression': 'ga:sessions'}]
          'dimensions': [{'name': 'ga:date'}]
        }]
  }