Python で Google アナリティクスにクエリを実行すると、30 日間のアクティブ ユーザーに関するデータを取得できません。私のコードは以下です。私の問題は、日付または日をディメンションとして指定する必要があることです。「この指標を照会するには、ga:nthDay、ga:date、または ga:day の少なくとも 1 つをディメンションとして指定する必要があります。」これに適切な構文が何であるかはわかりません。
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 日間のアクティブ ユーザーを含む、ある日付の一連の指標を求めています。このままでは、「選択したディメンションと指標を一緒にクエリすることはできません」というエラーが表示されます。これはおそらく、ディメンションの 1 つとして ga:date または ga:day を指定していないためです。これをいくつかの方法で試してみましたが、構文がオフになっている必要があります。
では、データを取得している日付で終了する 30 日間のユーザー数を取得するには、ディメンションとして ga:day をどのように指定すればよいでしょうか? 上記のコードで ga:30dayUsers のリクエストを単純に削除すると、正常に機能することに注意してください。