"HelloAnalytics" 是一个用于与 Google Analytics API 进行交互的 Python 脚本示例。以下是一个基本的 "HelloAnalytics" 脚本的步骤和代码示例,用于获取并打印网站的访问数据。
client_secret.json
)。pip install --upgrade google-api-python-client google-auth-httplib2 google-auth-oauthlib
以下是一个简单的 "HelloAnalytics" 脚本示例:
import os
from google.oauth2.credentials import Credentials
from google_auth_oauthlib.flow import InstalledAppFlow
from google.auth.transport.requests import Request
from googleapiclient.discovery import build
# 如果你修改了这些范围,请删除token.json文件。
SCOPES = ['https://www.googleapis.com/auth/analytics.readonly']
def main():
"""Shows basic usage of the Analytics Reporting API.
Prints the number of sessions for the last 7 days for a specified channel.
"""
creds = None
# 文件token.json存储了用户的访问和刷新令牌,它是自动创建的
# 当授权流程第一次完成时。
if os.path.exists('token.json'):
creds = Credentials.from_authorized_user_file('token.json', SCOPES)
# 如果没有可用的(有效的)凭据,则让用户登录。
if not creds or not creds.valid:
if creds and creds.expired and creds.refresh_token:
creds.refresh(Request())
else:
flow = InstalledAppFlow.from_client_secrets_file(
'client_secret.json', SCOPES)
creds = flow.run_local_server(port=0)
# 保存授权令牌以供将来使用
with open('token.json', 'w') as token:
token.write(creds.to_json())
# 构建Analytics服务对象
service = build('analyticsreporting', 'v4', credentials=creds)
# 调用Analytics Reporting API V4.
response = service.reports().batchGet(
body={
'reportRequests': [
{
'viewId': 'YOUR_VIEW_ID', # 替换为你的视图ID
'dateRanges': [{'startDate': '7daysAgo', 'endDate': 'today'}],
'metrics': [{'expression': 'ga:sessions'}],
'dimensions': [{'name': 'ga:channelGrouping'}]
}]
}
).execute()
# 打印响应。
print('报告:')
for report in response.get('reports', []):
columnHeader = report.get('columnHeader', {})
dimensionHeaders = columnHeader.get('dimensions', [])
metricHeaders = columnHeader.get('metricHeader', {}).get('metricHeaderEntries', [])
for row in report.get('data', {}).get('rows', []):
dimensions = row.get('dimensions', [])
dateRangeValues = row.get('metrics', [])
for header, dimension in zip(dimensionHeaders, dimensions):
print(header + ': ' + dimension)
for i, values in enumerate(dateRangeValues):
print('Date range (' + str(i) + ')')
for metricHeader, value in zip(metricHeaders, values.get('values')):
print(metricHeader.get('name') + ': ' + value)
if __name__ == '__main__':
main()
YOUR_VIEW_ID
替换为你的 Google Analytics 视图 ID。python hello_analytics.py
client_secret.json
和 token.json
文件位于脚本运行的同一目录中。token.json
文件并重新运行脚本以重新授权。这个脚本是一个基础的起点,你可以根据需要扩展它来获取更详细的分析数据或进行更复杂的操作。
领取专属 10元无门槛券
手把手带您无忧上云