CMP sources
walkerOS provides ready-made source packages for popular Consent Management
Platforms. Each source listens for CMP events and automatically calls
elb('walker consent', state) — no manual event listener code needed.
| CMP | Package |
|---|---|
| CookieFirst | @walkeros/web-source-cmp-cookiefirst |
| CookiePro / OneTrust | @walkeros/web-source-cmp-cookiepro |
| Usercentrics | @walkeros/web-source-cmp-usercentrics |
Conditional activation with require
Some sources and destinations shouldn't initialize right away — they may depend
on consent status being resolved first, or need information provided by other
sources (like session IDs). The require option solves this by deferring
initialization until specific collector events have fired.
Add require to any source or destination config to hold it as pending
until the listed events occur:
In this example the CMP source initializes immediately and fires
elb('walker consent', state) once the user makes a choice. That consent
event unblocks the session source, the dataLayer source, and the GA4
destination — all at once.
How require works
- Sources and destinations with
requireare held as pending during initialization - Each time a collector event fires (e.g.,
consent,session,user), the collector checks all pending items - When all listed conditions are met, the source or destination initializes
- Destinations receive all previously queued events on activation — no data is lost
Key points
- CMP sources must not have
require— they need to initialize immediately to detect consent - Accepted values: any collector event type —
"consent","session","user","run","config","globals", etc. - AND logic:
require: ["consent", "session"]waits for both events - Cascading: a CMP source fires
consent→ session source activates and firessession→ a dataLayer source waiting for["session"]activates next
How CMP sources work
- Detecting if the CMP is already loaded and reading existing consent
- Listening for CMP-specific events on consent changes
- Mapping CMP categories to walkerOS consent groups via
categoryMap - Calling
elb('walker consent', state)with the mapped state
All CMP sources support explicitOnly (default: true) to filter out
implicit/default consent and only process active user choices.
For more details on how consent works in walkerOS, see the consent management guide.