Agent skill · data analytics · jeremylongshore
ga4-bigquery-export
Wire GA4 → BigQuery for unsampled, queryable event-level data. Covers the one-time export setup, the events_YYYYMMDD table schema, partitioning + clustering, and the SQL patterns for the reports the Data API can't do well (true cohort retention, custom-event attribution, large date ranges). Trigger with "GA4 BigQuery", "GA4 to BQ", "event-level GA4 data", "unsampled GA4", "GA4 export setup", "GA4 SQL".
Why this skill is useful
Provides specific SQL patterns and event table schema for querying GA4 data in BigQuery that the AI wouldn't reliably generate on its own.
What it needs
Requires bq, gcloud installed locally. Requires google-cloud account access. About 6k tokens when loaded. Last updated 2026-08-07. 2,604 stars on the source repository.
What this skill does
GA4 → BigQuery Export Overview The Data API is good but bounded — sampled past a threshold, capped at ~150 dimensions, no cohort joins. BigQuery export gives you the raw event stream as SQL-queryable tables, free at the standard GA4 tier (up to 1M events/day), with no sampling and full event payloads. This skill: one-time setup, then the SQL recipes for what the Data API can't do well. Prerequisites A GA4 property for which you can create a BigQuery link. A Google Cloud project with BigQuery enabled and permission to grant project IAM roles. The bq and gcloud CLIs authenticated to that project; use the service account created by ga4-auth-setup for unattended queries. Instructions Setup — one time 1. Link your GA4 property to a GCP project In <https://analytics.google.com/>: 1. Admin → Property column → BigQuery Links 2. Create a link → pick your GCP project 3. Data location: pick the BQ region for the export tables (US multi-region is fine for most cases; EU if you need data residency) 4. Export type: Daily — single eventsYYYYMMDD table per day, written ~24h after midnight. Fine for most reporting. Streaming — eventsintradayYYYYMMDD table written ~near-real-time. Costs more, useful for hot ops dashboards. Most setups: enable both. Streaming for "today", daily for everything else. 5. Include advertising identifiers — uncheck unless you specifically need device-graph data (most don't) 6. Save The first daily table lands within 24h. The first streaming table is near-immediate. After that you have a new eventsYYYYMMDD every day forever, no maintenance needed. 2. Verify the export is working If you see no dataset, the link is configured but the first export hasn't fired yet — wait 24h. 3. Authorize a service account for querying The SA from ga4-auth-setup only has Data API access. For BQ queries, grant the same SA: dataViewer reads tables; jobUser lets the SA run queries (queries are jobs in BQ's model). …
How to use it
Reference it in AdaL, Claude Code, Cursor or any coding agent — nothing to install:
@skills jeremylongshore/ga4-bigquery-export