---
title: "Academy Article"
canonical_url: "https://academy.laioutr.com/en/artikel/set-up-a-consent-banner-with-cookiebot-or-ccm19"
locale: en
meta:
  "og:title": "Academy Article"
---

[Go to home](https://academy.laioutr.com/en)

- [Storefront features](https://academy.laioutr.com/en/bereiche/storefront-features)

- [Tracking, language and agents](https://academy.laioutr.com/en/leitfaeden/tracking-language-and-agents)

- [Set up a consent banner with Cookiebot or CCM19](https://academy.laioutr.com/en/artikel/set-up-a-consent-banner-with-cookiebot-or-ccm19)

# Set up a consent banner with Cookiebot or CCM19

Laioutr connects Cookiebot or CCM19 as a consent app. Once installed and configured with its IDs, the storefront shows the banner, and all tracking destinations and Google Consent Mode v2 follow the visitor's decision automatically.

## Before you start

<dl>

<dt>Plan</dt>
<dd>Consent integration included in the platform; a licence with the CMP vendor is required</dd>

<dt>Role</dt>
<dd>Developer role on the environment (for Configuration)</dd>

<dt>Duration</dt>
<dd>10 min</dd></dl>

### Prerequisites

- Account with Cookiebot (CBID) or CCM19 (server URL, API key, domain ID)
- Storefront domain registered in the CMP
- Privacy policy on the website

Last reviewed on October 15, 2026

Before a storefront loads statistics or advertising services, it needs the visitor's consent. Laioutr separates two things for this: the **consent store** in Frontend Core, which every feature queries, and the **consent app**, which shows the banner and supplies the decision.

The consent store knows five purposes: necessary, functional, statistics, advertising and personalisation. The consent app translates the vendor categories into these purposes:

- **Cookiebot** has four categories. Marketing grants advertising and personalisation together, they cannot be chosen separately there.
- **CCM19** works with purposes. Built-in purposes are already mapped, purposes created in CCM19 are mapped by developers.

Once the app is active, tracking, the Google Tag Manager app and Google Consent Mode v2 follow the decision without further wiring. Switching vendors later is a configuration change, not a rebuild. Without a consent app, only the necessary purpose counts as granted.

## Step by step

1. 1 ### Step 1: Prepare the CMP account

   In the Cookiebot account, add the domain and note the domain group ID (CBID). In CCM19, add the domain and take the server URL, API key and domain ID from the embed code.
2. 2 ### Step 2: Install the consent app

   In Cockpit, open **Apps** in the project menu and click **Install** on Cookiebot or CCM19.
3. 3 ### Step 3: Enter the IDs

   Open the app under **Configuration** in the environment. For Cookiebot, enter the CBID. For CCM19, enter the server URL, API key, domain ID and optionally the language.
4. 4 ### Step 4: Map custom purposes (CCM19)

   Have developers map custom CCM19 purposes to a Laioutr purpose. Without a mapping, the "Other" purpose grants nothing.
5. 5 ### Step 5: Add a cookie settings link

   Provide a "Cookie settings" link in the footer that reopens the banner. Developers connect it to the consent store.
6. 6 ### Step 6: Save and deploy

   Click **Save settings** and deploy the environment. The banner only appears in the storefront after the deployment.

## Check the result

Open the storefront in a private browser window: the banner must appear. Refuse statistics and check that no tracking events are sent. Reopen the banner through the footer link, allow statistics and check that events arrive. After reloading, the choice is kept.

## Frequently asked questions

Can the vendor be switched later?

Yes. Every feature queries the consent store, not the vendor. Switching from Cookiebot to CCM19 is a configuration change without rebuilding the storefront.

Can visitors choose advertising and personalisation separately with Cookiebot?

No. Cookiebot has a single marketing category that grants both purposes together. CCM19 can ask for them separately.

How is Google Consent Mode v2 controlled?

The Google Tag Manager app sets every signal to denied in advance and sends an update after the decision. With Cookiebot, Consent Mode is active by default; with CCM19, it is configured in the CCM19 dashboard.

What happens without a consent app?

Only the necessary purpose counts as granted. Tracking destinations receive no events and Google Consent Mode stays denied.

## Related

- [Set up tracking: connect Google Tag Manager](https://academy.laioutr.com/en/artikel/set-up-tracking-connect-google-tag-manager)10 min

  To set up tracking, install a consent app and the Google Tag Manager app, enter the container ID per environment and deploy. Storefront events then arrive in the data layer with GA4 names as soon as the visitor consents to statistics.
- [Tracking and consent built into the components](https://academy.laioutr.com/en/artikel/tracking-and-consent-built-into-the-components)6 min

  Laioutr components send events such as page view, product view, add to cart and purchase through one analytics layer. Each event only reaches the destinations the visitor has consented to.
- [Set up Cookiebot as consent banner](https://academy.laioutr.com/en/apps/set-up-cookiebot-consent-banner)7 min

  The Cookiebot app shows the Cookiebot banner in the storefront and reports the visitors' decision to the Laioutr consent store, which tracking, GTM and other apps follow. Only the Cookiebot domain group ID (CBID) is required.
- [Set up the revocation button with the Legal essentials app](https://academy.laioutr.com/en/apps/set-up-the-revocation-button-with-the-legal-essentials-app)8 min

  The Legal essentials app provides building blocks for legally required content, first of all the revocation button under EU Directive 2023/2673 with a two-step flow and an automatic confirmation of receipt. Placement, wording and data sources are set up in Studio.

## Learn it in a lesson

- [Forms, e-mails and consent](https://academy.laioutr.com/en/lektionen/frontend-manager-mailer-and-consentr)9 min
- [Go-live checklist](https://academy.laioutr.com/en/lektionen/go-live-final-checklist)6 min

## [Tracking, language and agents](https://academy.laioutr.com/en/leitfaeden/tracking-language-and-agents)

Search this guide

1. [Tracking and consent built into the components](https://academy.laioutr.com/en/artikel/tracking-and-consent-built-into-the-components)6 min
2. [Set up tracking: connect Google Tag Manager](https://academy.laioutr.com/en/artikel/set-up-tracking-connect-google-tag-manager)10 min
3. [Set up a consent banner with Cookiebot or CCM19](https://academy.laioutr.com/en/artikel/set-up-a-consent-banner-with-cookiebot-or-ccm19)10 min

## Structured Data

```json
{
  "@context": "https://schema.org",
  "@graph": [
    {
      "@id": "https://academy.laioutr.com/#website",
      "@type": "WebSite",
      "inLanguage": "en",
      "name": "Default",
      "url": "https://academy.laioutr.com/",
      "translationOfWork": {
        "@id": "https://academy.laioutr.com/#website"
      }
    },
    {
      "@id": "https://academy.laioutr.com/en/artikel/set-up-a-consent-banner-with-cookiebot-or-ccm19#webpage",
      "name": "Academy Article",
      "url": "https://academy.laioutr.com/en/artikel/set-up-a-consent-banner-with-cookiebot-or-ccm19",
      "@type": [
        "WebPage",
        "FAQPage"
      ],
      "breadcrumb": {
        "@id": "https://academy.laioutr.com/en/artikel/set-up-a-consent-banner-with-cookiebot-or-ccm19#breadcrumb"
      },
      "isPartOf": {
        "@id": "https://academy.laioutr.com/#website"
      },
      "mainEntity": [
        {
          "@id": "https://academy.laioutr.com/en/artikel/set-up-a-consent-banner-with-cookiebot-or-ccm19#/schema/question/1"
        },
        {
          "@id": "https://academy.laioutr.com/en/artikel/set-up-a-consent-banner-with-cookiebot-or-ccm19#/schema/question/2"
        },
        {
          "@id": "https://academy.laioutr.com/en/artikel/set-up-a-consent-banner-with-cookiebot-or-ccm19#/schema/question/3"
        },
        {
          "@id": "https://academy.laioutr.com/en/artikel/set-up-a-consent-banner-with-cookiebot-or-ccm19#/schema/question/4"
        }
      ],
      "potentialAction": [
        {
          "@type": "ReadAction",
          "target": [
            "https://academy.laioutr.com/en/artikel/set-up-a-consent-banner-with-cookiebot-or-ccm19"
          ]
        }
      ]
    },
    {
      "@id": "https://academy.laioutr.com/en/artikel/set-up-a-consent-banner-with-cookiebot-or-ccm19#breadcrumb",
      "@type": "BreadcrumbList",
      "itemListElement": [
        {
          "@type": "ListItem",
          "name": "Home",
          "item": "https://academy.laioutr.com/en",
          "position": 1
        },
        {
          "@type": "ListItem",
          "name": "Storefront features",
          "item": "https://academy.laioutr.com/en/bereiche/storefront-features",
          "position": 2
        },
        {
          "@type": "ListItem",
          "name": "Tracking, language and agents",
          "item": "https://academy.laioutr.com/en/leitfaeden/tracking-language-and-agents",
          "position": 3
        },
        {
          "@type": "ListItem",
          "name": "Set up a consent banner with Cookiebot or CCM19",
          "item": "https://academy.laioutr.com/en/artikel/set-up-a-consent-banner-with-cookiebot-or-ccm19",
          "position": 4
        }
      ]
    },
    {
      "@id": "https://academy.laioutr.com/en/artikel/set-up-a-consent-banner-with-cookiebot-or-ccm19#/schema/question/1",
      "@type": "Question",
      "inLanguage": "en",
      "name": "Can the vendor be switched later?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "<p>Yes. Every feature queries the consent store, not the vendor. Switching from Cookiebot to CCM19 is a configuration change without rebuilding the storefront.</p>"
      }
    },
    {
      "@id": "https://academy.laioutr.com/en/artikel/set-up-a-consent-banner-with-cookiebot-or-ccm19#/schema/question/2",
      "@type": "Question",
      "inLanguage": "en",
      "name": "Can visitors choose advertising and personalisation separately with Cookiebot?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "<p>No. Cookiebot has a single marketing category that grants both purposes together. CCM19 can ask for them separately.</p>"
      }
    },
    {
      "@id": "https://academy.laioutr.com/en/artikel/set-up-a-consent-banner-with-cookiebot-or-ccm19#/schema/question/3",
      "@type": "Question",
      "inLanguage": "en",
      "name": "How is Google Consent Mode v2 controlled?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "<p>The Google Tag Manager app sets every signal to denied in advance and sends an update after the decision. With Cookiebot, Consent Mode is active by default; with CCM19, it is configured in the CCM19 dashboard.</p>"
      }
    },
    {
      "@id": "https://academy.laioutr.com/en/artikel/set-up-a-consent-banner-with-cookiebot-or-ccm19#/schema/question/4",
      "@type": "Question",
      "inLanguage": "en",
      "name": "What happens without a consent app?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "<p>Only the necessary purpose counts as granted. Tracking destinations receive no events and Google Consent Mode stays denied.</p>"
      }
    }
  ]
}
```
