CookieDetox
Sanctions & Amendes 2026-09-19

Session Replay Tools (Hotjar, Microsoft Clarity)

CD

Par Cellule Investigation CookieDetox

Expertise Juridique & Conformité

🔗
T

Key Takeaways

Session replay tools like Hotjar and Microsoft Clarity cannot run under legitimate interest (GDPR Art. 6(1)(f)). Under ePrivacy Directive ↗ Art. 5(3) and CNIL Deliberation 2020-091 ↗, capturing behavioral telemetry, DOM mutations, and keystrokes requires prior, freely given, explicit opt-in consent. Recording user sessions without consent or exposing checkout forms to replay scripts exposes publishers to administrative fines reaching €400,000.

Technical Brief : Session Replay Tools (Hotjar, Mi

A persistent compliance failure among digital product teams and e-commerce operators is classifying session replay scripts—predominantly Hotjar, Microsoft Clarity, FullStory, and Contentsquare—under the lawful basis of legitimate interest (GDPR Article 6(1)(f)). Product analytics and UX optimization are systematically categorized as non-exempt operations by European supervisory authorities.

Under Article 5(3) of Directive 2002/58/EC ↗ (ePrivacy Directive), transposed in France into Article 82 of the French Data Protection Act ↗ (Loi Informatique et Libertés), the storage of information or the gaining of access to information already stored in the terminal equipment of a subscriber or user is only allowed on condition that the subscriber or user has given his or her consent. The exceptions under CNIL Deliberation no. 2020-091 are limited to trackers strictly necessary for the provision of an online communication service explicitly requested by the user, or strictly limited to anonymous audience measurement meeting rigid statistical criteria. Session replay tools satisfy neither exemption.

Session recorders inject heavy JavaScript bundles that observe Document Object Model (DOM) mutations, register mouse movements (X/Y coordinates), log scroll events, and capture keystroke telemetry. European supervisory authorities, including the CNIL, the Austrian Datenschutzbehörde (DSB), and the German DSK, classify this telemetry as detailed profiling of user behavioral traits. When session recording executes prior to explicit consent, or where consent is bypassed using illegitimate soft-walls or pre-ticked consent management platform (CMP) configurations, an immediate breach of GDPR Articles 5(1)(a), 6(1)(a), and 7 occurs.

Architectural Deep Dive : Session Replay Tools (Hotjar, Mi

Session replay engines do not record video files. Instead, they serialize the HTML DOM tree into a time-stamped JSON payload and initialize a MutationObserver instance to monitor every incremental alteration to DOM nodes, attributes, and text nodes.

The Mechanics of Keystroke & State Interception

By default, replay scripts bind event listeners across the window scope: mousemove, scroll, click, focus, and input or keydown. When a user enters data into form inputs, the text value is captured in client-side memory prior to transport to the vendor's ingestion endpoints (e.g., Hotjar AWS infrastructure or Microsoft Clarity telemetry pipelines).

Even when automated masking is toggled in vendor dashboards, client-side dynamic masking frequently fails on single-page applications (React, Vue, Next.js) where input states bypass traditional static input IDs, or where unmasked custom attributes (such as aria-label, placeholder, or custom data attributes) contain sensitive personal data. If an e-commerce platform allows scripts to run across payment steps, checkout processes, or authenticated account settings, unmasked credit card numbers, IBANs, physical addresses, and health queries are transmitted to third-party servers.

Strict Client-Side DOM Masking Implementation

To mitigate catastrophic exposure of special categories of data under GDPR Article 9, engineers must enforce client-side element masking at the template level before any script loads. Relying solely on dashboard settings is a verifiable failure of Article 25 (Data Protection by Design and by Default).

<!-- Example: Hardening Form Inputs against Replay Scrapers -->
<form id="checkout-payment-form">
  <!-- Hotjar specific masking: data-recording-ignore omits the element entirely -->
  <!-- Microsoft Clarity masking: data-clarity-mask masks the content with asterisks -->
  <div class="form-group">
    <label for="user-card-number">Credit Card Number</label>
    <input 
      type="text" 
      id="user-card-number" 
      name="card_num" 
      autocomplete="cc-number" 
      data-recording-ignore="true" 
      data-clarity-mask="true"
      data-hj-suppress
    />
  </div>

  <div class="form-group">
    <label for="medical-notes">Special Dietary / Health Consultation</label>
    <textarea 
      id="medical-notes" 
      name="health_data" 
      data-recording-ignore="true" 
      data-clarity-mask="true"
      data-hj-suppress>
    </textarea>
  </div>
</form>

Conditional Initialization via Google Tag Manager (GTM)

Session replay tools must remain dormant until the consent management platform dispatches a verified consent_updated event containing explicit opt-in for the UX/Analytics category. The following implementation pattern demonstrates how to bind script injection to the Consent Management API:

// GTM Custom HTML Tag: Hard-Gated Hotjar Initialization
(function() {
  'use strict';

  // Validate CMP state (Example: Axeptio / Didomi / OneTrust)
  // Ensure the script never fires on restricted URL paths
  var sensitiveRoutes = ['/checkout', '/panier', '/account', '/teleconsultation'];
  var currentPath = window.location.pathname.toLowerCase();
  
  var isSensitivePage = sensitiveRoutes.some(function(route) {
    return currentPath.indexOf(route) !== -1;
  });

  if (isSensitivePage) {
    console.warn('[CookieDetox Alert] Session replay blocked: Sensitive route detected.');
    return;
  }

  // Verify explicit opt-in consent for UX/Analytics
  if (window.OnetrustActiveGroups && window.OnetrustActiveGroups.indexOf('C0003') === -1) {
    console.warn('[CookieDetox Alert] Session replay blocked: Missing explicit C0003 consent.');
    return;
  }

  // Inject Hotjar Tracking Code safely post-consent
  (function(h,o,t,j,a,r){
    h.hj=h.hj||function(){(h.hj.q=h.hj.q||[]).push(arguments)};
    h._hjSettings={hjid:1234567,hjsv:6};
    a=o.getElementsByTagName('head')[0];
    r=o.createElement('script');r.async=1;
    r.src=t+h._hjSettings.hjid+j+h._hjSettings.hjsv;
    a.appendChild(r);
  })(window,document,'https://static.hotjar.com/c/hotjar-','.js?sv=');
})();

Regulatory Risk Matrix : Session Replay Tools (Hotjar, Mi

Supervisory authorities have methodically dismantled corporate defenses attempting to justify unconsented UX recording. In several unpublicized inspections and formal audits, the CNIL has sanctioned e-commerce platforms with penalties reaching up to €400,000 for failing to obtain valid consent prior to injecting behavioral recorders and for inadvertently capturing billing inputs.

Furthermore, Microsoft Clarity presents compounding legal exposure due to its dual-purpose business model. Under Microsoft Clarity's terms of service, behavioral telemetry gathered from publisher properties may be ingested by Microsoft for algorithmic training, product improvement, and targeted advertising under the Microsoft Advertising framework. Deploying Clarity without granular disclosure and affirmative opt-in constitutes a direct violation of transparency (Art. 13) and purpose limitation (Art. 5(1)(b)).

Scroll horizontally ↔
Regulatory CriterionHotjarMicrosoft ClarityLegal Benchmark & Penalties
Default Legal BasisConsent Required (Art. 6(1)(a))Consent Required (Art. 6(1)(a))ePrivacy Directive Art. 5(3); CNIL Deliberation 2020-091 ↗. Legitimate interest strictly prohibited.
Sensitive Data HandlingDashboard suppression + data-hj-suppressDashboard masking + data-clarity-maskGDPR Art. 9 violation. Strict liability for transmitting plaintext medical/payment entries.
Third-Country Data TransfersEU-based AWS processing available (Enterprise)US entity telemetry routing (Microsoft Corp)GDPR Chapter V (Art. 44-49). US Data Privacy Framework self-certification required.
Vendor Data Re-useProcessor only (No commercial exploitation)Controller / Independent Re-use for AdTech/AI modelsGDPR Art. 5(1)(b) & Art. 28. Clarity mandates explicit joint-controller or third-party notice.
CNIL Fine ExposureUp to €400,000 or 2-4% global turnoverUp to €400,000 or 2-4% global turnoverSanctions under GDPR Art. 83 & French Data Protection Act Art. 82.

Implementation Protocol : Session Replay Tools (Hotjar, Mi

To guarantee that your production architecture does not leak data or violate ePrivacy statutes, the engineering team must run the following forensic verification workflow using automated testing and DevTools inspection.

Step 1: Network Trace Verification Prior to Consent

  1. Open an Incognito / Private window in Chromium.
  2. Launch DevTools (F12) and switch to the Network tab.
  3. Enable Preserve Log and filter requests by vendor domains: hotjar.com, clarity.ms, or fullstory.com.
  4. Navigate to the target URL without interacting with the CMP banner.
  5. Verify that the Network tab returns 0 requests for Hotjar/Clarity endpoints. If any asset—such as script.hotjar.com or www.clarity.ms/tag/—returns HTTP 200 prior to clicking 'Accept', the implementation violates CNIL Article 82.

Step 2: Inspect Payload Contents on Form Inputs

Once consent is granted, test form fields to determine whether keystroke sanitization operates properly at the network packet level:

  1. Navigate to an unauthenticated lead capture or checkout form.
  2. Fill out the form using synthetic test strings (e.g., USER_RECORDING_TEST_STRING in a name field, and 4111222233334444 in a credit card field).
  3. Filter the Network tab for outgoing WebSocket frames or POST requests to *.hotjar.io or *.clarity.ms/collect.
  4. Inspect the raw JSON payload. Ensure that form values appear masked as *** or null strings, and confirm that DOM element nodes labeled with data-recording-ignore are completely purged from the serialized DOM tree.

Step 3: Automated Continuous Integration Assertion

Integrate automated browser tests via Playwright or Puppeteer into your CI/CD pipeline to prevent tracking regressions from reaching production:

// Playwright compliance assertion: Zero telemetry before CMP acceptance
import { test, expect } from '@playwright/test';

test('Session Replay must not initiate requests before consent', async ({ page }) => {
  let illegalRequestDetected = false;

  // Intercept vendor tracking domains
  page.on('request', request => {
    const url = request.url();
    if (url.includes('clarity.ms') || url.includes('hotjar.com')) {
      illegalRequestDetected = true;
    }
  });

  await page.goto('https://example.com/', { waitUntil: 'networkidle' });

  // Assert no calls were dispatched
  expect(illegalRequestDetected).toBe(false);
});

Strategic Verdict: Technical Directives for European

Operating session replay tools under GDPR enforcement requires a zero-trust approach to third-party scripts. Legal liability lies squarely with the site publisher as the data controller, not the analytics vendor.

Mandatory Architecture Policies

  • Deprecate Legitimate Interest Justifications: Immediately reconfigure your CMP to ensure that Hotjar, Clarity, Contentsquare, or FullStory are mapped exclusively to the 'Analytics/UX Experience' category, requiring explicit, affirmative opt-in. Pre-ticked toggles, assumed consent upon scroll, or immediate script firing will trigger regulatory penalties.
  • Enforce Hard Route Exclusions: Do not rely on dynamic DOM masking alone for secure environments. Implement server-side or routing-level script exclusions that prevent replay bundles from executing on authentication portals, password reset pages, cart checkouts, and account management views.
  • Audit Data Processor Agreements (DPA): Given that vendors such as Microsoft Clarity process behavioral records under terms that permit secondary data utilization for platform intelligence, legal teams must update their privacy policies to explicitly name Clarity as an independent controller where appropriate, or transition to strict EU-hosted replay vendors who act strictly as processors under Article 28.

By enforcing client-side gating, dynamic input suppression, and continuous network validation, product teams can gather actionable user insights without compromising data privacy or risking severe CNIL sanctions.

§

Official Legal Sources & Authoritative Decisions

Primary statutory texts, official DPA rulings, and European court judgments referenced in this analysis.

  • Curia / CJUE CJEU Planet49 Judgment (Case C-673/17): Strict ban on pre-ticked consent checkboxes
    View primary text
  • Légifrance Article 82 of French Data Protection Act (Transposition of ePrivacy Directive in France)
    View primary text
  • EUR-Lex Article 83 GDPR — General conditions for imposing administrative fines (statutory ceiling up to €20M or 4% turnover)
    View primary text
  • EUR-Lex Directive 2002/58/EC (ePrivacy Directive on Privacy and Electronic Communications)
    View primary text
Updated 2026-09-19
Share this article:

FAQ : Session Replay Tools (Hotjar, Microsoft Clari

Does Hotjar require cookie consent in France under CNIL guidelines?

Yes. The CNIL explicitly classifies session replay tools as non-essential trackers. Hotjar writes identifiers to local storage and cookies to reconstruct user journeys across sessions. Under Article 82 of the French Data Protection Act, Hotjar requires prior, explicit, opt-in consent before any script executes or captures telemetry.

Can Microsoft Clarity be used legally under GDPR without a cookie banner?

No. Deploying Microsoft Clarity without an opt-in consent banner violates both the ePrivacy Directive and GDPR. Clarity reads device states and records interaction metrics, while Microsoft reserves rights to utilize telemetry data. Deploying Clarity without prior consent exposes the publisher to immediate regulatory enforcement.

What legal risks and fines are associated with session replay tools?

Data protection authorities can issue administrative fines up to €20,000,000 or 4% of annual global turnover under GDPR Article 83. The CNIL has issued sanctions up to €400,000 against e-commerce sites for unconsented tracking and failing to prevent the recording of sensitive payment or authentication credentials.

How can engineering teams block Hotjar before cookie opt-in?

Implement strict consent gating through your Tag Management System or raw HTML. Fire the Hotjar initialization script only when an affirmative opt-in event (such as Axeptio or OneTrust consent granted for analytics) is resolved. Never include the script directly in static head markup without programmatic execution gates.