All articles

Ingestion API (`POST /track`)

Endpoint

POST https://analytics.getsolarmax.com/track

  • Success: HTTP 204 No Content (response is sent immediately; processing continues asynchronously).
  • CORS: Allowed for configured origins; beacon payloads may use Content-Type: text/plain with JSON body to reduce preflights.

Required fields

FieldDescription
site_domainTenant key (e.g. getsolarmax.com). Used for routing, branding, and dashboard filters.
event_nameLogical event type (PageView, LeadFormSubmitted, …). See Tracking events.

Strongly recommended

FieldDescription
page_urlFull URL for attribution and conversion URL rules.
visitor_id / session_idStable strings from the tracker; mapped server-side to deterministic UUIDs for attribution tables.
attributionObject carrying gclid, fbclid, msclkid, UTMs, etc.

Processing rules (summary)

  • Bots / velocity — High-risk traffic may be flagged (is_bot).
  • LeadFormSubmitted — May be dropped from persistence unless page_url matches thank-you / completion patterns (server-side “survey completion URL” gate)—see server code and Tracking events.
  • Lead deduplicationLeadFormSubmitted is constrained to one Ads/Meta “lead” submission per matched identity when possible (see Lead form deduplication).
  • Forwarding — GA4 dispatch is attempted when credentials exist; Meta / Google Ads only under explicit conditions—see Server forwarding.

Related