Skip to main content
Adrià García
← All patterns
Pattern 09Consent

Consent is a chain, not a field

It is decided in the CMP, travels through the SDK, is stored in the profile and enforced by each destination. It breaks at the link nobody designed.

Consent travels every link
Consent path
Decision
CMP
Collection
Web SDK
Storage
Consent attribute
Enforcement
Destination policies

Generic diagram. It does not reproduce a client architecture.

A consent project is usually considered done when the banner stores the decision. That is where the journey starts. The SDK needs it before the first event, the profile needs it in time for audiences, and every destination has to respect it or block what must not go out.

Each link has a different owner and a different pace. If one arrives late or not at all, the person's decision stops counting and no system raises an error.

Production signals

  • Nobody knows how long a preference change takes to reach an audience.
  • The SDK collects with consent granted by default where the law requires asking first.
  • Preferences changed outside the website arrive in an overnight file.
  • Each destination filters with its own rule that nobody has reviewed.

Recommended architecture

Draw the path of each purpose end to end, with an owner and a latency for each link.

Test complete scenarios: accepts, rejects, changes their mind and does not answer.

When not to apply it

  • Do not solve it in the CMP alone: the banner enforces nothing outside the browser.
  • Do not copy the decision into fields without an owner, because they end up saying different things.

Try it in a simulator

Interactive scenarios where this pattern fails and gets fixed.