-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathtest.py
More file actions
37 lines (28 loc) · 1.29 KB
/
test.py
File metadata and controls
37 lines (28 loc) · 1.29 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
import os
import json
from google.analytics.data_v1beta import BetaAnalyticsDataClient
from google.analytics.data_v1beta.types import RunReportRequest, Dimension, Metric, DateRange,OrderBy
def main():
domain = "glygen"
config_obj = json.load(open("conf/config.%s.json" % (domain)))
os.environ['GOOGLE_APPLICATION_CREDENTIALS'] = "conf/credentials.%s.json" % (domain)
client = BetaAnalyticsDataClient()
dim_list = [Dimension(name="hostname")]
met_list = [Metric(name="screenPageViews"), Metric(name="engagedSessions"),Metric(name="totalUsers")]
ordr_list = [OrderBy(metric={"metric_name": "screenPageViews"}, desc=True)]
date_list = [DateRange(start_date="2025-12-01", end_date="today")]
request = RunReportRequest(
property= "properties/" + config_obj["property_id"],dimensions=dim_list,
metrics=met_list,order_bys=ordr_list,date_ranges=date_list
)
response = client.run_report(request)
for row in response.rows:
hostname = row.dimension_values[0].value
pageviews = int(row.metric_values[0].value)
sessions = int(row.metric_values[1].value)
users = int(row.metric_values[2].value)
newrow = [hostname, pageviews, sessions, users]
print (newrow)
return
if __name__ == "__main__":
main()