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)
- Browser —
uts-tracker.jsruns on your site, captures attribution (UTMs,gclid,fbclid, etc.), assigns visitor / session IDs, and sends JSON to the ingestion API (typically viasendBeacon/fetch). - Ingestion API —
POST /trackon analytics.getsolarmax.com validates payload, enriches IP/geo/device, writesuts_events, runs optional attribution inserts, then asynchronously forwards to GA4 / Meta / Google Ads per rules.LeadFormSubmittedis deduplicated so each logical lead typically produces one submitted-lead conversion to Ads/Meta (see Lead form deduplication). - Dashboard — dashboard.getsolarmax.com (Next.js) queries ClickHouse via
/api/*routes for reporting.