1ConsentConsentDocs
Compliance

Session measurement and consent

1Consent uses a small first-party SessionPixel to estimate daily app traffic. Those totals help scale consent-interaction analytics sampling. SessionPixel is not treated as strictly necessary and 1Consent does not expose a consent-exempt audience-measurement mode.

This optional analytics measurement is separate from the page-impression billing counter. The billing counter sends one storage-free request when the published CMP initializes, regardless of the visitor's consent choice. It carries an app-scoped public token, creates no visitor or session identifier, and is retained only as an hourly aggregate. Counter failure or quota usage never changes CMP delivery. The Free, Starter, and Pro plans include 10,000, 100,000, and 500,000 page impressions per month respectively; only paid plans accrue the published usage charge above their allowance.

When it runs

The production CMP includes SessionPixel only when your published framework has a non-essential category whose ID is analytics. The browser then waits until the visitor has made a valid choice and that category is granted.

Before that grant, the browser does not request the SessionPixel script, create a session identifier, or send a pixel. Denial or withdrawal stops activity observation immediately and removes the app-scoped identifier. A later valid grant may start a new session.

Preview and Staging CMP routes never run SessionPixel.

Data lifecycle and isolation

The first-party browser key is scoped to the published 1Consent app and stored in tab-scoped sessionStorage, not persistent localStorage. It contains a random pseudonymous session ID and the last activity time. It is refreshed only while the granted session is active, is removed by an in-page timer after 30 minutes without activity, and is also removed when denied or withdrawn. Closing the tab clears it independently.

The Session API verifies an app-scoped public token and keeps an individual deduplication marker for no more than 60 minutes. Its durable output is a daily aggregate count by workspace, project, app, environment, and channel. Session identifiers are not written to the application database and are not reused between apps.

Daily aggregate counts are hard-deleted after 14 days. The most recent seven complete UTC days are used for adaptive sampling; the remaining seven days are a retry margin for delayed rollups. Redis daily counters use the same 14-day limit and cannot recreate aggregate rows after that boundary. Deleting the owning app, project, or workspace also deletes its Session aggregates.

Your responsibilities

You are the controller for SessionPixel use on your site; 1Consent acts as your processor for this measurement. Before publishing it, you must:

  1. describe 1Consent session measurement, first-party storage, purpose, recipients, and retention in your privacy/cookie information;
  2. classify the analytics category as non-essential and present the choice clearly;
  3. ensure rejecting Analytics is as easy as accepting it and keep the preference center available for withdrawal; and
  4. confirm that your legal basis, transfers, and 1Consent data-processing terms fit your deployment and jurisdictions.

This product behavior is a technical safeguard, not a determination that your specific deployment complies with every applicable law. Obtain legal review where needed.

Exemption-based deployments

Some jurisdictions define narrow statistical or audience-measurement exceptions. 1Consent does not currently offer or claim an exempt SessionPixel configuration. Do not describe this feature as exempt, regulator-approved, or strictly necessary.

For regulator context, review the CNIL audience-measurement guidance and the ICO storage/access exceptions guidance.

On this page