┌──────────────────────────────────────────────────────────────┐ │ Google Cloud Project: sga-analytics-ingest │ │ │ │ ├─ Enabled APIs │ │ │ ├─ analyticsdata.googleapis.com (GA4 data) │ │ │ ├─ analyticsadmin.googleapis.com (GA4 admin) │ │ │ ├─ searchconsole.googleapis.com (GSC) │ │ │ ├─ businessprofileperformance.googleapis.com (GBP) │ │ │ ├─ mybusinessbusinessinformation.googleapis.com (GBP) │ │ │ └─ tagmanager.googleapis.com (GTM) │ │ │ │ │ └─ Service Account │ │ sga-analytics-reader@sga-analytics-ingest.iam.… │ │ ↓ Amy grants this ONE email access to each property │ │ │ │ Access grants (20 practices × 4 platforms = 80 grants): │ │ ├─ GA4: admin.google.com/analytics → property → Access │ │ ├─ GSC: search.google.com/search-console → property → Users│ │ ├─ GBP: business.google.com → location → Users │ │ └─ GTM: tagmanager.google.com → container → Admin → Users │ │ │ │ Data pulls (Dakota's monthly extractors): │ │ ├─ GA4 sessions ─────→ data/output/ga4-sessions-YYYY-MM.csv │ │ ├─ GSC queries ─────→ data/output/gsc-YYYY-MM.csv │ │ ├─ GBP metrics ─────→ data/output/gbp-perf-YYYY-MM.csv │ │ └─ GTM containers ──→ (deployment only — no data pull) │ └──────────────────────────────────────────────────────────────┘
| Platform | API endpoint | What you get | Auth |
|---|---|---|---|
| GA4 | analyticsdata.googleapis.comanalyticsadmin.googleapis.com |
Sessions, users, events, engagement time, conversions, custom dimensions. Property-level Viewer role required. | Service account · Instant |
| GSC | searchconsole.googleapis.com |
Impressions, clicks, CTR, average position by query, page, country, device. Site-verified property required. | Service account · Instant |
| GBP | businessprofileperformance.googleapis.commybusinessbusinessinformation.googleapis.com |
Profile views, search views, calls, direction requests, website clicks, message counts. Also profile CRUD + reviews read. | Service account · Restricted access (2–6 wk approval) |
| GTM | tagmanager.googleapis.com |
Read/write of containers, tags, triggers, variables. NOT a data source — used to deploy standardized tracking across sites. | Service account · Instant |
amcneill@gen4dental.com or a shared admin address).
sga-analytics-ingestgen4dental.com (or the SGA workspace domain if separate)sga-analytics-ingest-461823) — you'll need it for API callssga-analytics-readersga-analytics-reader@sga-analytics-ingest-461823.iam.gserviceaccount.com~/.config/sga/gcp-sga-analytics-reader.json (chmod 600)GCP_SA_KEY_JSON (paste the entire JSON contents)sga-analytics-reader@sga-analytics-ingest-461823.iam.gserviceaccount.comsga-analytics-reader@sga-analytics-ingest-461823.iam.gserviceaccount.comsga-analytics-reader@sga-analytics-ingest-461823.iam.gserviceaccount.comsga-analytics-reader@sga-analytics-ingest-461823.iam.gserviceaccount.comP4 · Dakota — the existing "Build GA4 Data API monthly extract" task (due Aug 26) consumes Phase 1 + Phase 3 of this guideP4 · Amy — the existing "Request GA4 access for 11 Focus-20 properties" task (due Aug 22) IS Phase 2 for GA4