通过Analytics Data API直接查询GA4数据。适用于获取热门页面、流量来源、会话及用户等网站分析数据。
Google Analytics 4是一项面向实际任务的技能,主要用于Query GA4 属性直接通过 Google Analytics Data API(分析数据.googleapis.com)...;Setup(一次性). 创建Google Cloud项目(或使用已有项目).;
从功能定位来看,该技能强调把分散的操作要求整理成清晰、可复用的处理流程,使用户能够围绕既定目标快速准备输入、选择执行方式并获得结构化结果。实际使用前应先确认任务范围、数据来源、运行环境、必要权限和关键参数,再依据技能说明逐步执行;若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。
执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;涉及批量任务时,还应保存进度,避免中断后重复操作。该技能适合用于一次性任务,也可以接入自动化工作流,与其他技能或上层代理配合完成更完整的业务链路;在组合使用时,应明确每一步的输入输出关系,并避免不同步骤之间出现参数冲突。
直接通过 Google Analytics Data API(analyticsdata.googleapis.com)查询 GA4 属性。
访问 https://console.cloud.google.com,创建或选择一个项目。
进入 API 和服务 > 凭据 > OAuth 同意屏幕 > 受众,设置:
此举可跳过 Google 的应用验证流程(该流程对 Analytics 等敏感权限范围要求提供演示视频)。对于个人或团队用途,“内部”类型已足够。注意:此设置要求使用 Google Workspace 账户(而非个人 @gmail.com 账户)。
若必须使用“外部”类型(例如你仅有个人 Gmail 账户),请将发布状态设为“已上线”,并在 数据访问 / 权限范围 中添加 analytics.readonly 权限范围。
进入 OAuth 同意屏幕 > 数据访问(或“权限范围”),添加以下权限范围:
https://www.googleapis.com/auth/analytics.readonly
Google 将其列为“敏感权限范围”。若你的应用类型为“内部”,则无需验证。
访问:https://console.cloud.google.com/apis/library/analyticsdata.googleapis.com
点击 启用。
进入 API 和服务 > 凭据 > 创建凭据 > OAuth 客户端 ID
保存生成的 客户端 ID 和 客户端密钥。
访问 https://analytics.google.com > 管理(齿轮图标)> 属性设置。Property ID 即顶部显示的数字值。
在本地机器上运行以下命令(需浏览器完成 Google 登录流程):
pip install google-auth-oauthlib
python3 -c "from google_auth_oauthlib.flow import InstalledAppFlow; flow = InstalledAppFlow.from_client_config({'installed': {'client_id': 'YOUR_CLIENT_ID', 'client_secret': 'YOUR_CLIENT_SECRET', 'auth_uri': 'https://accounts.google.com/o/oauth2/auth', 'token_uri': 'https://oauth2.googleapis.com/token'}}, scopes=['https://www.googleapis.com/auth/analytics.readonly']); creds = flow.run_local_server(port=0); print('REFRESH TOKEN:', creds.refresh_token)"
将 YOUR_CLIENT_ID 和 YOUR_CLIENT_SECRET 替换为你自己的值。系统将自动打开浏览器窗口供你使用 Google 账户登录。从终端输出中复制刷新令牌(refresh token)。
GA4_PROPERTY_ID=123456789 GOOGLE_CLIENT_ID=your-client-id GOOGLE_CLIENT_SECRET=your-client-secret GOOGLE_REFRESH_TOKEN=your-refresh-token
analytics.readonly 权限范围。请前往“数据访问 / 权限范围”中添加该范围,并重新生成刷新令牌。python3 /mnt/skills/user/google-analytics/scripts/ga4_query.py --metrics screenPageViews --dimension pagePath --limit 20
python3 /mnt/skills/user/google-analytics/scripts/ga4_query.py --metrics screenPageViews,sessions,totalUsers --dimension pagePath --limit 20
python3 /mnt/skills/user/google-analytics/scripts/ga4_query.py --metrics sessions --dimension sessionSource --limit 20
python3 /mnt/skills/user/google-analytics/scripts/ga4_query.py --metrics sessions,totalUsers,conversions --dimensions sessionSource,sessionMedium --limit 20
python3 /mnt/skills/user/google-analytics/scripts/ga4_query.py --metrics sessions,bounceRate --dimension landingPage --limit 30
python3 /mnt/skills/user/google-analytics/scripts/ga4_query.py --metrics screenPageViews,sessions --dimension pagePath --start 2026-01-01 --end 2026-01-31 --limit 20
python3 /mnt/skills/user/google-analytics/scripts/ga4_query.py --metrics screenPageViews,sessions --dimension pagePath --filter "pagePath=~/blog/" --limit 20
python3 /mnt/skills/user/google-analytics/scripts/ga4_query.py --metrics conversions,sessions --dimensions sessionCampaignName,sessionSource --limit 20
python3 /mnt/skills/user/google-analytics/scripts/ga4_query.py --metrics sessions,totalUsers --dimension deviceCategory --limit 10
python3 /mnt/skills/user/google-analytics/scripts/ga4_query.py --metrics sessions,totalUsers --dimension country --limit 20
screenPageViews、sessions、totalUsers、newUsers、activeUsers、bounceRate、averageSessionDuration、conversions、eventCount、engagementRate、userEngagementDuration
pagePath、pageTitle、landingPage、sessionSource、sessionMedium、sessionCampaignName、country、city、deviceCategory、browser、date、week、month
结果以格式化表格形式输出至标准输出(stdout)。如需原始 JSON 格式,请通过管道传递给 | python3 -m json.tool。