GA Collection Pipeline Guide
A diagnostic screen that shows, per property, exactly which stage of Register → Collect (raw) → AI aggregate → Display is stuck.
📋 Overview
GA4 metrics go through 4 stages before they appear in GA Analytics Report.
| Stage | Meaning | Stored in |
|---|---|---|
| Catalog (register) | Property registered in GA Property Management | tGaProperty |
| Collect (raw) | Raw metrics fetched from the GA4 Data API by the collector | tKVS(kType='ga') |
| AI aggregate | Raw metrics processed into an AI report | tGaAiReport |
| Display | The result shown on screen | /en/gareport |
If a property is only registered but no collector is running, it stalls at the catalog stage and nothing shows up. This page tells you which stage is empty.
🚦 States
| State | Meaning |
|---|---|
| Healthy | Both collection and AI aggregation are working |
| AI pending | Raw data collected, but AI aggregation hasn't run yet |
| Not collecting | Raw collection itself isn't happening (the most common issue) |
| Inactive | Property is disabled (not collected) |
▶️ "Start collection" button
Rows in Not collecting state show a [Start collection] button. Clicking it triggers a one-time immediate GA4 collection for that property (independent of the recurring schedule).
Possible results after clicking:
| Message | Cause | Fix |
|---|---|---|
| Collection started | Success | Refresh shortly and check that the "Collect (raw)" timestamp is filled |
| No GA collector is registered for this organization yet | No GA collection schedule (CQE) has ever been registered to run under this organization (csn) — this is a missing setup, not a bug | Follow "🔗 Linking a GA collector server" below (admin, one-time) |
| You don't have permission to collect this GA property | The property belongs to another organization, or your account isn't a member of it | Switch to the correct organization (csn) and retry |
🔗 Linking a GA collector server (admin)
"No GA collector is registered" means no server (lssn) is wired up to run this organization's GA collection on a schedule. This is separate infrastructure work from registering a property on the page, and requires its own procedure.
Why the web UI alone isn't enough
The CQE (scheduled script) registration screen (/en/cqeRepoPut) limits the script body to 4,000 characters, but the GA collector script body is much longer (~7,800 chars for Linux, ~9,700 for Windows). So the script itself can only be registered via CLI. Linking it to a server (schedule assignment) can also be done via the web UI.
Step 1 — Register the collector script + link a server (one-time, CLI)
Use giipdb/mgmt/register-ga-cqe.ps1. It does both of the following in one run:
- Registers the script body into the CQE repository (
CQERepoPut) → issues anmssn - Assigns that script to run daily on the given server (
CQEQueuePut)
# Linux target (recommended — key is fetched from DB automatically, no local key file needed)
pwsh .\mgmt\register-ga-cqe.ps1 -Lssn <target lssn> -MsType sh `
-Property 'properties/123456789' -Auid '<your login id>'
# Windows target (after giip-803: omitting -KeyFile fetches the key from DB automatically)
pwsh .\mgmt\register-ga-cqe.ps1 -Lssn <target lssn> -MsType ps1 `
-Property 'properties/123456789' -Dispatcher 'https://<giip byAK dispatcher url>' -Auid '<your login id>'
Important: the target server (-Lssn) must belong to the same organization (csn) that owns the GA property. Registering a server from a different organization will pass auth but keep failing to find that organization's GA property/key — check the target server's organization first in Server List.
The property passed via -Property must already be registered (with its service-account key) on GA Property Management.
Step 2 — Link an already-registered script to another server (web UI)
Once the script (mssn) already exists, adding another server is possible via the web UI.
- Go to CQE Queue Registration
- mssn: click [Select] and search for the existing "GA Collector..." script
- Lssn Group: check the target server(s)
- csn: the target organization number
- interval: collection frequency in minutes;
1440for once daily - custom_values: for a shell (Linux) target:
(the service-account key is fetched from DB automatically — no need to setGaProperty='properties/123456789'GaKeyFile) - Save — then confirm the registration on Per-server Run List
Verifying registration
- CQE Script List: is there a script starting with "GA Collector..."?
- Per-server Run List: is it assigned to the intended server (lssn) and active?
- CQE Run History: did it actually run, or fail?
🔗 Next steps
- To register/manage properties and keys, see GA Property Management
- To view collected metrics, see GA Analytics Report
Version: 1.0
Last updated: 2026-07-29
Source: giipv3/public/help/ga-pipeline.en.md