google-analytics
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChineseQuery Google Analytics 4 via . The user's OAuth bearer token is in
(scope ); every call needs
. Two APIs: the Admin API
() to discover properties, and the Data
API () to run reports.
curl + jq$GOOGLE_ANALYTICS_TOKENanalytics.readonlyAuthorization: Bearer $GOOGLE_ANALYTICS_TOKENanalyticsadmin.googleapis.com/v1betaanalyticsdata.googleapis.com/v1betaFailures are — show verbatim. =
re-install.
{"error":{"code","message","status"}}401bash
AUTH="Authorization: Bearer $GOOGLE_ANALYTICS_TOKEN"通过查询Google Analytics 4。用户的OAuth承载令牌存储在中(权限范围为);每次调用都需要携带。涉及两个API:用于发现属性的Admin API(),以及用于生成报告的Data API()。
curl + jq$GOOGLE_ANALYTICS_TOKENanalytics.readonlyAuthorization: Bearer $GOOGLE_ANALYTICS_TOKENanalyticsadmin.googleapis.com/v1betaanalyticsdata.googleapis.com/v1beta失败信息格式为 — 需原样展示。错误表示需要重新安装。
{"error":{"code","message","status"}}401bash
AUTH="Authorization: Bearer $GOOGLE_ANALYTICS_TOKEN"List the GA4 properties the user can access (via their account summaries)
列出用户可访问的GA4属性(通过账户摘要)
curl -sS -H "$AUTH" "https://analyticsadmin.googleapis.com/v1beta/accountSummaries"
| jq '.accountSummaries[]?.propertySummaries[]? | {property, displayName}'
| jq '.accountSummaries[]?.propertySummaries[]? | {property, displayName}'
`property` looks like `properties/123456789` — the number is the `PROPERTY_ID`.curl -sS -H "$AUTH" "https://analyticsadmin.googleapis.com/v1beta/accountSummaries"
| jq '.accountSummaries[]?.propertySummaries[]? | {property, displayName}'
| jq '.accountSummaries[]?.propertySummaries[]? | {property, displayName}'
`property`的格式类似`properties/123456789` — 其中的数字即为`PROPERTY_ID`。Run a report
生成报告
bash
PID="123456789"
curl -sS -X POST -H "$AUTH" -H "Content-Type: application/json" -d '{
"dateRanges":[{"startDate":"28daysAgo","endDate":"today"}],
"dimensions":[{"name":"pagePath"}],
"metrics":[{"name":"screenPageViews"},{"name":"activeUsers"}],
"orderBys":[{"metric":{"metricName":"screenPageViews"},"desc":true}],
"limit":10
}' "https://analyticsdata.googleapis.com/v1beta/properties/$PID:runReport" \
| jq '.rows[] | {page: .dimensionValues[0].value, views: .metricValues[0].value, users: .metricValues[1].value}'Swap dimensions/metrics for other reports: +
(acquisition), + (geo), +
/ (events). Dates accept , ,
, or .
sessionDefaultChannelGroupsessionscountryactiveUserseventNameeventCountconversionsNdaysAgotodayyesterdayYYYY-MM-DDbash
PID="123456789"
curl -sS -X POST -H "$AUTH" -H "Content-Type: application/json" -d '{
"dateRanges":[{"startDate":"28daysAgo","endDate":"today"}],
"dimensions":[{"name":"pagePath"}],
"metrics":[{"name":"screenPageViews"},{"name":"activeUsers"}],
"orderBys":[{"metric":{"metricName":"screenPageViews"},"desc":true}],
"limit":10
}' "https://analyticsdata.googleapis.com/v1beta/properties/$PID:runReport" \
| jq '.rows[] | {page: .dimensionValues[0].value, views: .metricValues[0].value, users: .metricValues[1].value}'可替换维度/指标以生成其他报告: + (获客分析)、 + (地域分析)、 + / (事件分析)。日期参数支持、、或格式。
sessionDefaultChannelGroupsessionscountryactiveUserseventNameeventCountconversionsNdaysAgotodayyesterdayYYYY-MM-DDRealtime
实时报告
bash
curl -sS -X POST -H "$AUTH" -H "Content-Type: application/json" \
-d '{"dimensions":[{"name":"country"}],"metrics":[{"name":"activeUsers"}]}' \
"https://analyticsdata.googleapis.com/v1beta/properties/$PID:runRealtimeReport" | jq '.rows'bash
curl -sS -X POST -H "$AUTH" -H "Content-Type: application/json" \
-d '{"dimensions":[{"name":"country"}],"metrics":[{"name":"activeUsers"}]}' \
"https://analyticsdata.googleapis.com/v1beta/properties/$PID:runRealtimeReport" | jq '.rows'Gotchas
注意事项
- This is GA4 only (Data API v1). Old Universal Analytics (UA) is shut down —
don't use the legacy endpoints.
analytics/v3 - Valid dimension/metric API names matter (, not "Pageviews"). If a name 400s, it's the wrong API id — check the GA4 dimensions & metrics list.
screenPageViews - Reports are capped by (default 10k rows); page with
limit.offset
- 此方法仅适用于GA4(Data API v1)。旧版Universal Analytics(UA)已停用 — 请勿使用遗留的端点。
analytics/v3 - 维度/指标的API名称必须有效(例如,而非“Pageviews”)。如果调用返回400错误,说明使用了错误的API标识 — 请查阅GA4维度与指标列表。
screenPageViews - 报告结果受参数限制(默认10000行);可通过
limit参数实现分页。offset