Skip to Content
DocsReferenceAuto-Properties

Auto-Properties

Properties automatically attached to events by SDKs and the backend. All auto-properties are prefixed with $ to distinguish them from user-defined properties.

You never need to set these manually — the SDK and server add them automatically. Sending them yourself creates duplicates.

SDK-enriched (client-side)

Attached by the Web SDK before sending to the API.

PropertySourceDescriptionExample
$urlWeb SDKCurrent page URLhttps://app.com/pricing
$referrerWeb SDKDocument referrerhttps://google.com
$titleWeb SDKPage titlePricing — Acme
$screenSDKScreen dimensions1920x1080
$utm_sourceWeb SDKUTM source parametergoogle
$utm_mediumWeb SDKUTM medium parametercpc
$utm_campaignWeb SDKUTM campaign parameterspring_sale
$utm_termWeb SDKUTM term parameteranalytics+software
$utm_contentWeb SDKUTM content parameterbanner_a
$sdkVersionSDKSDK version string1.2.0

UTM parameters are parsed from the page URL on each event. They persist for the session once captured.

Server-enriched (ingestion workers)

Added by event workers after BatchCreate — not present in the SDK payload.

PropertyDescriptionExample
$geo.countryCountry from IP geolocationUS
$geo.cityCity from IPSan Francisco
$geo.regionRegion/state from IPCalifornia
$browserBrowser nameChrome
$browserVersionBrowser version120.0.0
$osOperating systemmacOS
$deviceDevice typedesktop, mobile, tablet
$botScoreBot likelihood (0–1)0.02

Server enrichment requires the request to include client IP (standard behind a load balancer). Self-hosted deployments must forward X-Forwarded-For correctly.

Usage in queries

Reference auto-properties in Insights filters and breakdowns exactly like custom properties:

Breakdown by country

Events: page_view Breakdown: $geo.country Aggregation: Unique users

Filter to Chrome users

Events: purchase Filter: $browser = "Chrome" Aggregation: Sum (revenue)

UTM campaign performance

Events: signup_completed Breakdown: $utm_campaign Aggregation: Count Filter: $utm_source = "google"

Exclude bots

Events: page_view Filter: $botScore < 0.5 Aggregation: Unique users

Auto-properties vs custom properties

Auto-propertiesCustom properties
Prefix$None
Set bySDK or serverYour code
Available onAll eventsEvents where you send them
SchemaFixedAny key-value

Custom properties you define (e.g. plan, product_id) are separate from auto-properties and appear without the $ prefix.

Privacy

PropertyPrivacy consideration
$urlMay contain query params with sensitive data — review URL structure
$geo.*Derived from IP — disclose in privacy policy
$referrerMay reveal referring site with user context
$botScoreInternal signal — safe to use for filtering

For GDPR/CCPA compliance:

  • Review which auto-trackers are enabled — see Auto-tracking
  • Disable form and click trackers if element text may contain PII
  • Add consent before calling init() if required by your jurisdiction
  • Geo enrichment uses IP address — document this in your privacy policy

Further reading

Last updated on