Tracking settings reference
Look up snippet attributes, domain settings, event controls, and Google Ads defaults.
Use this reference to find Tracking’s settings, defaults, and effects. The linked guides cover setup and verification.
Automatic page views, batching, bot filtering, and deduplication have no configurable setting.
Forms cannot be used as an automatic identity source. Identify someone with lt('identify', …) or a backend event; see Identify a visitor.
At a glance
Setting | Where | Default |
|---|---|---|
The snippet variant | Install | Loader snippet |
data-link-domains | In the snippet | Absent (no group) |
data-collect | On the script tag | Absent |
data-cookie-domain | On the script tag | Absent |
data-consent | On the script tag | Absent (no banner declaration) |
Install domains | Install, step 2 | Empty |
The tracking host | Tracking domain | The shared Lepsto edge, public.lepsto.com |
The linking group | Carried in the snippet | Empty |
Event name status | Events | Active |
Workflow trigger | Events | Off |
Public access keys | Product → Settings → Public Access | None |
Conversion feedback | Google Ads → Conversions | Off |
Report model, window, range, domain | Reports | Last Click, 30 days, last 30 days, all domains |
The snippet
Choose a variant on Install. Switching variants requires replacing the snippet on your site.
Variant | What it does | Early-call behavior |
|---|---|---|
Loader snippet (default) | Defines window.lt before the script arrives, so early lt(…) calls are queued and recorded | Queues early calls without additional setup |
Minimal variant (behind the advanced toggle) | One <script async> tag. Collects exactly the same things automatically | window.lt does not exist until the script has loaded, so an early call throws a ReferenceError and the event is lost |
Attributes on the script tag
Attribute | What it does | Default |
|---|---|---|
data-link-domains | The cross-domain linking group, as a comma-separated list of root domains. Written into the snippet for you when a group is configured | Absent — no cross-domain work is done and the code for it is never loaded |
data-collect | Sends events to a different collector address instead of the one derived from the script URL. For local development and testing; must use the product’s public Lepsto address. A proxy calling the API directly is unsupported | Absent — the address is derived from the script URL |
data-cookie-domain | Sets the cookie domain explicitly | Absent — the domain is worked out by probing |
data-consent | banner declares the Lepsto consent banner, letting undecided visitors start cookieless before it loads. Use only on pages that run it | Absent — checks recorded consent and existing banner signals at startup |
The generated Install snippet includes data-link-domains when you configured a group. Add data-consent="banner" on pages using the Lepsto consent banner, or request tracking_snippets_get with consentBanner: true. That boolean defaults to false. Other ordinary settings—product, version, and default collector—come from the script URL. See Install the tracking script.
Domains
Domain settings are independent. Changing one list does not change the others; see Register domains.
Install domains
Install, step 2 lists expected hostnames and confirms when their events arrive.
- Default — empty.
- Normalization — lower-cased and trimmed; a scheme, port, path or trailing dot is dropped.
wwwis not removed, soacme.comandwww.acme.comare two entries. Hostnames, IPv4 addresses and IPv6 literals are accepted. - Window — a domain counts as seen if an event arrived from it in the last 30 days. The page rechecks about every ten seconds.
- What changes — nothing about collection. Events are stored from whatever host runs your script, listed or not. Removing a domain removes it from the checklist only; its events stay, and it reappears under
Also sending events.
The tracking host
Tracking domain controls the host serving your snippet.
- Default — the shared Lepsto edge,
public.lepsto.com. - Setting it — claim a host under one of your product’s domains. It is suggested as
analytics.plus your domain and must be a bare hostname under that domain. Publish the DNS records the page gives you. - Statuses —
Waiting for DNS to publish,Active,Verification failed. Verification is a real fetch of the script over your host; automatic retries stop after 72 hours, andRetryrestarts them at any time. - What changes — the script becomes first-party on your site and the snippet is regenerated to point at the new host. Nothing else behaves differently. Re-copy the snippet after a binding goes active, or pages keep loading from the old host.
- Releasing — the host is given up and the snippet falls back to the shared edge.
The linking group
data-link-domains carries the root domains whose anonymous browser identity should continue across clicked links.
- Default — empty. With an empty group, or a group of one, no cross-domain work is done at all.
- Normalization — lower-cased and trimmed to a bare root domain; adding one that is already there changes nothing.
- What changes — links from one domain in the group to another are decorated with the visitor’s anonymous id, and the receiving page adopts it if it has no visitor of its own and the value is under about two minutes old.
- After every change — copy the snippet again and replace it on every site in the group, including the ones you did not change. The group is baked into the pasted HTML, not fetched at run time.
Consent
Consent is handled by the script using the recorded banner decision. There is no separate consent switch in Tracking. The page-level declaration below prevents an async load race; it does not override an existing decision.
Load Tracking unconditionally. If the page runs the Lepsto consent banner, place its tag first in <head> without async or defer, and set data-consent="banner" on Tracking. A readable recorded answer takes priority; the canonical cookie is lepsto_consent. Older saved decisions remain readable and are migrated automatically by the banner. Without a readable saved answer, the declaration starts undecided visitors cookieless. Acceptance enables full mode on the same page. Without a loaded banner and decision, the page stays cookieless, so omit the declaration on pages with no Lepsto banner. See Tracking and consent.
Event names
Event names start Active on Events. Archive hides a name from dashboards without deleting events or stopping collection and counts; Unarchive restores visibility. See Record events.
Each name’s Workflow trigger starts off. Enabling it publishes recorded occurrences to Workflows with known email and phone; disabling it stops publication. Allow about a minute for either change. Storage and reporting continue regardless. A workflow step cannot change this setting. See Tracking workflows.
Public access keys
A product Owner or Admin issues backend public access keys under Product → Settings → Public Access. They are platform credentials rather than script settings.
Property | Rule |
|---|---|
Secret | Shown once, at creation; only a hash is kept. A key created there starts with lpk_. A key you already had keeps the value it always had |
Scope | All toolkits or selected toolkits in the platform UI. Individual-route scope is available through the management API. Scope can be edited after creation |
Revoke | Permanent. There is no rotate: you create the replacement, deploy it, then revoke the old key |
See Send events from your backend.
Google Ads
Link the Google Ads account at the platform level. In Tracking, configure spend sync and conversion feedback on Google Ads; see Google Ads setup.
Spend sync: a successful first Sync now in Settings enrolls the account for daily refresh. The initial window is about 30 days; subsequent refreshes reread roughly 7 days.
Conversion feedback: Conversions controls uploads to Google. It starts disabled because uploads affect the signals your campaigns use.
Setting | What it does | Default |
|---|---|---|
Master switch | Nothing is uploaded until it is on | Off |
What Google learns from | Fill gaps adds to what your pixel counts; Our data only means Google learns from these conversions alone | Fill gaps |
Match window | How far back a click may be to be matched to a conversion, and the window re-scanned on each run: 14, 30, 60 or 90 days | 90 days |
Rules | One tracked event name to one Google conversion action, with a value source: dynamic revenue, dynamic, or a fixed amount | None |
Enhanced conversions | Also sends the person’s hashed email and phone alongside the click id as extra matching signals | Off |
Enabling the master switch schedules daily uploads. Run now starts one pass immediately. Changing a conversion action resets Google’s campaign learning phase.
Report controls
Report controls change how stored history is interpreted. Each change recomputes the result without changing collection or the stored events.
Control | Options | Default |
|---|---|---|
Attribution model | Last Click, First Click | Last Click |
Lookback window | 7, 14, 30, 60, 90 days | 30 days |
Date range | Last 7 days, Last 30 days, Last 90 days, Custom | Last 30 days |
Domain filter | All domains, or one of your domains | All domains |
The report URL preserves your controls for sharing. Google Ads → Reports has its own model, window, and range controls. See Read attribution reports for their effect on the figures.
The public routes
The public routes serve the main script, cross-domain script, browser collector, and backend Events API. Public HTTP routes and SDK lists addresses, bodies, response codes, errors, and @lepsto/sdk/tracking. Event bodies are limited to 64 KiB; the backend batch allows 500 events; the shared rate limit is 10,000 requests per minute per IP. A plan or billing refusal can stop storage: the Events API returns 402, while the collector can return 204 and drop events.
Next steps
- Install the tracking script: what each snippet variant and attribute actually does.
- Register the domains you track: the three domain lists, in full.
- Send revenue from your backend: the fields the Events API accepts.
- The public HTTP routes and SDK: every route, its limits and the typed client.
- Browse the Tracking API: the generated schema for every route.