我在使用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的请求,它可以正常工作。
答案 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'}]
}]
}