Our tracking script sends very few data points. This document outlines the metrics we collect and their usage.

What We Don’t Collect

To clarify, we do NOT use cookies, IP addresses, or any other identifiers to track users. This also applies to similar technologies like local storage, session cookies, IP address hashing, etc.

Events Collected

Load Event

When a user loads a new page, the tracking script sends a load event to the server. This event includes the following data:

{
	"b": "lxmc2mrt04wt1790jnjb", // Beacon ID.
	"e": "load", // Event type.
	"u": "https://your-website.com/page", // Page URL.
	"r": "google.com", // Referrer URL.
	"p": false, // If the visitor is unique or not.
	"q": true, // If the visitor has visited this specific page before.
	"t": "Europe/London" // Timezone of the visitor.
}

The Beacon ID is a randomly generated identifier used to link the load and unload events together. This is generated per-page load and is not stored or used for any other purpose and cannot be used to identify a specific individual. For example, if you refresh your page, a new Beacon ID would be generated.

The timezone field is used to estimate the user’s country without relying on an IP address. More details on this can be found here.

Unload Event

When a user closes the tab or navigates away from the page, the tracking script sends an unload event to the server. This event includes the following data:

{
	"b": "lxmc2mrt04wt1790jnjb", // Beacon ID.
	"e": "unload", // Event type.
	"m": 1451 // Time spent on page in milliseconds.
}

This event is primarily used to calculate the average time spent on a page and the bounce rate of the website.

HTTP Headers

In addition to the event data, your browser sends information through HTTP headers, allowing us to infer more about the visitor:

HTTP HeaderDescription
Accept-LanguageLanguages used by the visitor’s browser.
User-AgentBrowser, device, and operating system of the visitor.

Timestamps

We store timestamps of each event to record when an event occurred for the charts we display.

Data Processing

We split the events into load and unload in order to improve accuracy. The unload event is prone to failure as suddenly closing a browser tab or other factors can prevent the event from being properly sent. By merging the data received from both events, we can provide a more accurate representation of the user’s behavior.