Your CMP Lies.
Consent Arrives
2-3 Seconds Too Late.

Universal Consent Adapter reads consent from cookies in <1ms — before your CMP JavaScript even loads. Works with 10 major CMPs. One GTM template. Zero consent gaps.

Free & Open Source GTM Template Consent Mode v2 10 CMPs Supported

Apache 2.0 License. No external dependencies. Under review for GTM Gallery.

consent-initialization.js
// Layer 0: Cookie read — before CMP JS loads
const consent = readCMPCookie();

if (consent) {
  gtag('consent', 'update', {
    analytics_storage: 'granted',
    ad_storage: 'denied',
    ad_user_data: 'denied',
  });
}

// < 1 millisecond, synchronous, local
// No gap. No guessing. No waiting.

67% of Your PageViews Fire Without Consent

Every major CMP has the same invisible flaw: they rely on external JavaScript that takes 1.2–3.7 seconds to load.

Consent Gap

Average 1.94s between page load and consent signal. Your GA4 PageView fires without knowing the user's decision.

Lost Sessions

4.1% of sessions where consent signal never arrives at all. Complete data blind spot.

False Signals

31.2% of sessions with duplicate or contradictory consent events. Your reports lie to you.

67.3%

of PageViews fire before consent is known

Measured across 23 e-commerce sites, ~4.2M sessions/month

Four Layers. Zero Gaps.

UCA uses a unique multi-layer architecture. Each layer adds redundancy. Layer 0 is the breakthrough.

L0

Cookie Read

Reads CMP consent cookie directly — synchronous, local, instant.

< 1 ms
L1

Default State

Sets consent defaults: all denied + wait_for_update.

Instant
L2

JS API Callbacks

Hooks into CMP JavaScript API for real-time consent updates.

When CMP loads
L3

dataLayer Hook

Intercepts dataLayer.push events. Zero CPU polling.

Real-time

Works With Your CMP

Auto-detects your CMP or select manually. All 10 platforms supported.

OneTrust
Cookiebot
CookieYes
Usercentrics
Borlabs Cookie
Complianz
Axeptio
TrustArc
Didomi
Klaro
Cookie  |  JS API  |  dataLayer
99.4%
Reduction in pre-consent PageViews
< 1ms
Consent read time
10
CMPs supported
2 min
Setup time in GTM

Everything You Need for Consent Compliance

Google Consent Mode v2

All 6 consent types supported.

Microsoft Consent Mode

Clarity and Bing UET support. Required from May 2025.

Region-Specific Defaults

Different consent defaults per region.

Custom Category Mapping

Override default CMP-to-consent mapping.

Debug Mode

Detailed logging in GTM Preview console.

Zero Dependencies

No external scripts, no CDN calls. Everything runs inside GTM.

Frequently Asked Questions

No. UCA works alongside your existing CMP setup.

No. UCA runs entirely inside the GTM sandbox with zero external requests.

Layer 1 sets default consent with wait_for_update. Layers 2 and 3 capture the update in real-time.

Yes. UCA defaults to denied and only grants after explicit user consent.

Import the template into GTM, create a new tag with Consent Initialization trigger, and publish.

Yes. UCA is open source under Apache 2.0 license.