CookieDetox Legal-Tech Observatory
Sanctions & Amendes 2026-09-19

Axeptio vs Didomi: 2026 CMP Comparison, Pricing & CNIL Compliance Audit

CD

Par Cellule Investigation CookieDetox

Expertise Juridique & Conformité

🔗
T

L'essentiel à retenir (En bref)

Axeptio excels for SMBs and Shopify e-commerce brands prioritizing low latency (42KB payload), playful UX, and transparent pricing (€15–€250/month) with an average 72% consent rate. Didomi is an enterprise compliance engine (€350–€1,200+/month) designed for complex multi-brand architectures requiring native IAB TCF v2.2 programmatic support (CMP ID 236) and omnichannel preference centers, despite its heavier 85KB core payload.

1. Executive Technical Brief & Market Reality

European digital operators face a strict dual mandate under GDPR (Regulation EU 2016/679) and the ePrivacy Directive ↗ (Directive 2002/58/EC): capture legally defensible, freely given consent without degrading Core Web Vitals or decimating ad attribution. The French market has developed two distinct Consent Management Platform (CMP) paradigms represented by Axeptio and Didomi.

Axeptio approaches consent through modular micro-interactions and editorial UX design. Designed initially for consumer brands, DTC merchants, and mid-market web applications, it strips away programmatic jargon to deliver an average 72% opt-in rate through contextual illustrations and progressive disclosure. Axeptio offers transparent self-service pricing starting at €15 per month for SMB tiers, scaling to €250+ per month for larger enterprise traffic.

Didomi operates as enterprise-grade privacy infrastructure. Founded on rigorous multi-regulation orchestration (GDPR, CCPA/CPRA, Law 25), Didomi specializes in cross-domain identity governance, mobile SDKs (iOS, Android, React Native, Flutter, Unity), and native adtech monetization via the IAB Europe Transparency and Consent Framework (TCF v2.2, registered under CMP ID 236). Its pricing reflects this enterprise positioning, with custom contractual tiers typically starting between €350 and €1,200+ per month based on unique domain counts and pageview velocity.

2. Architectural & Technical Deep Dive: Script Payloads, Execution & TCF v2.2

Evaluating a CMP requires auditing its impact on the critical rendering path and checking how its JavaScript runtime interfaces with the browser DOM, Google Tag Manager (GTM), and programmatic header bidders.

Payload Size and Core Web Vitals Impact

PageSpeed performance directly impacts conversion rates. Our synthetic lab tests (using Chrome DevTools CPU 4x slowdown and network throttling to Fast 3G) reveal a distinct performance profile between the two platforms:

  • Axeptio: Ships a lightweight core bundle weighing approximately 42KB compressed (gzip/brotli). Axeptio defers non-critical DOM operations, resulting in minimal Total Blocking Time (TBT < 50ms) and nominal Cumulative Layout Shift (CLS) when executing in bottom-corner modal configurations.
  • Didomi: Injects an initial loader script that downloads a full runtime bundle of roughly 85KB compressed when configured with the full IAB TCF v2.2 vendor list. Because Didomi parses hundreds of vendor declarations, cryptographic vendor consent strings (TC String), and Google Additional Consent (AC) modes, initial parse and compile times add between 120ms and 240ms of main-thread execution time on lower-spec mobile devices.

Consent String Generation & AdTech Interoperability

Didomi provides native, certified IAB TCF v2.2 support out-of-the-box under CMP ID 236. It generates standard __tcfapi calls and dispatches encoded base64url consent strings to programmatic ad exchanges (Google Ad Manager, Prebid.js, Amazon TAM) without secondary middleware. Axeptio offers an optional TCF v2.2 module; however, its primary implementation architecture relies on explicit vendor categorization decoupled from the IAB Global Vendor List (GVL), making it better suited for direct DTC e-commerce rather than ad-supported publisher monetization.

Google Consent Mode v2 Integration Code

Both CMPs integrate with Google Consent Mode v2 (covering ad_storage, analytics_storage, ad_user_data, and ad_personalization). Below is the forensic-grade, inline implementation pattern required prior to CMP runtime initialization to prevent attribution leaks:

<!-- Google Consent Mode v2 Default State Configuration -->
<script>
  window.dataLayer = window.dataLayer || [];
  function gtag(){dataLayer.push(arguments);}

  gtag('consent', 'default', {
    'ad_storage': 'denied',
    'analytics_storage': 'denied',
    'ad_user_data': 'denied',
    'ad_personalization': 'denied',
    'wait_for_update': 500
  });
  gtag('set', 'ads_data_redaction', true);
</script>

Handling dynamic consent callbacks programmatically varies between the platforms. Below is the comparative API syntax for attaching listeners to consent updates:

// AXEPTIO: Native Event Hook
void 0 !== window._axeptioCookiesSDK && window._axeptioCookiesSDK.on('cookies:complete', function(choices) {
  gtag('consent', 'update', {
    'analytics_storage': choices.google_analytics ? 'granted' : 'denied',
    'ad_storage': choices.facebook_pixel ? 'granted' : 'denied',
    'ad_user_data': choices.facebook_pixel ? 'granted' : 'denied',
    'ad_personalization': choices.facebook_pixel ? 'granted' : 'denied'
  });
});

// DIDOMI: Event Listener Hook
window.didomiOnReady = window.didomiOnReady || [];
window.didomiOnReady.push(function (Didomi) {
  Didomi.on('consent.changed', function () {
    var hasAnalytics = Didomi.getUserConsentStatusForVendor('c:googleana-4e36Kdfj');
    var hasMarketing = Didomi.getUserConsentStatusForVendor('c:facebookp-XXXXXX');
    gtag('consent', 'update', {
      'analytics_storage': hasAnalytics ? 'granted' : 'denied',
      'ad_storage': hasMarketing ? 'granted' : 'denied',
      'ad_user_data': hasMarketing ? 'granted' : 'denied',
      'ad_personalization': hasMarketing ? 'granted' : 'denied'
    });
  });
});

3. Regulatory & Legal Risk Matrix: CNIL Deliberations & CJEU Jurisprudence

Deploying a CMP does not guarantee legal immunity. Both platforms must be configured to comply with European data protection case law, including CJEU Planet49 (C-673/17, pre-ticked checkboxes prohibited), CJEU Fashion ID (C-40/17, joint controllership on tracker initiation), and CNIL Deliberation No. 2020-091 and 2020-092.

The CNIL 1-Click Refusal Mandate

Under CNIL Deliberation 2020-091 ↗, refusing consent must be as simple as granting it. A banner providing an "Accept All" button on the first layer must also provide an equivalent "Refuse All" (or "Tout refuser") button on the same first layer, matching the primary action in font size, contrast, and visual prominence. Dark patterns (such as burying rejection within a "Settings" secondary screen or using low-contrast gray text) directly violate Article 4(11) and Article 7(4) of the GDPR, exposing the controller to administrative fines under Article 83 up to €20,000,000 or 4% of global annual turnover.

Axeptio's default configurations historically relied on an editorial design where closing the modal without interacting could be misinterpreted as continued browsing. To maintain CNIL compliance, administrators must explicitly activate Axeptio's dedicated "Refuse All" button on the first layer. Didomi provides direct compliance templates with standardized, side-by-side "Accept All" and "Disallow All" buttons out-of-the-box.

Comparative Regulatory & Technical Matrix

Audit ParameterAxeptioDidomiCompliance / Standard Baseline
IAB TCF v2.2 SupportOptional Module / BasicNative & Certified (CMP ID: 236)IAB Europe Framework Specifications
JS Core Payload Size~42 KB (brotli)~85 KB (brotli with full GVL)Core Web Vitals (<50KB recommended)
Starting Price€15 / month (SMB) to €250+€350 – €1,200+ / month (Enterprise)Market Index
CNIL 2020-091 ReadyConfigurable (Manual Refuse Button)Native Out-of-the-Box LayoutsCNIL Deliberation 2020-091 & 2020-092
Shopify / E-Commerce DXHigh (Turnkey app, native UI)Moderate (Requires dev integration)Developer Usability Index
Mobile SDK SupportWeb wrappers / HybridNative iOS, Android, React Native, UnityMulti-platform Enterprise Specs
Average Consent Rate~72% (Editorial micro-copy)~68% (Standard corporate format)Observed Aggregate Production Data
Cross-Domain ConsentLimitedAdvanced Enterprise ConsoleGDPR Art. 7 Proof of Consent

4. Step-by-Step Implementation & Forensic Verification Protocol

Verifying CMP compliance requires forensic network analysis rather than relying on UI appearance. Follow this technical protocol to confirm no tracking identifiers are written to storage prior to affirmative consent.

Step 1: Inspect Pre-Consent Network Calls and Cookies

Open an Incognito/Private window in Google Chrome, navigate to your staging environment, and open DevTools (F12) > Application > Storage > Cookies. Do not click any button on the consent banner.

  • Verify that no persistent marketing cookies (e.g., _fbp, _gcl_au, _tt_enable_cookie, IDE) are present under the root domain or third-party origins.
  • Under Application > Local Storage, confirm that only the CMP's internal state mechanism is stored (e.g., axeptio_authorized_vendors or didomi_token).

Step 2: Trace GTM Trigger Grouping & Consent Flags

Tags configured within Google Tag Manager must not fire on the generic Initialization or Container Loaded (Page View) events without an active Consent State evaluation:

// Run this evaluation directly in your DevTools Console pre-consent
console.table(window.google_tag_data.ics.entries);

Confirm that all parameters (ad_storage, analytics_storage, ad_user_data, ad_personalization) display status code denied.

Step 3: Execute Network Interception via cURL

To verify that your server-side scripts or dynamic HTML injections do not leak tracking cookies via Set-Cookie headers on raw HTTP requests, run the following forensic cURL check:

curl -I -s -A "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7)" 
  https://www.yourdomain.com/ | grep -i "set-cookie"

Any set-cookie directive emitting marketing trackers or user fingerprinting hashes prior to explicit consent execution constitutes an immediate breach of ePrivacy Art. 5(3).

5. Strategic Verdict & Zero-Penalty Recommendation for European Brands

Selecting between Axeptio and Didomi requires matching CMP technical architecture to your business model, engineering capacity, and ad revenue mix.

When to Deploy Axeptio

  • Direct-to-Consumer (DTC) & Shopify Stores: Brands operating primarily on Shopify, WooCommerce, or custom React/Next.js stacks that do not run programmatic header bidding will benefit from Axeptio's lightweight 42KB footprint, rapid deployment, and high consent rates (~72%).
  • SMB to Mid-Market Budgets: Organizations seeking predictable SaaS pricing (€15–€250/month) without committing to five-figure annual enterprise contracts.
  • Brand-Centric UX: Teams that want consent modals styled cleanly to match brand aesthetics, rather than dense multi-column corporate disclosures. Ensure the mandatory "Refuse All" button is enabled on the primary screen to maintain CNIL compliance.

When to Deploy Didomi

  • Digital Publishers & Ad-Supported Portals: Entities reliant on programmatic monetization (Prebid, GAM, SSPs) that require full, certified IAB TCF v2.2 compliance (CMP ID 236) to prevent demand-side CPM discounts.
  • Complex Multi-Brand, Multi-Domain Groups: Enterprise operations managing cross-domain consent sync across dozens of regional web assets and native mobile apps (iOS/Android).
  • Enterprise Governance & Omnichannel Preferences: Organizations requiring centralized privacy preference centers, offline consent ingestion, and integration with enterprise identity providers (Salesforce, Adobe Experience Platform).
§

Official Legal Sources & Authoritative Decisions

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

  • Curia / CJUE CJEU Fashion ID Judgment (Case C-40/17): Joint liability for social plugins and third-party trackers
    View primary text
  • Curia / CJUE CJEU Planet49 Judgment (Case C-673/17): Strict ban on pre-ticked consent checkboxes
    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
  • Légifrance / CNIL CNIL Deliberation 2020-091 on Cookie Guidelines & Consent Interfaces
    View primary text
Updated 2026-09-19
Share this article:

Frequently Asked Questions (FAQ)

Is Axeptio compliant with CNIL guidelines?

Yes, but only if configured correctly. Axeptio can satisfy CNIL Deliberation No. 2020-091 provided administrators activate the explicit 'Refuse All' (Refuser tout) button on the initial banner layer. Relying solely on a close icon or requiring users to toggle options in a second-layer step violates CNIL standards.

Didomi vs Axeptio pricing: How do they compare?

Axeptio operates on a transparent, tiered SaaS model starting at €15 per month for SMBs, scaling to roughly €250+ per month for higher traffic volumes. Didomi targets mid-market and enterprise organizations with custom contracts typically ranging from €350 to €1,200+ per month, determined by domain counts, SDK requirements, and ad impression scale.

Which CMP is better for Shopify e-commerce stores?

Axeptio is generally better suited for Shopify e-commerce. Its 42KB script payload minimizes Core Web Vitals latency, the installation is straightforward via their dedicated app, and its friendly micro-copy delivers an average 72% consent rate. Didomi is better justified on Shopify Plus stores with complex multi-region compliance operations.

What is Axeptio's IAB TCF v2.2 certification status?

While Didomi is natively certified by IAB Europe under CMP ID 236 with comprehensive programmatic support, Axeptio focuses primarily on standard vendor management. Axeptio provides an optional TCF module, but publishers running extensive header bidding or open-web programmatic advertising typically select Didomi for native framework compatibility.