giip

GA Collection Pipeline Guide

A diagnostic screen that shows, per property, exactly which stage of Register → Collect (raw) → AI aggregate → Display is stuck.

🔗 Open GA Collection Pipeline →

📋 Overview

GA4 metrics go through 4 stages before they appear in GA Analytics Report.

StageMeaningStored in
Catalog (register)Property registered in GA Property ManagementtGaProperty
Collect (raw)Raw metrics fetched from the GA4 Data API by the collectortKVS(kType='ga')
AI aggregateRaw metrics processed into an AI reporttGaAiReport
DisplayThe 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

StateMeaning
HealthyBoth collection and AI aggregation are working
AI pendingRaw data collected, but AI aggregation hasn't run yet
Not collectingRaw collection itself isn't happening (the most common issue)
InactiveProperty 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:

MessageCauseFix
Collection startedSuccessRefresh shortly and check that the "Collect (raw)" timestamp is filled
No GA collector is registered for this organization yetNo GA collection schedule (CQE) has ever been registered to run under this organization (csn) — this is a missing setup, not a bugFollow "🔗 Linking a GA collector server" below (admin, one-time)
You don't have permission to collect this GA propertyThe property belongs to another organization, or your account isn't a member of itSwitch 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:

  1. Registers the script body into the CQE repository (CQERepoPut) → issues an mssn
  2. 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.

  1. Go to CQE Queue Registration
  2. mssn: click [Select] and search for the existing "GA Collector..." script
  3. Lssn Group: check the target server(s)
  4. csn: the target organization number
  5. interval: collection frequency in minutes; 1440 for once daily
  6. custom_values: for a shell (Linux) target:
    GaProperty='properties/123456789'
    
    (the service-account key is fetched from DB automatically — no need to set GaKeyFile)
  7. Save — then confirm the registration on Per-server Run List

Verifying registration

🔗 Next steps


Version: 1.0 Last updated: 2026-07-29 Source: giipv3/public/help/ga-pipeline.en.md