Search Console、GA4、Google Ads 数据都导进 BigQuery 之后,VPS 上的 AI Agent 需要一把机器身份才能访问数据。这篇记录完整流程:确认 BigQuery API、创建 Service Account、分配最小权限、生成 JSON Key,并用 Python 验证查询链路。

为什么需要单独创建 Agent Service Account?
把 Google Search Console 数据导出到 BigQuery、GA4 数据导出到 BigQuery、Google Ads 数据导出到 BigQuery 之后,搜索、流量、广告三类数据都落在了同一个数据仓库里。接下来要做的事是让 AI Agent 自己读取这些数据,按周自动生成分析报告。
但这里有一个卡点:VPS 上运行的 Python 脚本、AI Agent、自动化程序,不能直接使用你的 Google 登录账号访问 BigQuery。登录账号走的是浏览器 OAuth 流程,需要人工点同意,脚本里没法自动化。正确做法是为 Agent 单独创建一个 Service Account(服务账号),它是给机器用的身份,配一把 JSON Key 就能长期免登录访问 BigQuery。
数据流向:三个数据源到 AI Agent
Google Search Console
搜索数据
GA4
流量数据
Google Ads
广告数据
BigQuery 数据仓库
searchconsole / analytics / google_ads 数据集
AI Agent
VPS 上的脚本和自动化
→
Service Account
机器身份 + JSON Key
→
BigQuery API
查询与分析
→
自动读取 / 分析数据
按周生成报告
如果还没有一台 VPS 来跑这些脚本,可以先用 Hostinger 之类的服务商开一台,一年几十美元就能满足轻量数据任务的算力。
第一步:确认 BigQuery API 已开启
打开 Google Cloud Console,在顶部确认当前项目是 yourwebsite-dataset。进入 APIs & Services,点击 Enabled APIs & Services,搜索 BigQuery API,确认状态是 Enabled。
如果之前没有开启,进入 APIs & Services 的 Library,搜索 BigQuery API,点击 Enable 即可。
第二步:创建 Agent 专用 Service Account
进入 Google Cloud Console 的 IAM & Admin,选择 Service Accounts。注意这里选的是 Service Accounts,不是 IAM。IAM 是给已有账号授权,Service Accounts 才是创建机器账号的地方。
点击 Create Service Account,在 Service Account Details 里填写名称。例如 Service Account Name 填 seo-analytics-agent-yourwebsite,系统会自动生成对应的邮箱 seo-analytics-agent-yourwebsite@yourwebsite-dataset.iam.gserviceaccount.com。Description 可以填 SEO analytics AI Agent access to BigQuery data,方便以后同时管理多个网站的数据账号。填完点击 Create and Continue。
第三步:给 Agent Service Account 分配权限
创建后会进入 Grant This Service Account Access to Project 页面,这一步决定 Agent 能对 BigQuery 做什么。按下面的表添加角色,前两个必选,后两个按需。
| Role | 作用 | 必选 |
|---|---|---|
| BigQuery Job User | 允许 Agent 执行 SQL 查询、创建 Query Job | 是 |
| BigQuery Data Viewer | 允许读取 GA4、Search Console、Google Ads 的表和视图 | 是 |
| BigQuery Data Editor | 允许创建分析表、更新导出表、保存分析结果 | 可选 |
| Storage Object Admin | 允许通过 EXPORT DATA 把结果写入 Google Cloud Storage | 可选 |
以查询广告数据为例,Agent 拿到 BigQuery Job User 和 BigQuery Data Viewer 之后,就能执行 SELECT * FROM google_ads_yourwebsite.campaign 这类查询。如果 Agent 需要自动生成 seo_weekly_report_table 之类的分析表,就要补 BigQuery Data Editor。如果还要把结果导出到 GCS 存档,再加 Storage Object Admin。配完点击 Done。
第四步:Principals With Access 保持留空
创建 Service Account 时页面下方有 Principals With Access (Optional) 这一项,不需要填写。它的作用是允许其他用户 impersonate(模拟)这个服务账号,比如让 [email protected] 借用 seo-agent-service-account 的身份去调用 API。
你的场景是 VPS 上的 Cron 任务持有 JSON Key 直接使用服务账号,没有其他人需要代理它,保持 Empty 即可。
第五步:创建 JSON Key
Service Account 创建完成后,回到 IAM & Admin,进入 Service Accounts,点开 seo-analytics-agent-yourwebsite,选择 Keys 标签页,点击 Add Key,选择 Create New Key,格式选 JSON,然后点击 Create。浏览器会下载一个 seo-analytics-agent-yourwebsite-xxxx.json 文件,这个文件就是 Agent 的身份凭证。
第六步:保护 JSON Key
这个 JSON 文件的敏感程度相当于 API Secret 或 SSH Private Key,泄露等于把 BigQuery 的读取权限交出去,必须妥善保管。下面几条是红线:
- 不要上传到 GitHub,也不要提交进任何代码仓库
- 不要发给别人
- 不要放在公开服务器或公开目录
推荐的做法是放在服务器上的独立目录,例如 /opt/seo-agent/credentials/,然后把权限收紧到只有当前用户能读写:
chmod 600 seo-analytics-agent-yourwebsite.json如果项目用 Git 管理,把凭证路径和 JSON 文件加进 .gitignore,防止误提交:
*.json
credentials/第七步:用 Service Account 测试调用 BigQuery
凭证就绪后,先在服务器上安装官方客户端库,再跑一段测试脚本,确认整条链路是通的:
pip install google-cloud-bigqueryfrom google.cloud import bigquery
client = bigquery.Client.from_service_account_json(
"/opt/seo-agent/credentials/seo-analytics-agent-yourwebsite.json"
)
query = """
SELECT *
FROM `yourwebsite-dataset.google_ads_yourwebsite.campaign`
LIMIT 10
"""
result = client.query(query)
for row in result:
print(row)如果脚本能输出数据,说明 VPS 到 Service Account 到 BigQuery API 再到 Dataset 的整条链路已经打通,Agent 后续的查询、分析、建表都可以基于这个身份执行。
第八步:确认最终数据自动化架构
到这里,整个数据自动化链路就完整了。四类身份各司其职:三个数据源分别把自己的数据写进 BigQuery,AI Agent 通过 seo-analytics-agent-yourwebsite 读取和分析:
yourwebsite-dataset
├── searchconsole_yourwebsite
│ ↑ search-console-data-export
├── analytics_xxxxxxxx
│ ↑ GA4 Export
├── google_ads_yourwebsite
│ ↑ google-ads-transfer-yourwebsite
└── AI Agent
↑ seo-analytics-agent-yourwebsite
↑ VPS Cron
↑ Python / LLMService Account 职责划分总结
| Service Account | 用途 |
|---|---|
| [email protected] | Google Search Console 写入 BigQuery |
| google-ads-transfer-yourwebsite | Google Ads Transfer 写入 BigQuery |
| seo-analytics-agent-yourwebsite | AI Agent 查询和分析 BigQuery |
把写入和读取分开,每个 Service Account 只保留自己需要的最小权限。以后加新的 Agent、新的数据源,按同样的方式新建账号和分配角色,不会互相影响。
完整流程回顾
创建 Service Account 全流程:八步
确认 API
确认项目已开启 BigQuery API。
创建服务账号
新建 Service Account 并命名。
分配角色
Job User 加 Data Viewer,按需补 Editor。
保持留空
Principals With Access 不填。
生成 Key
创建 JSON 格式的身份凭证。
保护凭证
chmod 600 并加入 .gitignore。
测试调用
Python 脚本验证查询链路。
确认架构
四类身份各司其职,交给 Agent。
相关阅读
每周四送达。
主机评测、建站对比、性能优化技巧和插件推荐 — 每周为 WordPress 站长和建站者精选。
