Untitled

c15t supports four consent models that control how consent defaults, banner visibility, and category gating behave:

ModelPhilosophyBannerCategories default to
opt-inExplicit consent requiredBlocking bannerfalse (except necessary)
opt-outProcessing allowed by defaultNon-blocking noticetrue (all granted)
iabIAB TCF 2.3 for programmatic adsTCF bannerManaged by TCF framework
nullNo regulation detectedNo bannertrue (all auto-granted)

There are two ways c15t determines which model applies:

  1. Policy packs (recommended) — you explicitly set the model per region in a PolicyConfig. This gives you full control over which regions get which model. See Policy Packs.

  2. Automatic jurisdiction mapping (legacy default) — when no policy pack is configured, c15t detects the visitor's jurisdiction via geolocation and maps it to a model using the table below. This still works but gives you less control over categories, UI, and scope.

Info

When using policy packs, the consent.model field in each policy directly sets the model — the automatic jurisdiction mapping is bypassed for that request.

The Four Models

Opt-in

The strictest consent model, used for GDPR and similar regulations that require explicit, affirmative consent before any non-essential data processing occurs. All consent categories except necessary default to false. A consent banner must be shown before any tracking scripts load.

Applies to: EU (GDPR), UK (UK GDPR), Switzerland, Brazil (LGPD), Japan (APPI), South Korea (PIPA), Quebec (Law 25). Also the fallback for unknown jurisdiction codes.

Opt-out

Used for CCPA-style regulations where data processing is permitted by default until the user exercises their right to opt out. All consent categories default to true. A blocking banner is not required — the typical pattern is a non-intrusive notice or footer link.

Applies to: California (CCPA), Canada (PIPEDA), Australia.

When the policy has consent.gpc: true, the browser's Global Privacy Control signal (Sec-GPC: 1 or navigator.globalPrivacyControl) is respected — marketing and measurement are denied while other categories remain granted. The built-in California presets enable this by default. See Policy Packs — GPC for details.

IAB

IAB Transparency and Consent Framework (TCF) 2.3 mode for programmatic advertising compliance. Only activates when two conditions are met: the jurisdiction is GDPR or UK_GDPR, and iab.enabled is true in your configuration.

When active, IAB mode generates TC strings, registers the __tcfapi CMP API, and works with the Global Vendor List (GVL) for machine-readable consent signals. If iab.enabled is not set, GDPR jurisdictions fall back to standard opt-in.

null

Returned when no jurisdiction is detected (NONE or null). No banner is displayed. On first visit, all categories are auto-granted.

Jurisdiction Mapping

When no policy pack is configured, c15t maps jurisdictions to models automatically:

Jurisdiction CodeRegionConsent Model
GDPREuropean Unionopt-in
UK_GDPRUnited Kingdomopt-in
CHSwitzerlandopt-in
BRBrazil (LGPD)opt-in
APPIJapanopt-in
PIPASouth Koreaopt-in
PIPEDACanada (excl. Quebec)opt-out
QC_LAW25Quebec, Canadaopt-in
CCPACalifornia, USAopt-out
AUAustraliaopt-out
NONENo jurisdictionnull
(unknown)Any otheropt-in

IAB override: If iab.enabled: true and the jurisdiction is GDPR or UK_GDPR, the model becomes 'iab' instead of 'opt-in'. This override only applies to those two jurisdictions.

Info

With policy packs, you set the model explicitly per policy — the automatic mapping above is only used as a fallback when no policy pack is configured, or for non-policy-pack features like auto-granting in opt-out jurisdictions.