名称: ga4-analytics
描述: "Google Analytics 4、Search Console 和 Indexing API 工具包。用于分析网站流量、页面表现、用户画像、实时访客、搜索查询和 SEO 指标。适用于用户要求:检查网站流量、分析页面浏览量、查看流量来源、查看用户画像、获取实时访客数据、检查 Search Console 查询、分析 SEO 表现、请求 URL 重新索引、检查索引状态、比较日期范围、检查跳出率、查看转化数据或获取电商收入。需要一个拥有 GA4 和 Search Console 访问权限的 Google Cloud 服务账号。"
安装依赖:
cd scripts && npm install
在项目根目录创建 .env 文件以配置凭据:
GA4_PROPERTY_ID=123456789
GA4_CLIENT_EMAIL=service-account@project.iam.gserviceaccount.com
GA4_PRIVATE_KEY="-----BEGIN PRIVATE KEY-----\n...\n-----END PRIVATE KEY-----\n"
SEARCH_CONSOLE_SITE_URL=https://your-domain.com
GA4_DEFAULT_DATE_RANGE=30d
前提条件:一个已启用 Analytics Data API、Search Console API 和 Indexing API 的 Google Cloud 项目。一个拥有 GA4 属性和 Search Console 访问权限的服务账号。
| 用户指令 | 调用函数 |
|---|---|
| "显示过去 30 天的网站流量" | siteOverview("30d") |
| "我的热门搜索查询是什么?" | searchConsoleOverview("30d") |
| "现在谁在网站上?" | liveSnapshot() |
| "重新索引这些 URL" | reindexUrls(["https://example.com/page1", ...]) |
| "比较本月与上月" | compareDateRanges({startDate: "30daysAgo", endDate: "today"}, {startDate: "60daysAgo", endDate: "31daysAgo"}) |
| "哪些页面流量最高?" | contentPerformance("30d") |
通过从 scripts/src/index.ts 导入来执行函数:
import { siteOverview, searchConsoleOverview } from './scripts/src/index.js';
const overview = await siteOverview('30d');
或直接使用 tsx 运行:
npx tsx scripts/src/index.ts
每次分析都遵循三个阶段:
运行 API 函数。每次调用都会访问 Google API 并返回结构化数据。
所有结果都会自动保存为带时间戳的 JSON 文件到 results/{category}/。文件命名模式:YYYYMMDD_HHMMSS__operation__extra_info.json
分析完成后,读取保存的 JSON 文件并在 results/summaries/ 中创建 Markdown 总结,包含数据表格、趋势和建议。
| 函数 | 用途 | 收集内容 |
|---|---|---|
siteOverview(dateRange?) |
全面的网站快照 | 页面浏览量、流量来源、用户画像、事件 |
trafficAnalysis(dateRange?) |
流量深度分析 | 来源、按来源/媒介划分的会话、新访客与回访客 |
contentPerformance(dateRange?) |
热门页面分析 | 页面浏览量、着陆页、退出页 |
userBehavior(dateRange?) |
用户参与度模式 | 用户画像、事件、每日参与度指标 |
compareDateRanges(range1, range2) |
周期对比 | 两个日期范围的并排指标对比 |
liveSnapshot() |
实时数据 | 活跃用户、当前页面、当前事件 |
| 函数 | 用途 | 收集内容 |
|---|---|---|
searchConsoleOverview(dateRange?) |
SEO 快照 | 热门查询、页面、设备、国家/地区细分 |
keywordAnalysis(dateRange?) |
关键词深度分析 | 带设备细分的查询 |
seoPagePerformance(dateRange?) |
页面 SEO 指标 | 按点击量排名的热门页面、国家/地区细分 |
| 函数 | 用途 |
|---|---|
reindexUrls(urls) |
为多个 URL 请求重新索引 |
checkIndexStatus(urls) |
检查 URL 是否已被索引 |
| 函数 | 用途 |
|---|---|
getAvailableFields() |
列出所有可用的 GA4 维度和指标 |
如需更精细的控制,可从 API 模块导入特定函数。完整列表(30 多个 API 函数,包含参数、类型和示例)请参阅 references/api-reference.md。
所有函数都接受灵活的日期范围格式:
| 格式 | 示例 | 描述 |
|---|---|---|
| 简写 | "7d", "30d", "90d" |
从 N 天前到今天 |
| 明确指定 | {startDate: "2024-01-01", endDate: "2024-01-31"} |
特定日期 |
| GA4 相对格式 | {startDate: "30daysAgo", endDate: "today"} |
GA4 相对格式 |
默认值为 "30d"(可通过 .env 中的 GA4_DEFAULT_DATE_RANGE 配置)。
结果自动保存到 results/,结构如下:
results/
├── reports/ # GA4 标准报告
├── realtime/ # 实时快照
├── searchconsole/ # Search Console 数据
├── indexing/ # Indexing API 结果
└── summaries/ # 人类可读的 Markdown 总结
import { listResults, loadResult, getLatestResult } from './scripts/src/index.js';
// 列出最近的结果
const files = listResults('reports', 10);
// 加载特定结果
const data = loadResult(files[0]);
// 获取某个操作的最新结果
const latest = getLatestResult('reports', 'site_overview');
pagePath, pageTitle, sessionSource, sessionMedium, country, deviceCategory, browser, date, eventName, landingPage, newVsReturning
screenPageViews, activeUsers, sessions, newUsers, bounceRate, averageSessionDuration, engagementRate, conversions, totalRevenue, eventCount
compareDateRanges() 来发现趋势(例如本月 vs 上月)。liveSnapshot() 显示当前网站上的访客情况。