无creds.json文件时,如何在Google Colab中认证GA4 API并拉取数据?
可以通过Colab的现有认证方式拉取Google Analytics数据
完全可以用你熟悉的auth.authenticate_user()认证流程来访问Google Analytics数据,不需要单独创建API密钥或凭据,只要你的账号有对应GA资源的读取权限就行,具体分两种场景:
针对GA4(当前主流版本)
GA4使用Google Analytics Data API v1,操作步骤如下:
- 先安装对应的客户端库:
!pip install google-analytics-data - 复用Colab认证初始化客户端并拉取数据:
from google.colab import auth auth.authenticate_user() from google.analytics.data_v1beta import BetaAnalyticsDataClient from google.analytics.data_v1beta.types import RunReportRequest import pandas as pd # 初始化客户端,自动复用Colab的认证会话 client = BetaAnalyticsDataClient() # 替换为你的GA4资源ID、目标日期范围、维度指标 request = RunReportRequest( property=f"properties/123456789", date_ranges=[{"start_date": "2024-01-01", "end_date": "2024-01-31"}], dimensions=[{"name": "city"}], metrics=[{"name": "activeUsers"}] ) # 执行请求并转换为DataFrame response = client.run_report(request) rows = [] for row in response.rows: rows.append({ "city": row.dimension_values[0].value, "activeUsers": int(row.metric_values[0].value) }) df = pd.DataFrame(rows) print(df)
针对旧版Universal Analytics(UA)的Reporting API v4
如果是访问UA数据,安装google-api-python-client库即可:
from google.colab import auth auth.authenticate_user() from googleapiclient.discovery import build import pandas as pd # 初始化UA报表API客户端 service = build('analyticsreporting', 'v4') # 构造UA报表请求(替换为你的UA视图ID等参数) response = service.reports().batchGet( body={ 'reportRequests': [ { 'viewId': '987654321', 'dateRanges': [{'startDate': '2024-01-01', 'endDate': '2024-01-31'}], 'metrics': [{'expression': 'ga:users'}], 'dimensions': [{'name': 'ga:city'}] }] } ).execute() # 将响应转换为DataFrame rows = [] for report in response.get('reports', []): column_header = report.get('columnHeader', {}) dimension_headers = column_header.get('dimensions', []) metric_headers = column_header.get('metricHeader', {}).get('metricHeaderEntries', []) for row in report.get('data', {}).get('rows', []): dimensions = row.get('dimensions', []) metrics = row.get('metrics', [])[0].get('values', []) row_data = {} for header, dim in zip(dimension_headers, dimensions): row_data[header] = dim for header, val in zip(metric_headers, metrics): row_data[header['name']] = int(val) rows.append(row_data) df = pd.DataFrame(rows) print(df)
关键注意事项
- 无需额外创建API密钥/凭据,Colab的
auth.authenticate_user()会自动使用你登录账号的权限,只要该账号能访问目标GA资源即可。 - GA4的资源ID和UA的视图ID需要从各自的GA后台获取。
内容的提问来源于stack exchange,提问作者Công Lý
相关产品推荐
相关产品推荐

