We believe everyone deserves privacy and a great shopping experience.
That’s why we’ve chosen to publicly disclose our tracking technology, enabling everyone to create a more private internet.
This article explains how our cookieless technology allows visitors to stay private while receiving a personalized experience, while also providing you with detailed analytics.
Cookieless tracking is built into Clerk.js and is activated by default.
Knowledge Graph #
At the heart of Clerk’s AI is the “Knowledge Graph” technology, which connects all your products, categories, articles, orders, and (if enabled) customers to one another.
This system powers all of Clerk’s predictions, whether for improving search experiences, providing product recommendations, automating email content, or segmenting customers.
The Knowledge Graph operates without requiring website data like clicks, searches, and other browsing activity. Instead, Clerk has always relied on order data as the main source of truth for the AI.
This approach stems from Clerk’s foundational insight: an order that a customer has paid for is far more valuable than a page visit or click (which we do hundreds of times a day without noticing).
Clerk’s AI does not require website data and is thus unaffected by website tracking. Product clicks are only used as context to for which products a visitor has recently viewed, enabling the AI to return results for those products in visitor API endpoints.
Proof of Value #
Clerk primarily uses website tracking to show how our services help your visitors and customers and ultimately improve your business.
Our tracking approach doesn’t focus on individuals. Instead, it measures the value of our services through aggregated statistics, assessing their impact on orders when customers click on and purchase at least one product via Clerk.
In short, we don’t track who a visitor is but rather what happens in a session. To achieve this, we identify sessions to tie past events and clicks to an order before computing aggregated statistics. This process is explained below.
Anonymous Sessions #
Clerk tracks visitors through anonymous session IDs, which are generated each time a browser makes a request to https://api.clerk.io
. Here’s how it works:
We compute a hash using the IP address, User Agent, and a unique store salt. The store salt is unique to each store using Clerk and is rotated every 30 days, making long-term tracking virtually impossible.
The hash is compressed from base 16 to base 62, increasing information per byte.
Most of the hash (81.4%) is discarded to anonymize the data, leaving a unique 8-character string in the format “Pyqb0mfV”.
This identifier ensures that shopping sessions remain anonymous. It does not contain any personal data, does not store anything on users’ devices, and prevents long-term tracking beyond 30 days.
In practice, any visitors that browse the same website from the same Wi-Fi on the same type of computer, will share the same session ID. This simply happens so rarely that it does not impact our tracking.
Privacy Settings #
Clerk.js can be configured with privacy settings on a per-visitor basis, enabling you to customize the experience for your customers.
There are 4 privacy modes, explained below.
Default (Cookieless) #
Clerk.js uses anonymous sessions as described above, per default.
This approach provides accurate aggregated statistics about Clerks impact while keeping sessions private and anonymized.
Persistent #
This mode generates the same unique ID and stores it as a long-term identifier cookie on the visitors device, forming the basis for tracking. This can be used for visitors that give consent to being tracked.
To enable it, include this snippet on your site once the visitor gives consent:
Clerk('config', 'visitor', 'persistent');
Private #
In this mode, no data about the visitor is collected for any reason.
Clerk operates as usual except for features that depend on visitor actions, such as showing browsing history recomendations or sending triggered emails related to sessions.
Additionally, any sales made through our services will not be attributed to Clerk in the dashboard, which may result in underreporting in your statistics.
This mode can also be used to exclude your website activity from Clerks statistics, ensuring test data does not pollute results.
To deactivate tracking for a visitor, include this snippet on your site:
Clerk('config', 'visitor', null);
Custom #
You can configure custom visitor IDs that you generate yourself, allowing full control over the type of ID assigned to each visitor or session. This option is typically used for integration with external tools.
To implement it, include the following snippet and change the placeholder to your custom ID:
Clerk('config', 'visitor', 'TRACKING_ID_HERE');