google-analytics
Query Google Analytics 4 (GA4) reports via the Analytics Data API v1 and list properties via the Admin API. Use when the user mentions Google Analytics, GA4, website traffic / sessions / users, top pages or sources, conversions, or a realtime report.
How do I install this agent skill?
npx skills add https://github.com/acedatacloud/skills --skill google-analyticsIs this agent skill safe to install?
- Gen Agent Trust Hubpass
This skill is a standard and secure integration for Google Analytics 4. it uses official Google APIs to retrieve analytics data and follows best practices for authentication by using environment variables.
- Socketpass
No alerts
- Snykpass
Risk: LOW · No issues
What does this agent skill do?
Query Google Analytics 4 via curl + jq. The user's OAuth bearer token is in
$GOOGLE_ANALYTICS_TOKEN (scope analytics.readonly); every call needs
Authorization: Bearer $GOOGLE_ANALYTICS_TOKEN. Two APIs: the Admin API
(analyticsadmin.googleapis.com/v1beta) to discover properties, and the Data
API (analyticsdata.googleapis.com/v1beta) to run reports.
Failures are {"error":{"code","message","status"}} — show verbatim. 401 =
re-install.
AUTH="Authorization: Bearer $GOOGLE_ANALYTICS_TOKEN"
# List the GA4 properties the user can access (via their account summaries)
curl -sS -H "$AUTH" "https://analyticsadmin.googleapis.com/v1beta/accountSummaries" \
| jq '.accountSummaries[]?.propertySummaries[]? | {property, displayName}'
property looks like properties/123456789 — the number is the PROPERTY_ID.
Run a report
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: sessionDefaultChannelGroup +
sessions (acquisition), country + activeUsers (geo), eventName +
eventCount / conversions (events). Dates accept NdaysAgo, today,
yesterday, or YYYY-MM-DD.
Realtime
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
analytics/v3endpoints. - Valid dimension/metric API names matter (
screenPageViews, not "Pageviews"). If a name 400s, it's the wrong API id — check the GA4 dimensions & metrics list. - Reports are capped by
limit(default 10k rows); page withoffset.
How can the creator link this skill?
Add the canonical catalog link to the repository README so users can inspect current installs and available audits. The publishing guide covers the complete discovery path.
<a href="https://skillzs.dev/skills/acedatacloud/skills/google-analytics">View google-analytics on skillZs</a>