用途
该技能面向需要通过 BigQuery 查询 Google Analytics 4(GA4)导出数据(events_* 表)并回答业务问题的场景。用户可提出查询需求(如会话数、落地页、渠道、电商、漏斗等),技能将引导完成从环境确认到结果呈现的全流程。若无参数,则询问用户想了解什么以及日期范围。
主要能力
- 确认可用的 BigQuery MCP 服务器:支持官方插件(bigquery-data-analytics,基于 MCP Toolbox,使用应用默认凭据)或远程 BigQuery MCP 服务器(OAuth)。提供工具如 execute_sql、list_dataset_ids、get_table_info。
- 定位导出数据集:GA4 数据集命名为 analytics_<property_id>,通过 list_dataset_ids 和 list_table_ids 找到 events_ 分片范围及是否存在 events_intraday_ 表。始终使用完全限定名。
- 编写符合成本规则的 SQL:必须按 _TABLE_SUFFIX 过滤日期分片、只选择命名列、尽早过滤 event_name、使用标量子查询提取参数、注意 int_value/string_value 的正确读取。
- 试运行与执行:先 dry_run 获取处理字节数并估算按需成本(bytes / 2^40 x US$6.25,需确认当前定价)。约 10GB 以下直接运行;超过或用户设限则展示估算并询问。可先在 1-2 天数据上 LIMIT 100 探索。
- 结果展示:先给答案,再给紧凑表格,最后附上 SQL 代码块便于复跑;注明日期范围、时区假设及排除项(如 intraday 数据、未同意流量)。
- 会话化方法:会话键为 user_pseudo_id + ga_session_id(需字符串拼接);会话计数用 COUNT(DISTINCT session_key);互动会话、落地页、会话来源/媒介的定义与提取方式;区分 traffic_source(用户首次获取)与会话归因。
- 时间与表处理:event_date 为属性时区,event_timestamp 为 UTC 微秒;events_* 也会匹配 events_intraday_*,但数字 BETWEEN 可排除;每日分片约 72 小时内可能重写,最近三天数据标记为临时。
- 解释 UI 与 BigQuery 差异:UI 使用 HyperLogLog++ 估算、阈值化、同意模式建模等,导出仅含观察到的已同意事件且精确计数;大差异通常源于时区、intraday/每日混合或用户定义不同。
- 访问与排错:认证问题、配额项目警告、403 权限错误、TABLES 读取限制、列名无法识别等场景的处理建议。
使用方式
用户提供查询需求或问题,技能按步骤执行:确认 MCP 工具可用 → 定位数据集与分片范围 → 编写 SQL → dry run 并估算成本 → 执行查询 → 展示结果与 SQL。若缺少 BigQuery 工具,则引导用户查看插件 README 的“BigQuery querying”部分并停止。
适用场景
适用于需要基于 GA4 原始事件数据进行自定义分析、编写或运行 SQL、核对指标口径、排查数据差异等任务。
限制
需要已配置 BigQuery MCP 服务器并具备相应权限(如 roles/bigquery.jobUser、roles/bigquery.dataViewer,远程服务器还需 roles/mcp.toolUser)。远程服务器无 dry-run 参数,有 3 分钟超时和 3000 行上限;插件默认返回 50 行,可通过环境变量调整。查询作业在服务器默认项目运行并计费,可能与导出所在项目不同。intraday 表不含新会话流量来源数据。最近三天数据可能不完整。具体定价需用户自行确认。