Skills ga4-analytics
Google Analytics 4, Search Console, and Indexing API toolkit. Analyze website traffic, page performance, user demographics, real-time visitors, search queries, and SEO metrics. Use when the user asks to: check site traffic, analyze page views, see traffic sources, view user demographics, get real-time visitor data, check search console queries, analyze SEO performance, request URL re-indexing, inspect index status, compare date ranges, check bounce rates, view conversion data, or get e-commerce revenue. Requires a Google Cloud service account with GA4 and Search Console access.
git clone https://github.com/openclaw/skills
T=$(mktemp -d) && git clone --depth=1 https://github.com/openclaw/skills "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/adamkristopher/ga4-analytics" ~/.claude/skills/openclaw-skills-ga4-analytics && rm -rf "$T"
T=$(mktemp -d) && git clone --depth=1 https://github.com/openclaw/skills "$T" && mkdir -p ~/.openclaw/skills && cp -r "$T/skills/adamkristopher/ga4-analytics" ~/.openclaw/skills/openclaw-skills-ga4-analytics && rm -rf "$T"
skills/adamkristopher/ga4-analytics/SKILL.mdGA4 Analytics Toolkit
Setup
Install dependencies:
cd scripts && npm install
Configure credentials by creating a
.env file in the project root:
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
Prerequisites: A Google Cloud project with the Analytics Data API, Search Console API, and Indexing API enabled. A service account with access to your GA4 property and Search Console.
Quick Start
| User says | Function to call |
|---|---|
| "Show me site traffic for the last 30 days" | |
| "What are my top search queries?" | |
| "Who's on the site right now?" | |
| "Reindex these URLs" | |
| "Compare this month vs last month" | |
| "What pages get the most traffic?" | |
Execute functions by importing from
scripts/src/index.ts:
import { siteOverview, searchConsoleOverview } from './scripts/src/index.js'; const overview = await siteOverview('30d');
Or run directly with tsx:
npx tsx scripts/src/index.ts
Workflow Pattern
Every analysis follows three phases:
1. Analyze
Run API functions. Each call hits the Google APIs and returns structured data.
2. Auto-Save
All results automatically save as timestamped JSON files to
results/{category}/. File naming pattern: YYYYMMDD_HHMMSS__operation__extra_info.json
3. Summarize
After analysis, read the saved JSON files and create a markdown summary in
results/summaries/ with data tables, trends, and recommendations.
High-Level Functions
GA4 Analytics
| Function | Purpose | What it gathers |
|---|---|---|
| Comprehensive site snapshot | Page views, traffic sources, demographics, events |
| Traffic deep-dive | Sources, sessions by source/medium, new vs returning |
| Top pages analysis | Page views, landing pages, exit pages |
| Engagement patterns | Demographics, events, daily engagement metrics |
| Period comparison | Side-by-side metrics for two date ranges |
| Real-time data | Active users, current pages, current events |
Search Console
| Function | Purpose | What it gathers |
|---|---|---|
| SEO snapshot | Top queries, pages, device, country breakdown |
| Keyword deep-dive | Queries with device breakdown |
| Page SEO metrics | Top pages by clicks, country breakdown |
Indexing
| Function | Purpose |
|---|---|
| Request re-indexing for multiple URLs |
| Check if URLs are indexed |
Utility
| Function | Purpose |
|---|---|
| List all available GA4 dimensions and metrics |
Individual API Functions
For granular control, import specific functions from the API modules. See references/api-reference.md for the complete list of 30+ API functions with parameters, types, and examples.
Date Ranges
All functions accept flexible date range formats:
| Format | Example | Description |
|---|---|---|
| Shorthand | , , | Days ago to today |
| Explicit | | Specific dates |
| GA4 relative | | GA4 relative format |
Default is
"30d" (configurable via GA4_DEFAULT_DATE_RANGE in .env).
Results Storage
Results auto-save to
results/ with this structure:
results/ ├── reports/ # GA4 standard reports ├── realtime/ # Real-time snapshots ├── searchconsole/ # Search Console data ├── indexing/ # Indexing API results └── summaries/ # Human-readable markdown summaries
Managing Results
import { listResults, loadResult, getLatestResult } from './scripts/src/index.js'; // List recent results const files = listResults('reports', 10); // Load a specific result const data = loadResult(files[0]); // Get most recent result for an operation const latest = getLatestResult('reports', 'site_overview');
Common Dimensions and Metrics
Dimensions
pagePath, pageTitle, sessionSource, sessionMedium, country, deviceCategory, browser, date, eventName, landingPage, newVsReturning
Metrics
screenPageViews, activeUsers, sessions, newUsers, bounceRate, averageSessionDuration, engagementRate, conversions, totalRevenue, eventCount
Tips
- Specify date ranges — "last 7 days" or "last 90 days" gives different insights than the default 30 days
- Request summaries — After pulling data, ask for a markdown summary with tables and insights
- Compare periods — Use
to spot trends (this month vs last month)compareDateRanges() - Check real-time data —
shows who's on the site right nowliveSnapshot() - Combine GA4 + Search Console — Traffic data plus search query data gives the full picture