Choose a provider

Embed
Preview of the card
<a href="https://forumulate.com/guides/cookies-consent-providers"><img src="https://forumulate.com/guides/_api/public/orgs/046a9bc0-d530-43ae-9bae-af7945008cda/spaces/36aa4df0-1e95-4cef-8ae9-795169441345/pages/a7e6f62b-c549-4d97-bf41-8be71f62cc31/social-card.svg?v=3e7ae33eec8b" alt="Choose a provider" width="600" height="315"></a>

Every native provider needs one publishable id — the same id you'd paste into that vendor's own install snippet. It is not a secret; it's the account/site identifier the vendor's script reads. You set it in the preset object.

The id each vendor needs

Provider

preset field

Pinned script host

Where to find the id

cookiemunch

cbid

cdn.cookiemunch.net

CookieMunch dashboard → your site → Site ID.

cookiebot

cbid

consent.cookiebot.com

Cookiebot Manager → Your scripts → the data-cbid value.

onetrust

dataDomainScript

cdn.cookielaw.org

OneTrust → Scripts → the data-domain-script UUID.

osano

customerId

cmp.osano.com

Osano → your config's install snippet → the customer/config id.

termly

websiteUuid

app.termly.io

Termly → Website settings → Website UUID.

The pinned host is a hard boundary: a native provider can load consent script from only that origin. The reader Content-Security-Policy is built from it, so a misconfigured or hijacked id can never pull script from anywhere else.

The preset fields are publishable, never secret. They appear in your page source by design — the vendor's script needs them. The one secret in consent, the webhook signing key, is handled separately and never round-trips through config. See Consent & DSAR webhook.

Example

Point the whole organization at CookieMunch:

{
  "provider": "cookiemunch",
  "preset": { "cbid": "your-site-id" }
}

Providers that need no vendor account

hosted — the Forumulate banner

We render a structured consent banner in your space's theme. No third-party script loads. You control the categories offered and the copy — as fields, never raw HTML:

{
  "provider": "hosted",
  "hosted": {
    "categories": ["necessary", "functional", "analytics", "marketing"],
    "copy": { "title": "We use cookies", "body": "Short explanation…" },
    "links": { "privacy": "https://example.com/privacy", "cookies": "https://example.com/cookies" },
    "theme": "space"
  }
}

Categories are drawn from necessary, functional, analytics, marketing, and personalization.

managed — in-house managed CMP

managed renders a CookieMunch loader for a site we provision under our own key — a white-label option when you want a real CMP but don't want to run an account. It loads from the same pinned cdn.cookiemunch.net host as the bring-your-own CookieMunch provider. Ask us to enable it for your organization.

none

Essential cookies only. No banner, no third-party script. This is the safe default posture.

Overriding for one space

Any space can break from the org default. In the space's Privacy & consent panel choose Override and set a full provider config there; choose Inherit to fall back to the organization default. See the mode field in the API reference.

Not listed here?

Bring any other CMP with the custom provider — either by pointing us at its loader on a domain you've verified, or by wiring its preferences API. See Custom CMP.

The Forumulate teamUpdated