All articles

Universal Tracking System (UTS) — Overview

UTS is the central ingestion and attribution layer for Solar Max brands (and related sites). It collects behavioral events from web properties, stores them in ClickHouse, and forwards eligible signals to Google Analytics 4, Meta Conversions API, and Google Ads (when click IDs are present)—without replacing each platform’s native tags where those are still loaded on the page.

What problem it solves

  • One consistent event model (PageView, LeadFormSubmitted, PhoneClick, engagement events, etc.) across domains.
  • Server-side copies of conversions for APIs that require server tokens (GA4 Measurement Protocol, Meta CAPI, Google Ads offline conversions).
  • Multi-touch staging in ClickHouse (attribution_journey, attribution_sources) for analytics—dashboard widgets read from these tables where configured.

How data flows (high level)

  1. Browseruts-tracker.js runs on your site, captures attribution (UTMs, gclid, fbclid, etc.), assigns visitor / session IDs, and sends JSON to the ingestion API (typically via sendBeacon / fetch).
  2. Ingestion APIPOST /track on analytics.getsolarmax.com validates payload, enriches IP/geo/device, writes uts_events, runs optional attribution inserts, then asynchronously forwards to GA4 / Meta / Google Ads per rules. LeadFormSubmitted is deduplicated so each logical lead typically produces one submitted-lead conversion to Ads/Meta (see Lead form deduplication).
  3. Dashboarddashboard.getsolarmax.com (Next.js) queries ClickHouse via /api/* routes for reporting.

Read next