GA4 Analytics
VerifiedGoogle 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.
$ Add to .claude/skills/ About This Skill
# GA4 Analytics Toolkit
Setup
Install dependencies:
```bash cd scripts && npm install ```
Configure credentials by creating a `.env` file in the project root:
``` GA4_PROPERTY_ID=123456789 [email protected] 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" | `siteOverview("30d")` | | "What are my top search queries?" | `searchConsoleOverview("30d")` | | "Who's on the site right now?" | `liveSnapshot()` | | "Reindex these URLs" | `reindexUrls(["https://example.com/page1", ...])` | | "Compare this month vs last month" | `compareDateRanges({startDate: "30daysAgo", endDate: "today"}, {startDate: "60daysAgo", endDate: "31daysAgo"})` | | "What pages get the most traffic?" | `contentPerformance("30d")` |
Execute functions by importing from `scripts/src/index.ts`:
```typescript import { siteOverview, searchConsoleOverview } from './scripts/src/index.js';
const overview = await siteOverview('30d'); ```
Or run directly with tsx:
```bash 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 | |----------|---------|----------------| | `siteOverview(dateRange?)` | Comprehensive site snapshot | Page views, traffic sources, demographics, events | | `trafficAnalysis(dateRange?)` | Traffic deep-dive | Sources, sessions by source/medium, new vs returning | | `contentPerformance(dateRange?)` | Top pages analysis | Page views, landing pages, exit pages | | `userBehavior(dateRange?)` | Engagement patterns | Demographics, events, daily engagement metrics | | `compareDateRanges(range1, range2)` | Period comparison | Side-by-side metrics for two date ranges | | `liveSnapshot()` | Real-time data | Active users, current pages, current events |
Search Console
| Function | Purpose | What it gathers | |----------|---------|----------------| | `searchConsoleOverview(dateRange?)` | SEO snapshot | Top queries, pages, device, country breakdown | | `keywordAnalysis(dateRange?)` | Keyword deep-dive | Queries with device breakdown | | `seoPagePerformance(dateRange?)` | Page SEO metrics | Top pages by clicks, country breakdown |
Indexing
| Function | Purpose | |----------|---------| | `reindexUrls(urls)` | Request re-indexing for multiple URLs | | `checkIndexStatus(urls)` | Check if URLs are indexed |
Utility
| Function | Purpose | |----------|---------| | `getAvailableFields()` | 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 | `"7d"`, `"30d"`, `"90d"` | Days ago to today | | Explicit | `{startDate: "2024-01-01", endDate: "2024-01-31"}` | Specific dates | | GA4 relative | `{startDate: "30daysAgo", endDate: "today"}` | 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
```typescript 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 `compareDateRanges()` to spot trends (this month vs last month)
- Check real-time data — `liveSnapshot()` shows who's on the site right now
- Combine GA4 + Search Console — Traffic data plus search query data gives the full picture
Use Cases
- Query Google Analytics 4 data for website and app performance analysis
- Build GA4 reports with custom dimensions, metrics, and date ranges
- Analyze user journeys across events and conversion paths in GA4
- Monitor key GA4 metrics and set up alerts for significant changes
- Export GA4 data for integration with external analytics and BI tools
Pros & Cons
Pros
- +Native GA4 support for the current Google Analytics platform
- +Custom reporting with flexible dimensions and metrics
- +Event-based data model aligns with modern analytics approaches
Cons
- -GA4 API complexity requires understanding of its data model and query syntax
- -Only available on claude-code and openclaw platforms
- -Requires GA4 API access credentials and appropriate property permissions
FAQ
What does GA4 Analytics do?
What platforms support GA4 Analytics?
What are the use cases for GA4 Analytics?
100+ free AI tools
Writing, PDF, image, and developer tools — all in your browser.
Next Step
Use the skill detail page to evaluate fit and install steps. For a direct browser workflow, move into a focused tool route instead of staying in broader support surfaces.